事象
kubeadmでKubernetesクラスタを運用していて、久しぶりにノード追加をしようと、新しいノードでkubeadm joinしたらunable to fetch the kubeadm-config ConfigMap: failed to get config map: Unauthorized
というエラーになる場合があります。初期構築時の手順メモを参考に作業をすると発生します。
原因
ノード追加時のトークンがExpireされていることが原因です。新たにトークンを発行しなおしましょう。
手順
トークンの確認
マスターノードのkubeadmコマンドで現在のトークンを確認します。トークンがEXPIREされていることがわかります。
# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
######.############### <invalid> 2018-12-02T21:51:32+09:00 authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token
トークンの発行
トークンを追加発行します。
# kubeadm token create
######.###############
# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
######.############### 23h 2018-12-17T01:33:08+09:00 authentication,signing <none> system:bootstrappers:kubeadm:default-node-token
######.############### <invalid> 2018-12-02T21:51:32+09:00 authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token
トークンの有効期限は24時間のようですね。
この、新たに発行されたトークンを使ってkubeadm joinしてみてください。
以上です。