Slave가 5분동안 죽어있으면 다운으로 간주함
Pod가 다른 노드로 분산됨
시간 변경방법

kube-cotroller-manager —pod-eviction-timeout=5m0s

kubectl drain node-1

노드관리를 위해 지정된 노드에 있는 포드들을 다른곳으로 이동시키는 명령어다, 우선 새로운 포드가 노드에 스케줄링되어서 실행되지 않도록 설정한다. 그리고 나서 기존에 이 노드에서 실행중이던 포드들을 삭제한다. 이때 노드에 데몬셋으로 실행된 포드들이 있으면 drain 이 실패한다, 데몬셋으로 실핸된 포드들은 삭제해도 데몬셋이 즉시 다시 실행되기 때문이다. 그래서 데몬샛으로 실행된 포드들을 무시하고 진행하려면

—ignore—daemonsets=true 옵션을 주고 drain하면된다 컨트롤러를 통해서 실행되지 않은 포드만으로 실행된 포드들이 있으면 drain이 실해한다. 컨트롤러에 의해 관리되고 있는 포드들은 삭제가 되더라도 컨트롤러가 클러스트내 달른 노드에 다시 동일한 역화라ㅏ을 하는 포드를 실행하지만 포드만으로 실행된 포드들은 한번 삭제되면 그것으로 끝이기 때문에 중요한 역할을 하는 포드였다면 위험하기 때문에 drain이 진행되지 않고 실패단다. 이럴경우 강제로진행하려면 —force 옵션을 주고 실행하면 된다.

drain되어서 스케줄링이 되지 않고 있는 상태를 풀어주려면 uncordon명령을 사용하면된다,

kubectl uncordon node-1

kubectl cordon ndoe-2

cordon은 지정된 노드에 더 이상 포드들이 스케줄링 되어 실행되지 않도록 한다

kubectl get nodes를 해보면 status에 ready외에 scheduingDisabled이 추가된걸 확인할수 있다.

'나는 노동자 > KUBERNETES' 카테고리의 다른 글

Backup and Restore  (0) 2019.05.23
cluster upgrade process  (0) 2019.05.22
configmap,secret in pod  (0) 2019.05.21
kubernetes add nodes  (0) 2019.04.22
Service - NodePort  (0) 2018.08.02

+ Recent posts