kubeadm - ERROR start version '' не поддерживается

Недавно я обновил кластер Kubernetes с версии 1.5.3 до 1.6. .1 с помощью kubeadm .

Теперь я хотел бы обновить версию 1.6.1 до 1.6.2, но столкнулся с этой ошибкой:

[root@master ~]#kubeadm upgrade plan --v=5
I1113 14:14:31.046080    8368 plan.go:67] [upgrade/plan] verifying health of cluster
I1113 14:14:31.046233    8368 plan.go:68] [upgrade/plan] retrieving configuration from cluster
[upgrade/config] Making sure the configuration is correct:
[upgrade/config] Reading configuration from the cluster...
[upgrade/config] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
I1113 14:14:31.111668    8368 common.go:122] running preflight checks
[preflight] Running pre-flight checks.
I1113 14:14:31.111843    8368 preflight.go:78] validating if there are any unsupported CoreDNS plugins in the Corefile
I1113 14:14:31.143841    8368 preflight.go:103] validating if migration can be done for the current CoreDNS release.
[preflight] Some fatal errors occurred:
    [ERROR CoreDNSUnsupportedPlugins]: start version '' not supported
    [ERROR CoreDNSMigration]: start version '' not supported
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`

Похоже, что kubeadm не может определить версию CoreDNS.

Вот конфигурация CoreDNS:

apiVersion: v1
data:
  Corefile: |
    .:53 {
        errors
        health
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           fallthrough in-addr.arpa ip6.arpa
           ttl 30
        }
        prometheus :9153
        forward . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2018-12-15T00:02:45Z"
  name: coredns
  namespace: kube-system
  resourceVersion: "45537229"
  selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
  uid: c01fbb58-fffc-11e8-9a01-005056a31666

Откуда он читает номер версии? Или что я могу сделать, чтобы исправить эту ошибку?

0
задан 13 November 2019 в 15:26
2 ответа

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

, Таким образом, я удалил переходную приставку:

kubectl -n kube-system delete pod coredns-79ff88449c-4gjzs --grace-period=0 --force

И затем установленный это вручную использование deploy.sh сценарий от https://github.com/coredns/deployment/tree/master/kubernetes как это:

./deploy.sh | kubectl apply -f -

Теперь kubeadm upgrade работы снова как очарование.

И кажется что kubeadm чтения версия CoreDNS от рабочей переходной приставки.

1
ответ дан 4 December 2019 в 13:18

Вы получили отказавший CoreDNSUnsupportedPlugins, проверяют из-за proxy плагин, который был заменен forward плагин. Здесь можно найти больше информации об этом.

существует два способа решить это:

  • нужно проигнорировать проверки с помощью
    --ignore-preflight-errors=CoreDNSUnsupportedPlugins во время обновления.

  • 1115-секундный должен заменить proxy . /etc/resolv.conf от coredns configMap с forward.It должен быть похожим на это:

    forward . /etc/resolv.conf

можно найти больше информации о той же проблеме здесь

1
ответ дан 4 December 2019 в 13:18

Теги

Похожие вопросы