-
[kubernetes] 인증서 갱신 쉽게 하는 방법Web 2022. 2. 11. 10:38
쿠버네티스 인증서는 유효기간이 1년이라 매년 갱신을 해줘야 한다.
그래서 갱신방법을 정리 한다.
kubernetes ver 1.28.7은 최신화 하여 아래 링크에 정리함
kubernetes :: 인증서 갱신 쉽게 하는 방법 v1.28.7
kubernetes version 1.28.71. 인증서 만료일 확인kubeadm certs check-expiration2. 만약을 대비한 인증서 백업cp -r /etc/kubernetes /root/k8sbackups3. 인증서 갱신kubeadm certs renew all4. 인증서 적용을 위해 kube-apiserver, kube-co
jinsiri.tistory.com
kubernetes ver 1.22.3
master서버에서 진행을 하는데 다중 master 구성이면 모든 컨트롤 플레인 노드에서 실행해야 한다.
1. 인증서 일자 확인
$ kubeadm certs check-expiration
2. 혹시모를 사태에 대비하여 인증서 백업
$ cp -r /etc/kubernetes ~/backups
3. 인증서 갱신
$ kubeadm certs renew all
5. kube-apiserver, kube-controller-manager, kube-scheduler재시작
이 순서는 static pod는 API 서버가 아닌 로컬 kubelet에서 관리되므로 kubectl을 사용하여 삭제 및 재시작 할 수 없기때문에 하는 것이다.
공식홈 방법대로 하면 /etc/kubernetes/manifests/에서 yml파일들을 일시적으로 다른곳에 복사해놓고 1~2분정도 기다리면된다. ( 공홈에선 20초라 하지만 반영 시간이 조금 더 걸리더라 )
파드가 manifest 디렉터리에 없는 경우에 kubelet는 파드를 종료하기 때문이다.
이때 kubectl명령어 사용시 Unable to connect to the server: EOF 에러 가 난다. 이건 yml파일들이 없어서 나는 에러이니 yml파일들을 다시 /etc/kubernetes/manifests/에 넣고 기다리면 kubectl명령어가 잘 먹는다.
하지만 위처럼 하기엔 귀찮을 수 있다. 그래서 아래 명령어로 대체해도 된다.
$ kill -s SIGHUP $(pidof kube-apiserver) $ kill -s SIGHUP $(pidof kube-controller-manager) $ kill -s SIGHUP $(pidof kube-scheduler) $ systemctl restart kubelet $ systemctl daemon-reload $ systemctl restart docker ( docker 재시작 이후엔 중지된 컨테이너들을 실행해줘야한다.)
6. apiserver, controller-manager, scheduler 가 재실행되었는지 AGE 확인
$ kubectl get pods --all-namespaces -o wide
7. 인증서 복사
$ cp /etc/kubernetes/admin.conf /root/.kube/config
8. node 조회
$ kubectl get nodes $ kubeadm certs check-expiration # 일자확인
정상적으로 출력되면 끝!
* jenkins에서도 k8s의 config를 사용하는 곳이 있다면 config 파일 업데이트도 해줘야한다.
* docker 재시작 이후엔 중지된 컨테이너들을 실행해줘야한다. ( 아예 컨테이너 자동 재시작 설정하는 방법도 있음 )
반응형'Web' 카테고리의 다른 글
[k8s] 외부ip 변경시 바꿔야 할것 (0) 2022.01.12 [Maven] package install차이점 (0) 2021.11.29 [css] css 모음 (0) 2020.12.07 [vscode] 저장시 자동정렬 설정, prettier플러그인 (5) 2020.07.11 [프로젝트 환경설정] (0) 2019.08.09