Kubernets 1.21.3 Рекомендуемое значение для "clusterCIDR" в "KubeProxyConfiguration"

Я пытаюсь присоединить новый узел к существующему v1.21.3 кластеру с Calico CNI. команда join выдает clusterCIDR предупреждение.

Как исправить это предупреждение о подсети?

# kubeadm join master-vip:8443 --token xxx --discovery-token-ca-cert-hash sha256:xxxx
[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
W0809 14:10:27.717696   75868 utils.go:69] The recommended value for "clusterCIDR" in "KubeProxyConfiguration" is: 10.201.0.0/16; the provided value is: 10.203.0.0/16
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"

обновление:

Я использовал 10.201.0.0/16 во время установки кластера, позже я изменил на 10.203.0.0/16. не уверен, где он все еще получает 10.201.0.0/16 значение подсети.

Вот значение подсети.

# sudo cat /etc/kubernetes/manifests/kube-controller-manager.yaml | grep cluster-cidr
    - --cluster-cidr=10.203.0.0/16

kubectl cluster-info dump | grep cluster-cidr
                            "--cluster-cidr=10.203.0.0/16",
                            "--cluster-cidr=10.203.0.0/16",
                            "--cluster-cidr=10.203.0.0/16",

шаг для обновления CIDR pod с 10.201.0.0/16 до 10.203.0.0/16

  1. с помощью этой команды обновил конфигурационную карту kubeadm-confg kubectl -n kube-system edit cm kubeadm-config

podSubnet: 10.203.0.0/16

  1. Обновил kuber-controller-manger и перезапустил его.

sed -i 's/10.201.0.0/10.203.0.0/' /etc/kubernetes/manifests/kube-controller-manager.yaml

после обновления IP.

весь конфиг показывает подсеть как 10.203.0.0, но стручки создаются в подсети `10.201.0.0'.

# kubectl get cm kube-proxy -n kube-system -o yaml |grep -i clusterCIDR
    clusterCIDR: 10.203.0.0/16
# kubectl get no -o yaml |grep -i podcidr
    podCIDR: 10.203.0.0/24
    podCIDRs:
    podCIDR: 10.203.1.0/24
    podCIDRs:
    podCIDR: 10.203.2.0/24
    podCIDRs:
    podCIDR: 10.203.3.0/24
    podCIDRs:
    podCIDR: 10.203.5.0/24
    podCIDRs:
    podCIDR: 10.203.4.0/24
    podCIDRs:
    podCIDR: 10.203.6.0/24
    podCIDRs:
2
задан 9 August 2021 в 18:18
1 ответ

Мне удалось воспроизвести вашу проблему. У меня такая же ошибка. Необходимо обновить несколько других файлов конфигурации.

Чтобы полностью изменить пул IP-адресов модулей и узлов, вам необходимо обновить значения podCIDR и ClusterCIDR в нескольких файлах конфигурации:

  • обновить ConfigMap kubeadm-confg - вы уже это сделали

  • обновите файл /etc/kubernetes/manifests/kube-controller-manager.yaml - вы уже это сделали

  • обновите определения узлов с правильным podCIDR и повторно добавьте их в кластер

  • обновите ConfigMap kube-proxy в пространстве имен kube-system

  • добавьте новый пул IP в Calico CNI и удалите старый, заново создайте развертывания

Обновите определение узла(ов):

  1. Получить имя(я) узла(ов): kubectl get no - в моем случае это контроллер
  2. Сохранить определения в файл: kubectl get no controller -o yaml > file.yaml
  3. Редактировать file.yaml -> обновить podCIDR и podCIDRs значения с вашим новым диапазоном IP-адресов, в вашем случае 10.203 .0.0
  4. Удалить старое и применить новое определение узла: kubectl удалить контроллер && kubectl применить -f файл.yaml

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

Обновить ConfigMap kube-proxy в пространстве имен kube-system

  1. Получить текущую конфигурацию kube-proxy: kubectl get cm kube- proxy -n kube-system -o yaml > kube-proxy.yaml
  2. Изменить kube-proxy.yaml -> обновить значение ClusterCIDR с вашим новым диапазоном IP-адресов, в вашем случае 10.203.0.0
  3. Удалить старый и применить новый kube-proxy ConfigMap: kubectl delete cm kube-proxy -n kube-system && kubectl apply -f kube-proxy.yaml

Добавить новый пул IP-адресов в Calico и удалить старый:

  1. Загрузить бинарный файл Calico и сделать его исполняемым:

     sudo curl -o /usr/local/bin/calicoctl -O -L "https://github.com/projectcalico/calicoctl/releases/download/v3.20.0/calicoctl"
    sudo chmod +x /usr/local/bin/calicoctl
    
  2. Добавить новый пул IP:

    calicoctl create -f -<

    Проверьте, есть ли новый пул IP-адресов: calicoctl get ippool -o wide

  3. Получите конфигурацию для отключения старого пула IP-адресов -> calicoctl get ippool -o yaml > pool.yaml

  4. Изменить конфигурация: -> добавить disabled:true для default-ipv4-ippool в pool.yaml:

    apiVersion: projectcalico.org/v3
    Предметы:
    - версия API: projectcalico.org/v3
    вид: IPPool
    метаданные:
    Отметка времени создания: "2021-08-12T07:50:24Z"
    имя: по умолчанию ipv4-ippool
    РесурсВерсия: "666"
    спецификация:
    Размер блока: 26
    сидр: 10.201.0.0/16
    ipipMode: всегда
    natOutgoing: правда
    селектор узлов: все()
    vxlanMode: никогда
    отключено: правда
    
  5. Применить новую конфигурацию: calictoctl apply -f pool.yaml

    Исключенный вывод команды calicoctl get ippool -o wide:

    NAME CIDR NAT IPIPMODE VXLANMODE DISABLED SELECTOR
    default-ipv4-ippool 10.201.0.0/16 true Всегда Никогда true all()
    мой-новый-пул 10.203.0.0/16 true Всегда Никогда false all()
    
  6. Повторно создайте модули, которые находятся в сети 10.201.0.0 (в каждом пространстве имен, включая пространство имен kube-system): просто удалите их, и они должны мгновенно воссоздаться в новом Диапазон IP-пулов, например:

     kubectl delete pod calico-kube-controllers-58497c65d5-rgdwl -n kube-system
    kubectl удалить модули coredns-78fcd69978-xcz88 -n kube-system
    kubectl удалить модуль nginx-deployment-66b6c48dd5-5n6nw
    и т.д..
    

    Вы также можете удалять и применять развертывания.

После выполнения этих шагов предупреждение о значении clusterCIDR при добавлении нового узла не появляется. Новые модули создаются в правильном диапазоне пула IP-адресов.

Источник:

1
ответ дан 11 August 2021 в 16:03

Теги

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