如何解决使用 Google Cloud Code ItelliJ 时如何让 Google Kubernetes Engine LoadBalancer 服务接收外部流量?
我有一个正常工作的 GKE 集群在端口 80 上提供内容。如何让负载均衡器服务在外部(区域保留)静态 IP 111.222.333.123 上传送内容?
我看到 kubectl get service
显示外部静态 IP 已成功注册。外部 IP 确实响应 ping 请求。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.16.0.1 <none> 443/TCP 17h
myapp-cluster NodePort 10.16.5.168 <none> 80:30849/TCP 84m
myapp-service LoadBalancer 10.16.9.255 111.222.333.123 80:30879/TCP 6m20s
此外,Google Cloud Platform 控制台显示转发规则已建立并正确引用 GKE 目标池。
我使用的部署和服务清单如下所示:
apiVersion: apps/v1
kind: Deployment
Metadata:
name: myapp
labels:
app: myapp
spec:
replicas: 2
selector:
matchLabels:
app: myapp
environment: sandBox
template:
Metadata:
labels:
app: myapp
environment: sandBox
spec:
containers:
- name: myapp
image: myapp
imagePullPolicy: Always
ports:
- containerPort: 8080
restartPolicy: Always
---
apiVersion: v1
kind: Service
Metadata:
name: myapp-service
spec:
selector:
app: myapp
environment: sandBox
ports:
- port: 80
targetPort: 8080
type: LoadBalancer
loadBalancerIP: "111.222.333.123"
相关的 skaffold 配置文件供参考:
apiVersion: skaffold/v2beta18
kind: Config
Metadata:
name: myapp
build:
artifacts:
- image: myapp
context: .
docker: {}
deploy:
kubectl:
manifests:
- gcloud_k8_staticip_deployment.yaml
在使用 Google Cloud Code 运行此配置时,我缺少什么以允许流量到达 GKE 集群?
如果之前有人问过这个问题,我们深表歉意。如果我错过了正确的解决方案审查问题,很高兴指出。
解决方法
据我所知,这个问题中引用的配置实际上应该有效,只要图像指向可访问的位置。我已经确认此配置可以在完全没有 IDE 的情况下使用玩具设置工作,仅使用 gcloud shell 并且一切正常。
该问题源于 Google Cloud Code 在运行配置中配置了上下文切换时更改了 kubectl context 而没有任何额外警告。
,我复制了您的设置并遇到了与您相同的问题(能够 ping 服务 IP,但无法从浏览器连接到它)。
然后我将部署容器端口更改为 80,将服务目标端口更改为 80,将服务端口更改为 8080,并且成功了,然后我能够使用服务 IP 从浏览器连接到部署。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。