Обновление Kubenetes с 1.8.7 до 1.13.0

контекст

В настоящее время у нас есть 3 стабильных кластера на kubernetes(v1.8.7). Эти кластеры были созданы внешней командой, которая больше не доступна, и у нас ограниченная документация. Мы пытаемся перейти на более стабильную версию (v1.13.0). Мы знаем, что нам нужно обновлять 1 версию за раз, поэтому 1.8 -> 1.9 -> 1.10 и так далее.

Решенные вопросы

  1. Любые указатели о том, как обновить с 1,8 до 1,9?
  2. Мы попытались установить kubeadm v1.8.7 и запустить kubeadm upgrade plan, но это не с выходом -

    [preflight] Выполнение предполетных проверок не позволило создать клиента Kubernetes из файла "/etc/kubernetes/admin.conf": не удалось загрузить admin kubeconfig [открыть /etc/kubernetes/admin.conf: такого файла или каталога нет]
    мы не можем найти файл admin.conf. Любые предложения о том, как мы можем восстановить это или какая информация ему понадобится?

Новый вопрос

Поскольку теперь у нас есть файл admin.conf, мы установили kubectl, kubeadm и kubelet v 1.9.0 -
apt-get install kubelet=1.9.0-00 kubeadm=1.9.0-00 kubectl=1.9.0-00,

Когда я бегу kubeadm upgrade plan v1.9.0
я получил

root@k8s-master-dev-0:/home/azureuser# kubeadm upgrade plan v1.9.0
[preflight] Running pre-flight checks.
[upgrade] Making sure the cluster is healthy:
[upgrade/health] FATAL: [preflight] Some fatal errors occurred:
        [ERROR APIServerHealth]: the API Server is unhealthy; /healthz didn't return "ok"
        [ERROR MasterNodesReady]: couldn't list masters in cluster: Get https://<k8s-master-dev-0 ip>:6443/api/v1/nodes?labelSelector=node-role.kubernetes.io%2Fmaster%3D: dial tcp <k8s-master-dev-0 ip>:6443: getsockopt: connection refused
[preflight] If you know what you are doing, you can make a check non-fatal with --ignore-preflight-errors=...  

root@k8s-master-dev-0:/home/azureuser# kubectl get pods -n kube-system
NAME                                       READY     STATUS    RESTARTS   AGE
heapster-75f8df9884-nxn2z                  2/2       Running   0          42d
kube-addon-manager-k8s-master-dev-0        1/1       Running   2          1d
kube-addon-manager-k8s-master-dev-1        1/1       Running   4          123d
kube-addon-manager-k8s-master-dev-2        1/1       Running   2          169d
kube-apiserver-k8s-master-dev-0            1/1       Running   100        1d
kube-apiserver-k8s-master-dev-1            1/1       Running   4          123d
kube-apiserver-k8s-master-dev-2            1/1       Running   2          169d
kube-controller-manager-k8s-master-dev-0   1/1       Running   3          1d
kube-controller-manager-k8s-master-dev-1   1/1       Running   4          123d
kube-controller-manager-k8s-master-dev-2   1/1       Running   4          169d
kube-dns-v20-5d9fdc7448-smf9s              3/3       Running   0          42d
kube-dns-v20-5d9fdc7448-vtjh4              3/3       Running   0          42d
kube-proxy-cklcx                           1/1       Running   1          123d
kube-proxy-dldnd                           1/1       Running   4          169d
kube-proxy-gg89s                           1/1       Running   0          169d
kube-proxy-mrkqf                           1/1       Running   4          149d
kube-proxy-s95mm                           1/1       Running   10         169d
kube-proxy-zxnb7                           1/1       Running   2          169d
kube-scheduler-k8s-master-dev-0            1/1       Running   2          1d
kube-scheduler-k8s-master-dev-1            1/1       Running   6          123d
kube-scheduler-k8s-master-dev-2            1/1       Running   4          169d
kubernetes-dashboard-8555bd85db-4txtm      1/1       Running   0          42d
tiller-deploy-6677dc8d46-5n5cp             1/1       Running   0          42d

2 ответа

Решение

Давайте пошагово и сначала сгенерируем файл admin.conf в вашем кластере: вы можете сгенерировать файл admin.conf, используя следующую команду:

kubeadm alpha phase kubeconfig admin --cert-dir /etc/kubernetes/pki --kubeconfig-dir /etc/kubernetes/

Теперь вы можете проверить мой следующий ответ, как обновить кластер kubernetes с помощью kubeadm (ответ предназначен для 1.10.0 до 1.10.11, но он применим и для 1.8 до 1.9, вам просто нужно изменить версию для загружаемого пакета)

как обновить kubernetes с v1.10.0 до v1.10.11

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

Любые указатели о том, как обновить с 1,8 до 1,9?

определенно kubeadm

Мы попытались установить kubeadm v1.8.7 и запустить план обновления kubeadm, но он завершился неудачно с выводом -

[preflight] Выполнение предполетных проверок не позволило создать клиента Kubernetes из файла "/etc/kubernetes/admin.conf": не удалось загрузить admin kubeconfig [открыть /etc/kubernetes/admin.conf: такого файла или каталога нет] мы не можем найти файл admin.conf. Любые предложения о том, как мы можем восстановить это или какая информация ему понадобится?

kubeadm требуется пара вещей:

  1. ConfigMap в кластере
  2. Файл аутентификации / учетных данных

Во-первых, я бы проверил kube-system пространство имен для kubeadm-config ConfigMap. Если это существует, вы должны быть в состоянии продолжать относительно безболезненно.

Если этого не существует, вам нужно будет пойти дальше и создать его.

kubeadm config upload from-flags будет хорошей отправной точкой. Вы можете указать kubelet флаги от вашего systemd файл модуля, и он должен привести вас в хорошую форму.

https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-config/

Во-вторых, kubeadm нужен файл conf с учетными данными. Я полагаю, что есть один из них в вашем /etc/kubernetes каталог где-то; так ковыряйся

Этот файл будет выглядеть как ваши локальные kubeconfigs, начиная с:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: 
Другие вопросы по тегам