我正在运行一个由三个节点组成的 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 门户上启用了所有入站和出站端口,但问题仍然存在。