Проблемы со случайным DNS в Kubernetes

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

Недавно я установил кластер Kubernetes на небольшой виртуальной машине Azure Linux (одноузловой кластер). Большую часть дня все работает хорошо. Однако в случайный момент все запросы DNS начинают давать сбой и время ожидания истекает. Поды не могут разрешать IP-адреса служб. После этих запусков кластер не восстанавливается. Все запросы DNS продолжают терпеть неудачу, пока я не перезапущу Calico. Перезапуск модуля ситцевого узла надежно решает эту проблему в течение определенного периода времени.

Я пробовал пройти отладку DNS на сайте Kubernetes, но безуспешно.

nslookup kubernetes.default
;; connection timed out; no servers could be reached
cat /etc/resolv.conf
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5

Раньше я видел следующие ошибки:[ERROR] plugin/errors: 2 1699910358767628111.9001703618875455268. HINFO: read udp 10.244.0.69:35222->10.234.44.20:53: i/o timeout

Но они не появляются с тех пор, как я начал использовать Node Local DNS.

В логах кубелет я вижу следующее:

Nov 29 17:52:18  kubelet[4026]:   "name": "k8s-pod-network",
Nov 29 17:52:18  kubelet[4026]:   "cniVersion": "0.3.1",
Nov 29 17:52:18  kubelet[4026]:   "plugins": [
Nov 29 17:52:18  kubelet[4026]:     {
Nov 29 17:52:18  kubelet[4026]:       "type": "calico",
Nov 29 17:52:18  kubelet[4026]:       "log_level": "info",
Nov 29 17:52:18  kubelet[4026]:       "log_file_path": "/var/log/calico/cni/cni.log",
Nov 29 17:52:18  kubelet[4026]:       "datastore_type": "kubernetes",
Nov 29 17:52:18  kubelet[4026]:       "nodename": "",
Nov 29 17:52:18  kubelet[4026]:       "mtu": 0,
Nov 29 17:52:18  kubelet[4026]:       "ipam": {
Nov 29 17:52:18  kubelet[4026]:           "type": "calico-ipam"
Nov 29 17:52:18  kubelet[4026]:       },
Nov 29 17:52:18  kubelet[4026]:       "policy": {
Nov 29 17:52:18  kubelet[4026]:           "type": "k8s"
Nov 29 17:52:18  kubelet[4026]:       },
Nov 29 17:52:18  kubelet[4026]:       "kubernetes": {
Nov 29 17:52:18  kubelet[4026]:           "kubeconfig": "/etc/cni/net.d/calico-kubeconfig"
Nov 29 17:52:18  kubelet[4026]:       }
Nov 29 17:52:18  kubelet[4026]:     },
Nov 29 17:52:18  kubelet[4026]:     {
Nov 29 17:52:18  kubelet[4026]:       "type": "portmap",
Nov 29 17:52:18  kubelet[4026]:       "snat": true,
Nov 29 17:52:18  kubelet[4026]:       "capabilities": {"portMappings": true}
Nov 29 17:52:18  kubelet[4026]:     },
Nov 29 17:52:18  kubelet[4026]:     {
Nov 29 17:52:18  kubelet[4026]:       "type": "bandwidth",
Nov 29 17:52:18  kubelet[4026]:       "capabilities": {"bandwidth": true}
Nov 29 17:52:18  kubelet[4026]:     }
Nov 29 17:52:18  kubelet[4026]:   ]
Nov 29 17:52:18  kubelet[4026]: }: [failed to find plugin "calico" in path [/opt/cni/bin]]

Сначала я начал видеть это с Flannel, поэтому я попытался переключиться на Calico, но безуспешно. Я попытался добавить Node Local DNS и настроить --resolv-conf=/run/systemd/resolve/resolv.confдля моего кублета, поскольку я работаю на Ubuntu 18.04. Однако это тоже не помогло.

Я работаю над средой с ограниченным ЦП, поэтому мне интересно, может ли это быть причиной этого.

Вот моя среда: ОС: Ubuntu 18.04.5 LTS (GNU/Linux 5.4.0-1031-azure x86_64)
ВМ: 2 ядра, 16 ГБ Kubernetes: 1.19.3

  • Брандмауэр не включен
kubectl nodes describe

  Resource           Requests      Limits
  --------           --------      ------
  cpu                1625m (81%)   1400m (70%)
  memory             7553Mi (47%)  8020Mi (50%)
  ephemeral-storage  0 (0%)        0 (0%)
  hugepages-1Gi      0 (0%)        0 (0%)
  hugepages-2Mi      0 (0%)        0 (0%)

Дайте мне знать, какую еще информацию было бы полезно предоставить.

0 ответов

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