Kubernetes12 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. 쿠버네티스 대시보드 편하게 접속하기(#1) EKS로 쿠버네티스 클러스터를 셋팅하였는데, kubeproxy 를 로컬에 띄어서 로컬로 접속하는 방식인데, 서버를 통해서 접속하는 방식으로 바꿨다. 매번 명령을 실행시키기 번거롭다. 여러 개의 클러스터를 관리해야 한다. (aws 계정도 여러 개 사용) HTTPS를 사용하고 싶다. 사내에 사용가능한 리눅스가 있다. 사용빈도가 매우 높지 않다. 비용을 쓰고 싶지 않다. (ELB로 접속하는 방식이 있으나...) 대시보드에 ELB를 붙여서 접속하는 방법도 있으나, 비용적인 부분과 사용빈도가 크지 않기 때문에, 사내에 있는 linux 를 x통해서, 접속하는 방식으로 변경해 보았다. 접속도 여러 개의 계정과 여러 개의 클러스터를 관리해야 하기 때문에, docker container 를 통해서 구축 하였다. 파일 :.. 2019. 7. 29. Service 재시작 하기 아래의 명령으로 Service 를 재시작할 수 있다. # kubectl get svc -n -o yaml | kubectl replace --force -f- 2019. 7. 25. EKS 쿠버네티스 대시보드 접속 kube-proxy 실행 $ kubectl proxy --port=8080 --address=0.0.0.0 --disable-filter=true & 토큰 출력 (awscli + jq) $ aws eks get-token --cluster-name dev-opgg-seoul | jq -r '.status.token' 토큰 출력 (kubtctl) $ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}') 접속 URL ( 토큰 입력) http://localhost:8080/api/v1/namespaces/kube-system/services/https:kuberne.. 2019. 7. 23. Pod 재시작 하기 아래의 명령으로 pod 를 재시작할 수 있다. # kubectl get pod -n -o yaml | kubectl replace --force -f- # 예) # kubectl get pod heapster-c84bf57d9-j5p5q -n kube-system -o yaml | kubectl replace --force -f- 2019. 7. 15. 쿠버네티스에서 컨테이너 네임, 이미지 출력 쿠버네티스에서는 pod 단위로 관리하는데, 컨테이너에 대한 정보를 출력하고 싶다면 다음의 명령을 입력하면 됩니다. # kubectl get po -o jsonpath='{range .items[*]}{"pod: "}{.metadata.name}{"\n"}{range .spec.containers[*]}{"\tname: "}{.name}{"\n\timage: "}{.image}{"\n"}{end}' 2019. 7. 1. 이전 1 2 다음