Kubernetes 静态IP地址不可分配给Google云中的负载均衡器
我试图为我的Traefik ingress负载平衡器分配一个静态IP地址,但在谷歌云上总是得到相同的响应:Kubernetes 静态IP地址不可分配给Google云中的负载均衡器,kubernetes,google-kubernetes-engine,gcloud,traefik,traefik-ingress,Kubernetes,Google Kubernetes Engine,Gcloud,Traefik,Traefik Ingress,我试图为我的Traefik ingress负载平衡器分配一个静态IP地址,但在谷歌云上总是得到相同的响应: Error creating load balancer (will retry): failed to ensure load balancer for service default/traefik-service: requested ip "35.185.139.44" is neither static nor assigned to the LB coffee:gke
Error creating load balancer (will retry): failed to ensure load balancer for service default/traefik-service: requested ip "35.185.139.44" is neither static nor assigned to the LB
coffee:gke Steven$ glcoud compute addresses list
我注意到所有的静态都是在保留和非说在使用中
# Declare Traefik ingress service
kind: Service
apiVersion: v1
metadata:
name: traefik-service
spec:
selector:
app: traefik-gke-demo
tier: reverse-proxy
ports:
- port: 80
name: http
- port: 443
name: https
- port: 8080
name: admin
type: LoadBalancer
loadBalancerIP: 35.185.xx.xx
当您使用
服务规范类型:LoadBalancer
因此,删除loadBalancerIP:35.185.139.44
和kubectl apply--filename=…
,然后稍等片刻,然后kubectl get service/traefik service
您应该会看到LB为您提供了服务
或者:
kubectl获取服务\
--选择器=应用程序=traefik gke演示,层=反向代理\
--output=jsonpath=“{.status.loadBalancer.ingress[0].ip}”
以及以下一些变体,以确认已配置负载平衡器:
gcloud计算转发规则列表\
--format=“value(IPAddress)\
--project=[[YOUR-project]]
NB以这种方式使用服务将提供TCP负载平衡器。如果您更喜欢HTTP | L7负载平衡器,则应使用Ingress
服务声明正确,
运行Kubernetes v1.1的Google容器引擎支持loadBalancerIP
,您只需事先为您的项目创建静态IP,即
gcloud compute addresses create traefik-static-lb
gcloud compute addresses list
保留后,创建LB服务
UPD:
下面是一个分配了静态IP的我的LB服务示例:
sukhoversha@sukhoversha:~/GCP$ gcloud compute addresses list
NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS
test-static-ip 35.198.94.139 EXTERNAL europe-west3 IN_USE
sukhoversha@sukhoversha:~/GCP$ kk get svc rabbitmq-management
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
rabbitmq-management LoadBalancer 10.59.241.225 35.198.94.139 15672:31728/TCP 4d
sukhoversha@sukhoversha:~/GCP$ kk get svc rabbitmq-management -oyaml
apiVersion: v1
kind: Service
metadata:
labels:
app: rabbitmq
name: rabbitmq-management
namespace: default
spec:
clusterIP: 10.59.241.225
externalTrafficPolicy: Cluster
loadBalancerIP: 35.198.94.139
ports:
- name: http
nodePort: 31728
port: 15672
protocol: TCP
targetPort: 15672
selector:
app: rabbitmq
sessionAffinity: None
type: LoadBalancer
我正在尝试使用静态IP地址。有没有办法告诉谷歌自动神奇地为负载平衡器使用静态IP地址?我正在尝试使用我自己的负载平衡器,而不是谷歌云负载平衡器,或者如果使用gcloud,至少可以设置负载平衡器的IP地址。我的错。对不起,你的问题很清楚。我问题是你不能告诉服务
是类型:负载平衡器
,因为这是在Kubernetes引擎中定义的,用于提供L4磅。我想可能实现这一点的方法是通过入口
并使用节点端口
定义服务。让我做一些研究。嗯……又错了:我没有我不知道。让我们看看其他人怎么说。好吧,我可以给它分配一个入口,但不能分配一个负载均衡器。那有效吗?你创建了一个静态ip吗?gcloud compute addresses list
是的,我有静态ip地址。问题是,似乎不可能将此ip地址分配给负载均衡器服务。它可以分配给一个Ingress yes。@StevenSmart从技术上讲,这是可能的,我已经用静态IP的LB svc示例更新了我的答案。如果您对此有问题,请检查堆栈驱动程序日志,可能是一些本地问题。