MetalLB не может подключиться к Kubernetes API

Я установил MetalLB, чтобы иметь возможность предоставлять свои услуги через IP-адрес моей сети. После установки я попробовал простой hello-world в соответствии с: https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/

Я заметил, что внешний IP всегда в состоянии

В журналах модуля контроллера я получил следующее сообщение об ошибке:

{"caller":"reflector.go:205","level":"error","msg":"go.universe.tf/metallb/internal/k8s/k8s.go:231: Failed to list *v1.Service: Get https://10.96.0.1:443/api/v1/services?limit=500\u0026resourceVersion=0: dial tcp 10.96.0.1:443: i/o timeout","ts":"2019-04-23T12:16:31.3694Z"}

{"caller":"reflector.go:205","level":"error","msg":"go.universe.tf/metallb/internal/k8s/k8s.go:237: Failed to list *v1.ConfigMap: Get https://10.96.0.1:443/api/v1/namespaces/metallb-system/configmaps?fieldSelector=metadata.name%3Dconfig\u0026limit=500\u0026resourceVersion=0: dial tcp 10.96.0.1:443: i/o timeout","ts":"2019-04-23T12:17:01.779341Z"}

Я установил Kubernetes как обычно и инициализировал следующей командой: sudo kubeadm init --pod-network-cidr=10.21.8.128/25 --apiserver-advertise-address=10.21.8.1

В "kube-controller-manager.yaml" я изменил размер "node-cidr-mask", так как стандартное значение "/24", а размер моего кластера "/25": --node-cidr-mask-size=26

Я также установил фланель и панель управления Kubernetes. Все работает нормально!

Затем я установил MetalLB в соответствии с: https://metallb.universe.tf/tutorial/layer2/

И настроил MetalLB с этой конфигурацией:

*apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: my-ip-space
      protocol: layer2
      addresses:
      - 10.21.8.129-10.21.8.254*

Я что-то пропустил?


comment
Похоже, что metallb не может связаться с apiserver. Какую версию kubernetes вы установили?   -  person driftavalii    schedule 28.12.2019
comment
Кроме того, я только что заметил: почему вы используете диапазон IP-адресов в MetalLB, который исходит из POD CIDR? MetalLB будет работать, перехватывая трафик ARP для IP-адресов в той же IP-подсети, которая используется на интерфейсе одного из узлов.   -  person Tobias    schedule 03.03.2020


Ответы (2)


Распространенной ошибкой с Flannel является установка собственного pod-network-cidr с помощью kubadm init, а затем не добавление того же CIDR в манифест Flannel YAML, где они жестко запрограммировали CIDR по умолчанию в исходном файле Flannel, который может отличаться от вашего.

Проверьте это в первую очередь.

person Tobias    schedule 02.03.2020

можете ли вы изменить диапазон, сначала попробуйте с ограниченным диапазоном, может быть с одним IP-адресом, также вы можете попробовать, я имею в виду только что упомянутые адреса - 10.21.8.12

person Manoj Kasa    schedule 03.05.2019