LoginSignup
0
0

More than 3 years have passed since last update.

kubeadmでノード追加時にconfigmaps "kubelet-config-1.13" is forbiddenとなったときの対処法

Last updated at Posted at 2018-12-15

事象

kubeadmでKubernetesクラスタを運用していて、久しぶりにノード追加をしようと、新しいノードでkubeadm joinしたらconfigmaps "kubelet-config-1.13" is forbiddenというエラーになる場合があります。

おそらくは2018年12月頃より以前にクラスタを作成し、それ以降にノードを追加しようとした際に発生します。

[kubelet] Downloading configuration for the kubelet from the "kubelet-config-1.13" ConfigMap in the kube-system namespace
configmaps "kubelet-config-1.13" is forbidden: User "system:bootstrap:######" cannot get resource "configmaps" in API group "" in the namespace "kube-system"

原因

この時期の前後で、kubernetes.repoから導入するkubeadm,kubeletのバージョンが1.12から1.13に上がったと考えられます。すると、クラスタ作成時は1.12で作成されますが、ノード追加時に新規ノード側のkubeletが1.13になってしまい、バージョンが不整合になっていることが原因です。

内部的には、kubelet-config-1.12というConfigMapしかない状態で、新規ノードがkubelet-config-1.13を探しに行ってエラーになっています。

そのため、両者のバージョンを合わせる必要があります。今回は、クラスタ全体をバージョンアップするのではなく、新規ノードのバージョンをクラスタに合わせる方法で対応します。

手順

新規ノードでkubeadm,kubeletをインストールするときにバージョンを明示します。例えばyum系の場合は次のようにします。

# yum install -y kubelet-1.12.3-0 kubeadm-1.12.3-0 --disableexcludes=kubernetes

これで、kubeadm joinすれば問題なく通るはずです。

以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0