不知何故,我正在尝试在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:如果相关,我正在使用法兰绒网络
答案 0 :(得分:0)
我可以知道您为什么尝试更改targetPort
吗?
TargetPort
是运行服务的POD上的端口。
Nodeport
是可通过nodeip:nodeport从外部用户访问服务的端口。
Port
:与Nodeport相同,但是可以由使用clusterip:port的群集用户使用。
同样,在您的情况下,端口80表示服务实际上在端口80上运行。
如果您要在其他端口上运行的Pod中设置服务,则应更改targetPort
。
查看this question了解更多详细信息。