Обновление Kubenetes с 1.8.7 до 1.13.0 - PullRequest
0 голосов
/ 19 декабря 2018

Контекст

В настоящее время у нас есть 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.конф.Любые предложения о том, как мы можем восстановить эту информацию или какая информация ей понадобится?

Новый вопрос

Поскольку у нас теперь есть файл admin.conf, мы установили kubectl, kubeadmи кубелет 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 ]

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

Любые указатели о том, как обновить с 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/#cmd-config-from-flags

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

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

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: 
0 голосов
/ 19 декабря 2018

Давайте пошагово и сначала сгенерируем файл 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

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

...