docker

docker 종료된 컨테이너 삭제

$ docker rm $(docker ps --all -q -f status=exited)

docker 사용하지 않는 image 삭제

$ docker rmi -f $(docker images --filter "dangling=true" -q --no-trunc)

docker 사용하지 않는 이미지, 컨테이너, 네트워크 등 전부 삭제

$ docker prune -a

Kubernetes

네임스페이스 생성

$ kubectl create namespace stage

deployments 등 각 yaml 적용

$ kubectl apply -f ./stage.yaml

deplyments 등 각 yaml 삭제

$ kubectl delete -f ./stage.yaml

kubernetes secret 등록 (파일채로) .env 파일 secret 으로 등록

$ kubectl create secret generic credential --from-file=../.env

kubernets secret 네임스페이스 간 copy dev 네임스페이스에서 stage 네임스페이스로 특정한 secret 파일 복사

$ kubectl get secret icarus-agent --namespace=dev -o yaml | sed 's/namespace: .*/namespace: stage/' | kubectl apply -f -

deployment를 이용해서 loadbalancer expose

$ kubectl expose deployment test-api --name test-api-loadbalancer --type=LoadBalancer -n stage

Helm

prometheus install

$ helm install prometheus prometheus-community/kube-prometheus-stack

AWS 환경에서가 아닌 ECR에 접근하기

aws-cli 로그인

$ aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin {리소스아이디}.dkr.ecr.ap-northeast-2.amazonaws.com

로그인 뒤에 저장된 docker config 파일을 secret 파일로 저장

$ kubectl create secret generic regcred --from-file=.dockerconfigjson=/home/slowquery/snap/docker/796/.docker/config.json --type=kubernetes.io/dockerconfigjson -n stage

ServiceAccount 적용

$ kubectl edit sa default -n stage

imagePullSecrets 등록하여 기본으로 사용하도록 적용하기

apiVersion: v1
imagePullSecrets:
- name: regcred
kind: ServiceAccount
metadata:
  creationTimestamp: "2020-10-21T09:00:09Z"
  name: default
  namespace: stage
  resourceVersion: "3364829"
  selfLink: /api/v1/namespaces/dev/serviceaccounts/default
  uid: fbafa2f7-ba39-4310-8c5e-cf2b833d6528
secrets:
- name: default-token-mzszz
태그dockerkuberneteshelm