뭐 production 상황에서는 발생할 일이 거의 없긴 하지만..
테스트 환경에서 단일 K8s를 구축하고 IP를 변경할 일이 있어서 변경하는 중 삽질의 과정...은 생략하고 방법을 적는다.
인증서 변경
# root 권한에서..
# 먼저 백업을 한다
cp -rf /etc/kubernetes /etc/kubernetes.bak
# ca를 제외한 모든 인증서 및 키 파일을 제거한다.
rm /etc/kubernetes/pki/....
# 인증서를 재발급한다.
kubeadm init phase certs
# /etc/kubernetes 하위에 있는 모든 conf를 열어 IP를 변경한다.
kubeadm 및 configmap 변경
( 옛날 버전에서는 (언제부턴진 모르지만 18이하) sudo kubeadm config view & sudo kubeadm config upload from-file --config 으로 한다. )
$ kubectl -n kube-system get cm kubeadm-config -o yaml > ~/kubeadm-config.yaml
$ vim ~/kubeadm-config.yaml
controlPlaneEndpoint: "(바꾸는IP):6443"
으로 변경한다.
$ kubectl -n kube-system get cm kube-proxy -o yaml > ~/kube-proxy.yaml
$ vim ~/kube-proxy.yaml
kubeconfig.conf에서 clusters => cluster => server 를 바꾸는 IP(혹은 도메인)로 변경한다.
추가로 LB를 사용하는 경우 kubeadm할 때 미리 config를 만들어서 apiServer > certSANs 를 적어주고 Control Plane에 Virtual IP나 Domain으로 써서 접근할 수 있다.
기타 설정
(calico쓰는 경우) 나는 calicoctl에서 node에서도 설정을 변경해주었다. 제대로 구성하면 자동으로 되는진 모르겠다..
재시작
# 완벽하게 진행했던건 아니지만.. 리부팅이 깔끔했다..^^
# 될진 모르겠지만.. 아래를 시도해봐도 좋다.
# calico쓰는경우
$ kubectl -n calico-system delete pod --force --grace-period=0 $(kubectl -n calico-system get pods | cut -d' ' -f1 | grep -v NAME)
$ kubectl -n kube-system delete pod --force --grace-period=0 $(kubectl -n kube-system get pods | cut -d' ' -f1 | grep -v NAME)
$ sudo systemctl restart kubelet
사설..
예전엔.. 삽질하다가 결국 포기했었는데.. 이번엔 성공했다
삽질.. FAQ
정확하진 않은 FAQ... 기억에 의존...
1. 10.96.0.1 에 접속할 수 없다는 로그..
error getting ClusterInformation: Get \"https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default\": dial tcp 10.96.0.1:443: i/o timeout"
pod describe혹은 kube-system에 어떤 파드의 로그에 이러한 로그가 많이 떴다.
이것은 calico 등 Network Plugin이 정상적으로 작동하지 못해서 네트워크를 사용할 수 없다는 의미이다.
calico 가 먼저 살아나야 한다.
2. calico 등이 Pending 인 경우
잘 기억이 안난다... 암튼 문제가 있는 경우
3. calico 가 죽는 경우
kube-proxy 의 설정을 바꾸지 않아서 그랬다.
반응형
'개발 및 운영 > Kubernetes' 카테고리의 다른 글
ceph mon_dns_srv_name 작성방법 (0) | 2020.11.19 |
---|---|
Kubernetes & OpenWRT & Calico BGP 설치 (0) | 2020.11.05 |
k8s 특정 노드에서 schedule 하지 않게 하기 (0) | 2020.06.04 |
bitnami/mariadb-galera 오류날때 (0) | 2020.04.23 |
Kubernetes Offline (네트워크 분리 망) 에서 사용 (1) | 2020.03.30 |
댓글