MetalLB无法连接到Kubernetes API

时间:2019-04-23 12:48:01

标签: kubernetes load-balancing flannel internal-load-balancer bare-metal-server

我安装了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*

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

您可以更改范围吗,第一次尝试在有限范围内使用单个ip也可以尝试,我的意思是刚才提到的地址-10.21.8.12

答案 1 :(得分:0)

Flannel的一个常见错误是使用kubadm init设置您自己的pod-network-cidr,然后不在Flannel的YAML清单中放入相同的CIDR,因为他们在Flannel上游文件中将默认的CIDR硬编码为可能与您的文件不同的默认CIDR。

先检查一下。