1. 개요

Kubernetes 운영 하던 중 노드를 추가 해야할 상황에서 (초기 설치가 아닌..) 

최초 kubeadm init 시 표시된 

kubeadm join <Kubernetes API Server:PORT> --token <Token 값> --discovery-token-ca-cert-hash sha256:<Hash 값>

명령을 이용하면 token이 만료 되었다는 에러와 함께 Wokrer 노드가 Master 노드에 붙지 않는 문제가 있다. 

 

이유는 최초 노드 조인을 위해 토큰을 발행 하면 아래와 같이 EXPIRES 기간이 있기 때문이다. 

$ kubeadm token list

TOKEN                     TTL         EXPIRES                     USAGES                   DESCRIPTION                                                EXTRA GROUPS
<토큰값>  <invalid>   2018-10-18T10:08:29+09:00   authentication,signing   The default bootstrap token generated by 'kubeadm init'.   system:bootstrappers:kubeadm:default-node-token
 
물론 토큰값이 존재 한다면 이 값을 이용하면 되고...
kubeadm token list 를 수행해서 아무런 값이 없을 경우엔 노드를 붙일 수 없다.
 
$ kubeadm token list
TOKEN                     TTL         EXPIRES                     USAGES                   DESCRIPTION                                                EXTRA GROUPS
 
2. Token 생성(확인)
$ kubeadm token list
$ kubeadm token create
 
3. Hash 확인
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
 
4. Join
kubeadm join <Kubernetes API Server:PORT> --token <2. Token 값> --discovery-token-ca-cert-hash sha256:<3. Hash 값>
 
문제 해결~