仅当NodePort服务上的nodePort为80时,才能访问Google Compute kubernetes

时间:2018-10-18 06:41:01

标签: docker kubernetes google-cloud-platform docker-compose flannel

不知何故,我正在尝试在Google Compute(不是GKE)上启动kubernetes项目。在完成所有安装(阅读docker-ce,kubelet,kubeadm)之后,我在内部创建了一个Service和Deployment:

apiVersion : v1
kind : Service
metadata:
  name: client-node-port
spec:
  type: NodePort
  ports:
  - port: 90
    targetPort: 80
    nodePort: 31515
  selector:
    component: web

一直有效,直到我将内部服务的targetPort更改为80旁边的任何端口(以及Deployment containerPort)。

我已经尝试在实例firewall-cmd --permanent --add-port=(any port beside 80)/tcp上启用端口

此外,我已经在Google Google Firewall Setting

中启用了防火墙规则

有什么我想念的吗?为什么仅在服务中的nodePort设置为80时才能访问NodePort?

谢谢

PS:如果相关,我正在使用法兰绒网络

1 个答案:

答案 0 :(得分:0)

我可以知道您为什么尝试更改targetPort吗?

TargetPort是运行服务的POD上的端口。

Nodeport是可通过nodeip:nodeport从外部用户访问服务的端口。

Port:与Nodeport相同,但是可以由使用clusterip:port的群集用户使用。

同样,在您的情况下,端口80表示服务实际上在端口80上运行。

如果您要在其他端口上运行的Pod中设置服务,则应更改targetPort

查看this question了解更多详细信息。