Обновление несоответствия для kubeadm - PullRequest
0 голосов
/ 21 декабря 2018

Я обновил свой кластер до 1.13.1, как показано здесь

[gms@thalia2 ~]$ kubectl get nodes
NAME                  STATUS    ROLES     AGE       VERSION
thalia0               Ready     master    56d       v1.13.1
thalia1               Ready     <none>    18d       v1.13.1
thalia2               Ready     <none>    36m       v1.13.1
thalia3               Ready     <none>    56d       v1.13.1
thalia4               Ready     <none>    17d       v1.13.1

Однако, когда я запускаю kubeadm version на thalia2, я получаю

[gms@thalia2 ~]$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:14:39Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

Обновление наэтот узел не прошел гладко.Когда я попробовал это согласно Обновление kubeadm , я получил ошибку, что

[gms@thalia2 ~]$ sudo kubeadm upgrade node config --kubelet-version $(kubelet --version | cut -d ' ' -f 2)
[kubelet] Downloading configuration for the kubelet from the "kubelet-config-1.11" ConfigMap in the kube-system namespace
configmaps "kubelet-config-1.11" is forbidden: User "system:node:thalia2" cannot get resource "configmaps" in API group "" in the namespace "kube-system": no path found to object

Чтобы обойти это, я сделал kubeadm reset и переустановил kubectl и kubadm, а затемприсоединился к моему кластеру, но 1.11.2 все еще отображается как версия, когда я делаю kubeadm version.

Если я делаю kubectl get cm -n kube-system, я получаю

NAME                                 DATA      AGE
calico-config                        2         56d
coredns                              1         6d5h
extension-apiserver-authentication   6         56d
kube-proxy                           2         56d
kubeadm-config                       2         56d
kubelet-config-1.12                  1         56d
kubelet-config-1.13                  1         4h5m

И, если ясписок установленных пакетов на указанном узле, я получаю:

gms@thalia2 ~]$ sudo yum list installed kube*
Loaded plugins: enabled_repos_upload, package_upload, priorities, product-id, search-disabled-repos, subscription-manager
Installed Packages
kubeadm.x86_64                                                                                       1.13.1-0                                                                                 @kubernetes
kubectl.x86_64                                                                                       1.13.1-0                                                                                 @kubernetes
kubelet.x86_64                                                                                       1.13.1-0                                                                                 @kubernetes
kubernetes-cni.x86_64                                                                                0.6.0-0                                                                                  @kubernetes

* РЕДАКТИРОВАТЬ 1 * Примечание: изначально кластер был обновлен с 1.11 до 1.12.

На этот раз я сделал маршрут от 1.12 до 1.13, и именно тогда я получил ошибку, отмеченную выше на одном узле.Вот почему я попытался вместо этого выполнить новую установку на узле thalia2.Однако, когда я делаю kubeadm version, я получаю неправильную версию, даже если она регистрируется как правильная, когда я перечисляю узлы.

Мой кластер работает, поэтому не уверен, что происходит между расхождениями версий.

1 Ответ

0 голосов
/ 24 декабря 2018

Согласно Kubernetes (kubeadm) документация :

Каждый процесс обновления может немного отличаться, поэтому мы задокументировали каждый незначительный процесс обновления индивидуально.Дополнительные инструкции по обновлению для конкретной версии см. В следующих ресурсах:

Вы можете обновить только одну минорную версию до следующей минорной версии.То есть вы не можете пропустить версии при обновлении.Например, вы можете обновить только с 1.10 до 1.11, а не с 1.9 до 1.11.

Если вы следовали инструкциям, не могли бы вы подробнее узнать вопрос о шагах, которые вы предприняли для обновления ипромежуточные результаты.

ОБНОВЛЕНИЕ:

Возможно, некоторые компоненты Kubernetes не были обновлены должным образом.
Этот обходной путь помогает обновить компоненты до определенной версии.:

# Run  the following commands where you have kubectl configured
# Evict scheduled pods from the worker node and cordon it
$ kubectl drain thalia2

# Run the following commands on the node worker node (thalia2)
# Upgrade/Downgrade Kubernetes components
# Suitable for Ubuntu 
$ apt-get install -y kubectl=1.13.1-00 kubeadm=1.13.1-00 kubelet=1.13.1-00

# Suitable for CentOS
$ yum install kubelet-1.13.1-0 kubeadm-1.13.1-0 kubectl-1.13.1-0 --disableexcludes=kubernetes

$ kubeadm upgrade node config --kubelet-version $(kubelet --version | cut -d ' ' -f 2)
$ systemctl restart kubelet

# Run  the following commands where you have kubectl configured
# Enable worker node for pods scheduling.
$ kubectl uncordon thalia2
...