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~
이번에는 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~
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!