kubernetes - MetalLB 无法连接到 Kubernetes API

标签 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 始终处于状态

在 Controller pod 的日志中,我收到以下错误消息:

{"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
我还安装了 flannel 和 Kubernetes Dashboard。一切正常!

我根据以下情况安装了 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*

我错过了什么吗?

最佳答案

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

先检查一下。

关于kubernetes - MetalLB 无法连接到 Kubernetes API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55811613/

相关文章:

kubernetes - 单节点集群(minikube)上的 rook ceph 中出现 1 pg 尺寸过小的健康警告

azure - Azure 中的 Traefik for Kubernetes(前端重定向到 https)

amazon-web-services - 如何在 AWS Application Load Balancer 中限制文件上传大小?

php - 使用三台服务器负载平衡 PHP Web 应用程序

docker - Kubernetes 节点无法访问外部 Kafka 集群

docker - 无法在 Kubernetes 中更新节点注释

docker - Kubernetes pod 无法访问在另一个节点上运行的服务

python - 如何让多个 Pod 在 Kubernetes 上相互通信

docker - 部署Tensorflow服务客户端脚本

dns - AWS 负载均衡器需要 @ cname 记录,但这会覆盖我的 @ MX 记录