PaaS/Kubernetes 85

Sidecar Injector 사용하기

k8s를 운영하다 보면 Sidecar를 체계적으로 관리하고 싶을 때가 있다. Istio가 아니더라도 Sidecar가 필요한 경우는 많다.  이 경우에 tumblr에서 opensource로 제공한 Sidecar Injector를 사용하면 좋다.  1. Git Clonegit clone https://github.com/tumblr/k8s-sidecar-injector.git 2. Certificate  export ORG="org1" DOMAIN="org1.com"sed -i '' -e "s|__ORG__|$ORG|g" -e "s|__DOMAIN__|$DOMAIN|g" examples/tls/ca.conf examples/tls/csr-prod.conf  3. TLS 용 Key 생성export DEPLOY..

PaaS/Kubernetes 2024.12.17

Provider별 Ingress Class의 개발 상태

NGINX : https://kubernetes.github.io/ingress-nginx/examples/ Github Repo : https://github.com/kubernetes/ingress-nginx 역시 원조 답다.. 기능도 많고 문서화도 잘되어 있고.. 못하는게 없음 AWS : https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.5/guide/ingress/annotations/ AWS는 역시.. 정말 문서화가 잘되어 있다. 참고로 Canary 배포도 가능함. alb.ingress.kubernetes.io/actions.forward-single-tg: > {"type":"forward","targetGroupARN": "..

PaaS/Kubernetes 2024.01.22

Deployment를 배포한 후 Rollback이 필요할때

1. Deployment Roll-out 기록 확인 kubectl rollout history deployment/{Deployment 명} 2. 해당 revision의 세부 정보 확인 kubectl rollout history deployment/{Deployment 명} --revision={조회할 revision} 3. Roll-Back kubectl rollout undo deployment/{Deployment 명} 직전 버전으로 롤백 kubectl rollout undo deployment/{Deployment 명} --to-revision={revision} 특정 버전으로 롤백 하려면 --to-revision 옵션을 이용해 원하는 버전을 명시해줌. kubectl annotate deploym..

PaaS/Kubernetes 2024.01.18

Docker Garbage 삭제 Docker Prune

$ docker system prune [옵션] 옵션 short 설명 --all -a dangling 상태 뿐만아니라 미사용 Image 모두 삭제 --filter 1.28 API 버전이상. 필터리 사용 (label==) --force -f 프롬프트에 확인 질문 안함 --volumes 익명 볼륨 삭제(아무 컨테이너도 사용하지 않는) 옵션이 없을때 기본적으로 지우는 내용은 모든 멈춘 컨테이너 누구에게도 사용되지 않는 네트워크 누구에게도 사용되지 않는 이미지 빌드시 사용한 Cache 일부 리소스만 지우고 싶을때 $ docker builder prune $ docker image prune

PaaS/Kubernetes 2024.01.17

특정 NameSpace에서 특정 상태의 Pod를 지우고 싶을때

가끔, Pending된 Pod 녀석들을 한꺼번에 지우고 싶을때가 있다. 근데 특정 NameSpace에서 말이다. 그럴때는 아래와 같은 CLI를 사용한다. $ kubectl get pods -n [네임스페이스 이름] | grep [지우고싶은 상태] | awk '{print $1}' | xargs kubectl delete pod -n [네임스페이스 이름] 위 처럼 해도 되고 field selector 조건을 붙여도 된다. $ kubectl delete pod -n [네임스페이스] --field-selector status.phase=[삭제할상태]

PaaS/Kubernetes 2024.01.04

Kubernetes 인증서 만료시 갱신방안

kubectl 을 돌렸더니 아래와 같이 인증서가 만료되었다는 안내가 나온다. Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2024-01-05T06:06:24+09:00 is after 2023-12-23T12:35:45Z kubeadm 으로 인증서 현황을 조회하면 아래와 같다. $ kubeadm certs check-expiration 우선 kubernetes 관련 주요 설정을 백업 해두자. $ cp -pr /etc/kubernetes/ /etc/kubernetes_backup 간단히 한꺼번에 인증서 갱신이 가능하다. $ kubeadm certs renew all Kubectl..

PaaS/Kubernetes 2024.01.04