При настройке кластера kubernetes, команда инициализации kubeadm выдает ошибку

Я пытаюсь настроить кластер Kubernetes на виртуальной машине Azure Ubuntu-16.04 LTS. Я установил на виртуальную машину версию docker 17.03.2~ce-0~ubuntu-xenial и выполнил все шаги, упомянутые на официальном сайте kubernetes, но при выполнении команды kubeadm на главном узле я получаю сообщение об ошибке.

Моя команда инициализации:

 kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<ip>

Сообщение об ошибке:

[init] using Kubernetes version: v1.11.3
[preflight] running pre-flight checks
[preflight] Some fatal errors occurred:
    [ERROR KubeletVersion]: the kubelet version is higher than the control 
plane version. This is not a supported version skew and may lead to a 
malfunctional cluster. Kubelet version: "1.12.0-rc.1" Control plane version: 
"1.11.3"
[preflight] If you know what you are doing, you can make a check non-fatal 
with `--ignore-preflight-errors=...`

2 ответа

У вас есть более новая версия kubelet - v1.12.0-rc.1 чем это из kubeadm - v1.11.3, Ты можешь попробовать:

  1. Понижение версии kubelet в соответствии с вашей версией kubeadm

    На Ubuntu запустите: apt-get -y install kubelet=1.11.3-00

  2. С другой стороны, обновите kubeadm, чтобы соответствовать kubelet

    На Ubuntu запустите: apt-get -y install kubeadm=1.12.0-rc.1-00

  3. --ignore-preflight-errors как он говорит, но смотрите, если вы видите какие-либо другие ошибки, которые могут сделать вашу установку не работает.

Надеюсь, поможет.

Ошибка, которую вы опубликовали, определенно связана с тем, что описал @Rico, в последнее время произошло обновление версии, и у многих людей была эта проблема (включая меня). Вы можете увидеть релизы здесь. Похоже, через некоторое время после выхода новой версии apt-get install -y kubelet kubeadm kubectl будет загружать или соответствовать неверной версии компонентов.

Когда у меня возникла эта проблема, загрузка версии Kubernetes вручную (kubeadm config images pull --kubernetes-version v1.11.3) а потом работает kubeadm init с флагом, отмечающим, какую версию я хочу запустить, у меня получилось. Другой вариант - обновить kubeadm (apt-get upgrade kubeadm).

Однако, как я проверял это на чистой установке всего несколько минут назад, все отлично работает из коробки.

Вы можете удалить kubelet, kubeadm и kubectl и установить их снова с помощью рекомендованных команд из документации или попробовать kubeadm reset и затем сопоставьте версии или компоненты обновления, как предложено Rico. Не забудьте запустить:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

после инициализации кластера.

Другие вопросы по тегам