만약 kubernetes control plane component들이 kubeadm
으로 설치되었다면, kubectl
명령어로 접근이 가능하다. 반면에, service로 배포되었다면 다음의 명령어로 상태를 확인할 수 있다.
service kube-apiserver status
service kube-controller-manager status
service kube-scheduler status
service kubelet status
service kube-proxy status
log를 확인할 때는 journalctl
을 사용하면 된다.
sudo journalctl -u kube-apiserver
kubelet
에 대한 설정 파일은 /var/lib/kubelet/config.yaml
에 정의되어 있다.
API server와 통신하기 위한 kubelet의 client 설정은 /etc/kubernetes/kubelet.conf
이다.
kubelet
의 상태를 보고 수정해줘야 한다. 가령 control plane의 apiserver 주소와 포트가 잘못되었는 지 등을 확인해야한다.
kubernetes에서는 DNS를 CoreDNS
를 통해서 제공한다.
CoreDNS
는 deployment로 만들어지고 config file은 configmap으로 존재한다. port 53이 CoreDNS의 DNS결정에 쓰이는 port이다.
allowPrivilegeEscalation
를 true로 두기kube-proxy
는 network proxy로 각 node마다 실행된다. kube-proxy
는 network rule과 node를 유지하는데, 이러한 network rule들은 cluster내의 pod들의 network이 가능하게 해준다.
kubeadm
으로 설치 시에 kube-proxy
는 damonset으로 설치된다.
kube-proxy
는 service와 endpoint에 대해 관리하며, client가 service의 virtualIP로 요청을 보낼 때, 실제 Pod에 해당 traffic을 전달하는 기능을 한다.
kube-proxy
의 설정값은 kube-proxy configmap에 있는데, 해당 configmap은 /var/lib/kube-proxy/config.conf
로 마운트된다.