인프라/Docker
[k8s] master에 worker node처럼 application 배포하기
리그캣
2020. 6. 30. 15:09
master에 pod 배포
- master untainted
해당 명령어를 통하여 master를 worker처럼 사용가능하였습니다.$kubectl taint nodes --all node-role.kubernetes.io/master-
node/k8s-master untainted <- master가 untiainted 라고 나옵니다.
error: taint "node-role.kubernetes.io/master" not found
- label 구성
master에 key=master01로 지정시킵니다.
$ kubectl label nodes k8s-master key=master01
node/k8s-master labeled
$ kubectl label nodes k8s-worker key=worker01
- label에 배포
해당 label을 배포할 manifest. yaml 파일에 지정해줍니다.
[참고](https://github.com/league3236/BeginDevOps/blob/master/k8s/yaml/nginx.yaml)
spec:
containers:
- name: nginx-two
image: nginx:1.17-alpine
ports:
- containerPort: 80
name: nginx-pod-port
##추가
nodeSelector:
key: worker01
- 해당 yaml 배포
$kubectl create -f ./nginx.yaml
아래 명령어를 통해 pods가 running 된 것을 확인 가능합니다.
$kubectl get pods -o wide
##### pod가 죽었을시 되살아나는것을 확인
- 도커를 삭제합니다.
$docker ps -a | grep nginx
에서 하나를 삭제합니다.
$docker stop {container id}
- 확인
하나를 죽였을시 하나가 살아나는 것을 확인 가능합니다.
restart 수가 늘었난 것을 확인 가능합니다
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
kubernetes-bootcamp-6f6656d949-w4md9 1/1 Running 0 25h
nginx-two-deployment-87fb879d6-c95hg 1/1 Running 0 32m
nginx-two-deployment-87fb879d6-cnv4j 1/1 Running 2 32m
nginx-two-deployment-87fb879d6-hj5rn 1/1 Running 0 32m