쿠버네티스 - 트러블슈팅 - control plain

1

k8s 환경 안에서 app이 제대로 동작되지 않는 것으로 보입니다.
원인을 찾아 복구해 보겠습니다.

kubectl get all --all-namespaces

describe로 좀 더 자세히 보겠습니다.

kubectl describe pod -n kube-system kube-scheduler-controlplane

이부분에서 문제가 있는 것 같습니다.

kube-scheduler의 manifestfile을 수정하도록하겠습니다.

vi /etc/kubernetes/manifests/kube-scheduler.yaml 
# in kube-scheduler.yaml
spec:
  containers:
  - command:
    - kube-scheduler
    - --authentication-kubeconfig=/etc/kubernetes/scheduler.conf
    - --authorization-kubeconfig=/etc/kubernetes/scheduler.conf
    - --bind-address=127.0.0.1
    - --kubeconfig=/etc/kubernetes/scheduler.conf
    - --leader-elect=true
    - --port=0

다시 체크해서 복구된 것을 확인합니다.

kubectl get all --all-namespaces

good~

2

이번에는 deployement의 pod를 1개에서 2개로 scale out 한 이후 이상현상이 발생했습니다.

kubectl get all --all-namespaces


자세히 보겠습니다.

kubectl describe pod -n kube-system kube-controller-manager-controlplane 

그러나 descibe 만으로는 원인을 파악하기 어려웠습니다.
로그를 보겠습니다.

kubectl logs -n kube-system kube-controller-manager-controlplane  


config file 이름에 정확하지 않은 것으로 판단됩니다.

root@controlplane:~# ls /etc/kubernetes/          
admin.conf               kubelet.conf             pki/                     
controller-manager.conf  manifests/               scheduler.conf   

controller-managet.conf로 정정해줍니다.

 vi /etc/kubernetes/manifests/kube-controller-manager.yaml 
spec:
  containers:
  - command:
	...중략...
    - --kubeconfig=/etc/kubernetes/controller-manager.conf
    ...중략...

다시 잘돌아가는지 확인해줍니다.

kubectl get all --all-namespaces

good~

3

kubectl logs -n kube-system kube-controller-manager-controlplane  


로그를 보면 무엇인가 또 경로에 문제가 있어보입니다.

kubectl describe pod -n kube-system kube-controller-manager-controlplane 


이상한 경로가 포함되어있는 것을 확인하였습니다.
올바른 경로로 수정합니다.

 vi /etc/kubernetes/manifests/kube-controller-manager.yaml 
  volumes:
  ...중략...
  - hostPath:
      path: /etc/kubernetes/pki
      type: DirectoryOrCreate
    name: k8s-certs
  ...중략...

확인해보자

good!

좋은 웹페이지 즐겨찾기