裸机 kubernetes 上的控制平面节点没有到主机的路由

裸机 kubernetes 上的控制平面节点没有到主机的路由

我正在运行一个由三个节点组成的 kubernetes 集群。控制平面节点在 Azure VM 内运行,两个工作节点在两个独立的裸机服务器上运行。我已经设置了集群,并且kubeadm两个工作节点连接在一起,没有任何问题。我安装了 weave 作为 CNI,生成 pod 和创建部署都运行正常。当我尝试设置 nginx 入口以进行外部访问时,我遇到了问题。应用此清单时

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx-example
  rules:
  - http:
      paths:
      - path: /*
        pathType: Prefix
        backend:
          service:
            name: demo
            port:
              number: 80

我收到以下错误:Error from server (InternalError): error when creating "ingress.yaml": Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": failed to call webhook: Post "https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=10s": dial tcp 10.98.59.50:443: connect: no route to host

检查完该问题后,我还意识到,每当我尝试 curl 任何集群 IP 地址(例如curl 10.32.0.9)时,都会收到此错误:curl: (7) Failed to connect to 10.32.0.9 port 80 after 3056 ms: No route to host

经过一番谷歌搜索,似乎问题出在防火墙上。我在 Azure 门户上启用了所有入站和出站端口,但问题仍然存在。

相关内容