在 ingress
中应用 k8s
后,我看到服务地址被设置为 node's
IP 地址?
首先,我添加了入口控制器
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.48.1/deploy/static/provider/baremetal/deploy.yaml
其次,我添加了入口 yml:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress1
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: "n1.avocado.work"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: node1
port:
number: 80
然后我检查了入口:
kubectl get ingress minimal-ingress1
地址是节点的IP,为什么不是主节点的IP
我试了很多次,结果都是一样的。我该如何解决?请问有什么线索吗?
答案 0 :(得分:2)
如果您使用的是裸机,则这是按照设计进行的。查看this了解更多信息。
<块引用>MetalLB 为 Kubernetes 提供网络负载均衡器实现 不在受支持的云提供商上运行的集群,有效地 允许在任何集群中使用 LoadBalancer 服务。
本节演示如何使用二层配置模式 MetalLB 与 Kubernetes 中的 NGINX Ingress 控制器 具有可公开访问节点的集群。在这种模式下,一个节点 为 ingress-nginx 服务 IP 吸引所有流量。看 交通政策了解更多详情。