본문 바로가기

k8s8

간단하게 nginx 배포하기 클러스터 내에 파드의 통신을 확인할때 명세 없이 커맨드 만으로 nginx 를 배포하는 방법이다. os가 debian 이라서 배포후 필요한 패키지는 apt 로 설치해서 사용하면 된다. $ kubectl create deployment nginx --image=nginx -n namespace 2020. 3. 17.
Cluster Overprovisioning 현재 운영 중인 사이트는 HPA(Horizontal Pod Autoscaler) 통해서 파드를 오토스케일링 하는데, 파드가 스케일 아웃을 할 때, 필요한 자원이 없을 경우에는 CA(Cluster Autoscaler)를 통해서, 노드를 추가 하게 된다. 그런데, CA를 통해서 노드가 추가 될때, 노드가 바로 추가되지 않기 때문에, 노드가 추가되고 파드가 생성될 때 까지는 사이트 속도가 떨어지는 문제가 발생하였다. HPA의 기준(CPU사용율)을 변경하거나, 파드나 노드의 갯수를 매우 넉넉하게 설정을 해 놓으면 문제는 없겠지만 좀 더 스마트 한 방법을 찾아 보기로 했다. 처음에는 상시적으로 여유 노드를 한 개 정도 더 확보하고 있는 방법을 생각하였으나, 자원을 낭비 되는 감이도 있고, 관련 문서도 찾을 수가 .. 2019. 11. 13.
kubectl 자동 완성 # bash source > ~/.bashrc # 자동 완성을 bash 셸에 영구적으로 추가한다 # zsh source > ~/.zshrc # 자동 완성을 zsh 셸에 영구적으로 추가한다. 참고 링크 : https://kubernetes.io/ko/docs/reference/kubectl/cheatsheet/ kubectl 치트 시트 kubernetes.io 2019. 10. 22.
실행되고 있는 pod 를 node 기준으로 sort 하여 보고 싶을 때 실행되고 있는 pod 를 node 기준으로 sort 하여 보고 싶을 때 $ kubectl get pods -n -o wide --sort-by=.spec.nodeName 2019. 8. 9.
kubernetes 노드 변경 한대의 노드가 정상적이지 않은 것 같아서 새로운 노드를 추가하고 문제있는 노드를 제거 하였다. AWS를 사용하고 있고, 오토스케일링 그룹에 속해있는 노드라서, 오토스케일링 그룹에 신규 인스턴스가 추가 되도록 Desired Capacity 를 추가한다. $ kubectl get nodes ip-172-31-16-133.ap-northeast-2.compute.internal Ready 16m v1.12.7 ip-172-31-24-205.ap-northeast-2.compute.internal Ready 82d v1.12.7 ip-172-31-33-98.ap-northeast-2.compute.internal Ready 27s v1.12.7 ip-172-31-42-90.ap-northeast-2.comput.. 2019. 8. 5.
nodeAffinity 를 이용하여 pod 를 원하는 노드에 배포하기 노드에 설정된 label 을 이용하여, 원하는 노드에 pod를 배포할 수 있다. 아래의 예제는 kube-system 네임스페이스 안에 cluster-autoscaler 를 (반드시) Spot 노드가 아닌 OnDemand 노드에 배포하는 설정이다. (Spot, OnDemand 노드의 구분은 Spot : lifecycle=EC2Spot, OnDemand : lifecycle=OnDemand) ## spec.template.spec ## affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: lifecycle operator: In values: - OnD.. 2019. 7. 31.