Ошибка Kube-state-metrics: не удалось создать клиента: ... тайм-аут ввода-вывода

Я запускаю Kubernetes на виртуальных машинах и прохожу базовые учебные пособия, в настоящее время добавляю логи и метрики в пример гостевой книги PHP / Redis. Я пытаюсь установить kube-state-метрики:

git clone https://github.com/kubernetes/kube-state-metrics.git kube-state-metrics
kubectl create -f kube-state-metrics/kubernetes

но это не удается.

kubectl describe pod --namespace kube-system kube-state-metrics-7d84474f4d-d5dg7

...

Предупреждение Нездоровый 28м (x8 более 30м) kubelet, kubernetes-node1 Ошибка проверки готовности: Получить http://192.168.129.102:8080/healthz: dial tcp 192.168.129.102:8080: connect: соединение отклонено

kubectl logs --namespace kube-system kube-state-metrics-7d84474f4d-d5dg7 -c kube-state-metrics

I0514 17:29:26.980707 1 main.go:85] Использование сборщиков по умолчанию
I0514 17:29:26.980774 1 main.go:93] Использование всего пространства имен
I0514 17:29:26.980780 1 main.go:129] метрический белый-черный список: внесение в черный список следующих элементов:
W0514 17: 29: 26.980800 1 client_config.go: 549] Не были указаны ни --kubeconfig, ни --master. Использование inClusterConfig. Это может не сработать.
I0514 17: 29: 26.983504 1 main.go: 169] Тестирование связи с сервером
F0514 17:29:56.984025 1 main.go:137] Не удалось создать клиент: ОШИБКА, связывающаяся с apiserver: Получить https://10.96.0.1/version?timeout=32s: набрать tcp 10.96.0.1:443: i/ время ожидания

Я не уверен, что этот IP-адрес 10.96.0.1 правильный. Мои виртуальные машины находятся в мостовой сети 10.10.10.0/24 и сети только для хоста 192.168.59.0/24. При инициализации Kubernetes я использовал аргумент --pod-network-cidr=192.168.0.0/16 так что это еще один диапазон IP-адресов, который я ожидаю. Но 10.96.0.1 выглядит незнакомым.

Я новичок в Kubernetes, просто делаю базовые уроки, поэтому я не знаю, что делать сейчас. Как это исправить или расследовать дальше?


РЕДАКТИРОВАТЬ - дополнительная информация:

kubectl get nodes -o wide

NAME                STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
kubernetes-master   Ready    master   15d   v1.14.1   10.10.10.11   <none>        Ubuntu 18.04.2 LTS   4.15.0-48-generic   docker://18.9.2
kubernetes-node1    Ready    <none>   15d   v1.14.1   10.10.10.5    <none>        Ubuntu 18.04.2 LTS   4.15.0-48-generic   docker://18.9.2
kubernetes-node2    Ready    <none>   15d   v1.14.1   10.10.10.98   <none>        Ubuntu 18.04.2 LTS   4.15.0-48-generic   docker://18.9.2

Команда, которую я использовал для инициализации кластера:

sudo kubeadm init --apiserver-advertise-address=192.168.59.20 --pod-network-cidr=192.168.0.0/16

0 ответов

Причиной этого, вероятно, является перекрытие сети Pod с сетью узла - вы устанавливаете CIDR сети Pod на 192.168.0.0/16, в которую будет включена ваша сеть только для хоста, поскольку ее адрес 192.168.59.0/24.

Чтобы решить эту проблему, вы можете изменить CIDR сети модуля на 192.168.0.0/24 (это не рекомендуется, поскольку это даст вам только 255 адресов для вашей сети модуля).

Вы также можете использовать другой ассортимент для своего Calico. Если вы хотите сделать это на работающем кластере, вот инструкция.

Также по-другому я пробовал:

отредактируйте манифест Calico на другой диапазон (например, 10.0.0.0/8) -sudo kubeadm init --apiserver-advertise-address=192.168.59.20 --pod-network-cidr=10.0.0.0/8) и примените его после инициализации.

Другой способ - использовать другой CNI, например Flannel (который использует 10.244.0.0/16).

Вы можете найти больше информации о диапазонах плагинов CNI здесь.

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