Preflight checks

 

kubeadm 이 수행되기전 사전 체크

 - kubeadm cli 가 사용하고자하는 k8s 의 version 보다 manor 버전이 하나이상 높은경우 (Waring)
 - Kubernetes system requirements
Linux Kernel 이 3.10+, 4+ 이상 (Error)
 - cgroups subsystem 이 set up 되어야함 (Error)
 - Docker Endpoint 가 존제해야함, Docker version 이 17.03 이상이어야함, kubeadm 1.9 이상부터 CRI 기능을 지원함, 

 

 - Root user 혹은 sudo 등으로 root 권한이 있어야 합니다. [Error]
- 호스트이름이 유효한 DNS 서브도메인이 아닌경우[Error] 네트워크 조회를 통해 호스트이름이 도달할 수 없는 경우[Waring]
 - kubelet version 이 kubeadm 이 지원하는 kubelet version 보다 하나이상 낮은경우 [Error]
 - kubelet version 이 controlplane version 보다 minor versino 이 하나이상 높은경우 [Error]
 - kubelet service 가 없거나, disabled 되어있는경우 [Error]
 - Firewall 이 enabled 되어있는 경우 [Waring]

 - API.BindPort or Ports 10250, 10251, 10252 가 사용되고있음 [Error]

 - /etc/kubenetes/manifest 폴더가 이미 있거나, 비어있지 않은경우 [Error]
 - /proc/sys/net/bridge/bridge-nf-call-iptables 파일이 없거나, 1 값이 아닌경우
 - swap 이 on 인경우
 - ip, iptables, mount, nsenter commnad 가 command path 에 존제하지 않음 [Error]
 - ebtables, ethtool, socat, tc, touch, crictl command 가 command path 에 존제하지 않음 [Waring]
 - API Server, controller managed, scheduler contains 에 잘못된 option 이 들어감 [Waring]

 - Proxy 를 통해 https://API.AdvertiseAddress:API.BindPort 연결될 경우 [Waring]

 - Proxy 를 통해 service subnet 에 연결될 경우 [Waring]
 - Proxy 를 통해 Pods Subnet 에 접근하는 경우 [Waring]
 - Docker 를 사용할 경우 Docker Service 가 없거나, Disabled 되어있는경우 [Waring/Error]
 - Cri Engine 사용할 경우 crictl socket 이 응답이 없을경우 [Error]
 - 외부 etcd providerd 를 구성한 경우, etcd version 이 3.0.14 보다 낮은경우 [Error]
 - certificates 및 key 가 설정되어 있는데, 제공되지 않은경우 [Error]
 - 외부 etcd providerd 를 사용하지 않는경우, 2379 Port 가 사용중이면 [Error]
 - Etcd.DataDir 폴더가 사용중이거나, 비어있지 않으면 [Error]

 - 인증모드가 ABAC 일때, abac_policy.json 파일이 없으면 [Error]

 - 인증모드가 WebHook 일때, webhook_authz.conf 파일이 없으면 [Error]

 - advertise address 가 ipv6 일때, /proc/sys/net/bridge/bridge-nf-call-ip6tables 없거나, 값이 1이 아닌경우 [Error]

 

위의 Preflight 는 "kubeadm alpha phase preflight" 명령어로 하나하나 체크가 가능하다. 

 

 

+ Recent posts