Cly*_*row 3 google-cloud-platform google-kubernetes-engine google-cloud-networking
我想将服务从一个 GKE 集群连接到另一个。我创建了作为内部负载平衡器的服务,我想为其附加一个静态 ip。我创建了我的 service.yml
apiVersion: v1
kind: Service
metadata:
name: ilb-service
annotations:
cloud.google.com/load-balancer-type: "Internal"
kubernetes.io/ingress.global-static-ip-name: es-test
labels:
app: hello
spec:
type: LoadBalancer
selector:
app: hello
ports:
- port: 80
targetPort: 8080
protocol: TCP
Run Code Online (Sandbox Code Playgroud)
但是在 apply -f 之后,当我检查服务时,负载均衡器入口看起来像这样:
status:
loadBalancer:
ingress:
- ip: 10.156.0.60
Run Code Online (Sandbox Code Playgroud)
而且我无法使用静态 ip 连接。如何解决?
编辑:
After suggestion I changed the yml file to:
apiVersion: v1
kind: Service
metadata:
name: ilb-service
annotations:
cloud.google.com/load-balancer-type: "Internal"
labels:
app: hello
spec:
type: LoadBalancer
selector:
app: hello
ports:
- port: 80
targetPort: 8080
protocol: TCP
loadBalancerIP: "xx.xxx.xxx.xxx" -- here my static ip
Run Code Online (Sandbox Code Playgroud)
服务现在看起来像这样:
spec:
clusterIP: 11.11.1.111
externalTrafficPolicy: Cluster
loadBalancerIP: xx.xxx.xxx.xxx
ports:
- nodePort: 31894
port: 80
protocol: TCP
targetPort: 8080
selector:
app: hello
sessionAffinity: None
type: LoadBalancer
status:
loadBalancer: {}
Run Code Online (Sandbox Code Playgroud)
我仍然无法连接
Ale*_*nov 14
可以创建静态内部 IP 并将其分配给LoadBalancerk8s 服务类型。
LoadBalancer,然后分配 IP 地址。...
annotations:
networking.gke.io/load-balancer-type: "Internal"
...
type: LoadBalancer
loadBalancerIP: <your_static_internal_IP>
Run Code Online (Sandbox Code Playgroud)
这将启动一个内部 LB 并为其分配静态 IP。您还可以在“静态内部 IP 地址”屏幕中检查新创建的负载均衡器现在正在使用新 IP。如果需要,您可以为其分配Cloud DNS记录。此外,您还可以在预留过程中选择“共享”IP 地址,以便最多 50 个内部负载均衡器使用该地址。
您不会使用内部 IP 的注释。相反,只需在spec.loadBalancerIP字段中指定您想要使用的 IP 地址(而不是按名称),您就可以指定一个数字 IP 地址来分配给 loadBalancer。确保该 IP 未在其他任何地方使用,并且与您的集群在同一子网内。
编辑
澄清最后一句话:如果您将内部 IP 保留为静态 IP,则该 IP 不再可用,静态保留将其视为“正在使用”。要将 IP 分配给内部 LoadBalancer,IP 不得保留,也不得使用。
这并不清楚,但由于 GCP 控制器创建内部负载均衡器的方式,它无法使用已保留的 IP 地址。
| 归档时间: |
|
| 查看次数: |
2571 次 |
| 最近记录: |