MetalLB не может подключиться к API Kubernetes
Я установил 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*
Я что-то пропустил?
1 ответ
Распространенная ошибка Flannel - установить свой собственный pod-network-cidr с помощью kubadm init, а затем не помещать тот же самый CIDR в манифест YAML Flannel, где они жестко запрограммировали CIDR по умолчанию в исходном файле Flannel, который может отличаться от вашего.
Сначала проверьте это.
Вы можете изменить диапазон, первая попытка с ограниченным диапазоном может быть с одним ip, также вы можете попробовать, я имею в виду только что упомянутые адреса - 10.21.8.12