반응형
해당 이슈를 확인하게 된 과정
cluster 구성 중에 node이름이 매우 길어지는 경우가 있음. (100자 이상)
kubelet 동작 시 kube-apiserver와 통신하기 위해 인증서가 필요한데 인증서 생성 시 CN에 Node이름이 들어감.
인증서는 openssl과 같은 tool로 생성됨.
openssl로 공개키 인증서 생성 시 기존은 CN에 "system:node:$hostname" 으로 설정이되는데
cluster name이 길어지는 경우 CN max length인 64를 초과하기 때문에 다음과 같은 error가 발생함
node name이 52이하가 되어야 하는 이유
첫 번째 : 인증서의 common domain
openssl 로 공개키를 발급 받아야하는데
이때 CN길이가 max 64이고 "system:node:" 12자는 고정으로 들어가기 때문에
64-12= 52가 됨.
즉 cluster에서 관리되는 node name은 max_length가 52가 됨.
두 번째 : rfc1123
kubernetes는 rfc1123을 기반으로 naming 규칙이 설정되어있음.
해당 문서의 2-2.1 항목을 확인해보면 최대 63자가 max라고 설정되어있음.
hostname이 64보다 긴 경우 kubernetes node에서 64아래로 설정하는 방법
kubelet, kube-proxy에 --hostname-override 옵션이 있음.
해당 옵션으로 hostname과는 무관하게
kubernetes에서 사용하는 node name으로 설정할 수 있음.
단 kubelet.crt의 CN이름도
--hostname-override 에 설정되는 이름과 동일해야함.
[참고]
반응형
'Kubernetes > Kubernetes 이론' 카테고리의 다른 글
leader-elector를 알아보자 (0) | 2024.07.14 |
---|---|
Kubernetse Linux Namespace 분석 : Pod Container 공유자원 리서치 (0) | 2024.07.14 |
kubectl cp 명령 특징 (0) | 2022.07.05 |
실행 중인 container에 mount하는 방법 (0) | 2022.07.05 |
Container 관련 기술 리서치 (2) | 2022.03.06 |