【发布时间】:2019-11-13 04:40:27
【问题描述】:
我在 GKE 上创建了一个 VPC 原生集群,在其上禁用了主授权网络。 我认为我做的一切都是正确的,但我仍然无法从外部访问该应用程序。
下面是我的服务清单。
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.16.0 (0c01309)
creationTimestamp: null
labels:
io.kompose.service: app
name: app
spec:
ports:
- name: '3000'
port: 80
targetPort: 3000
protocol: TCP
nodePort: 30382
selector:
io.kompose.service: app
type: NodePort
应用程序的容器端口是3000,我从日志中检查了它是否正常工作。
我也添加了防火墙以在我的 vpc 网络中打开30382port。
我仍然无法访问具有指定 nodePort 的节点。
我有什么遗漏吗?
kubectl 获取 ep:
NAME ENDPOINTS AGE
app 10.20.0.10:3000 6h17m
kubernetes 34.69.50.167:443 29h
kubectl 获取 svc:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
app NodePort 10.24.6.14 <none> 80:30382/TCP 6h25m
kubernetes ClusterIP 10.24.0.1 <none> 443/TCP 29h
【问题讨论】:
-
你检查选择器标签是否匹配?
-
分享 kubectl get ep 的输出
-
也从 kubectl get svc
-
@JMadushan,选择器标签匹配,因此它适用于公共集群和
LoadBalaner类型的服务。 @PEkambaram,kubectl get ep的结果:名称端点年龄应用程序 10.20.0.10:3000 6h17m kubernetes 34.69.50.167:443 29h -
@PEkambaram,我根据您的要求更新了我的问题。
标签: kubernetes google-kubernetes-engine