我在Google Cloud Kubernetes引擎上有一个部署
apiVersion: apps/v1
kind: Deployment
metadata:
name: graph-service-2-deployment
labels:
app: graph-service-2
spec:
replicas: 1
selector:
matchLabels:
app: graph-service-2
tier: web
template:
metadata:
labels:
app: graph-service-2
tier: web
spec:
containers:
- name: graph-service-container
image: gcr.io/myimage:latest
ports:
- containerPort: 8080
resources:
limits:
cpu: 1000m
memory: 2Gi
ephemeral-storage: 4Gi
requests:
cpu: 500m
memory: 512Mi
ephemeral-storage: 1Gi
我正在尝试使用Service公开此部署:
apiVersion: v1
kind: Service
metadata:
name: graph-service-2-service
labels:
app: graph-service-2
spec:
type: LoadBalancer
loadBalancerIP: 35.212.191.164
selector:
app: graph-service-2
tier: web
ports:
- port: 80
targetPort: 8080
我的应用程序在8080上侦听。
我如何保留IP:gcloud compute addresses create graph-service-2-ip --region us-west1 --network-tier=STANDARD
gcloud compute addresses describe graph-service-2-ip --region us-west1
我应用配置kubectl apply -f service
kubectl apply -f deployment
部署完成了。
我可以在Google Cloud VPC IP地址UI中看到我的IP地址,有趣的是它说它没有用途:
期望:从我的Web浏览器转到保留的外部IP,并通过http与我的应用程序通信。
实际情况:我从Web浏览器转到保留的IP地址,遇到以下错误页面:页面没有找到!
我也在这里遵循谷歌的指南,并尝试了他们建议的许多变化。
如果我使用相同的端口转发规则通过ui创建并公开服务,它就可以正常工作,我可以访问我的应用程序。
请让我知道为什么我不能使用我的保留IP访问我的应用程序。如果你也有任何建议,我如何可以改善我的设置在其他方面,我会很高兴听到他们。
1条答案
按热度按时间7uzetpgm1#
您保留的静态IP似乎使用标准网络层。
您需要将以下注解添加到服务规范中:
就像
注意:您可以找到所有可能的参数here