Кластер Kubernetes через kubeadm — размер буфера CoreDNS слишком мал / проблемы с сетью Pods

Я новичок в развертывании локальных кластеров Kubernetes. Мне удалось развернуть один, используя CNI.

Интернет-соединение внутри Pods несколько медленное/не работает. Я пытаюсь развернуть самостоятельный модуль действий GitHub, который обращается к API GitHub. Например, доступ*.github.comПолное доменное имя из подов приведет к этой ошибке (журналы подов coredns):[ERROR] plugin/errors: 2 api.github.com. A: dns: buffer size too small

Я также заметил, что модули Pod не подключаются к серверам Ubuntu или Debian, но внутри модуля работает (с использованием модуля из K8s).

Хост-компьютер может получить доступ к каждому сайту, поэтому я предполагаю, что с брандмауэром проблем нет.

ufwиiptablesотключены.

я приступил к512,1024и4096но все равно та же ошибка. По умолчаниюbufsizeв ConfigMap не определен, но выдал ту же ошибку.

Карта конфигурации CoreDNS ($ kubectl describe configmap coredns -n kube-system):

      Name:         coredns
Namespace:    kube-system
Labels:       <none>
Annotations:  <none>

Data
====
Corefile:
----
.:53 {
    bufsize 4096
    errors
    health {
       lameduck 5s
    }
    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 {
       max_concurrent 1000
    }
    cache 30
    loop
    reload
    loadbalance
}
BinaryData
====
Events:  <none> 

Как я развернул кластер:

      kubeadm init --pod-network-cidr=172.30.0.0/16 --service-cidr=172.16.0.0/16 --cri-socket=unix:/run/cri-dockerd.sock

kubectl taint nodes --all node-role.kubernetes.io/control-plane-

# Install weave
sudo curl -L git.io/weave -o /usr/local/bin/weave
sudo chmod a+x /usr/local/bin/weave

# Download weave DaemonSet from Github
wget https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml

Изменить:

      ...
containers:
  - name: weave
    env:
      - name: IPALLOC_RANGE
    value: 172.30.0.0/16
...

Окончательно:kubectl apply -f ./weave-daemonset-k8s.yaml


Версии:

      $ kubectl version
    Client Version: v1.28.2
    Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
    Server Version: v1.28.2

$ kubectl describe configmap coredns -n kube-system
    image: registry.k8s.io/coredns/coredns:v1.10.1

В чем может быть причина?

Пытался:

  • kubeadmперезагрузить
  • Разный CIDR для узла и сервиса
  • Конфигурация по умолчанию
  • Редактироватьweaveконфигурация -IPALLOC_RANGEдля соответствия Node CIDR
  • dnsutilsСтручки
    • github.com
      • & - Успех
      • ping- Сбой – неизвестный хост – буфер слишком мал. Ошибка.
    • api.github.com
      • - буфер слишком мал Ошибка
      • - Успех
    • kubernetes.io
      • nslookup&dig- Успех

Ожидания:

  • Рабочее сетевое соединение в Pods
  • Успешное разрешение DNS

РЕДАКТИРОВАТЬ


Я обновил CoreDNS до версии 1.11.0 , и теперь ошибка «слишком маленький буфер» отсутствует , а вместо этого отображается сообщение « Время ожидания истекло». По крайней мере, я вижу, что он правильно пытается запросить мой основной DNS, который я тестировал несколько раз, и работает как положено.


0 ответов

Другие вопросы по тегам