我在集群的同一区域中创建了一个区域静态IP,并尝试将其与LoadBalancer一起使用:
Wordpress
但是,我不知道为什么会收到此错误:
---
apiVersion: v1
kind: Service
metadata:
name: ambassador
spec:
type: LoadBalancer
externalTrafficPolicy: Local
ports:
- port: 80
targetPort: 8080
selector:
service: ambassador
loadBalancerIP: "x.x.x.x"
编辑:问题已解决,但..
创建静态IP地址时,我使用了:
Error creating load balancer (will retry): failed to ensure load balancer for service default/ambassador: requested ip "x.x.x.x" is neither static nor assigned to the LB
我将此地址用于服务。 它没有像我说的那样工作。
但是,当我使用Web控制台创建外部静态区域IP时,该IP可以与我的Service一起正常工作,并且可以毫无问题地进行连接。
答案 0 :(得分:1)
我敢打赌,那时没有公开源IP服务。正如官方文档所说:
从Kubernetes 1.5开始,默认情况下,发送到Type = LoadBalancer的服务的数据包是源NAT,因为所有处于就绪状态的可调度Kubernetes节点均可进行负载平衡流量。因此,如果数据包到达没有端点的节点,则系统将其代理到具有端点的节点,用该节点的IP替换数据包上的源IP(如上一节所述)。
尝试使用此命令将源IP服务公开给负载均衡器:
kubectl expose deployment <source-ip-app> --name=loadbalancer --port=80 --target-port=8080 --type=LoadBalancer
在此页面上,您将找到更多指南以及用于健全性检查的许多诊断命令。