Kubernetes 为什么舵机忽略节点端口部分?
我正在尝试在特定端口安装带有节点端口的舵图。例如:Kubernetes 为什么舵机忽略节点端口部分?,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我正在尝试在特定端口安装带有节点端口的舵图。例如:30005,但舵手忽略节点端口部分 ==> v1/Service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-app NodePort 10.109.69.245 <none> 8080:32146/TCP 0s Myvalues.yaml“服务”部分 我的预期结果: ==> v1/Service
30005
,但舵手忽略节点端口部分
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-app NodePort 10.109.69.245 <none> 8080:32146/TCP 0s
Myvalues.yaml
“服务”部分
我的预期结果:
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-app NodePort 10.109.69.245 <none> 8080:30005/TCP 0s
==>v1/服务
名称类型CLUSTER-IP外部IP端口年龄
你好,应用程序节点端口10.109.69.245 8080:30005/TCP 0s
显然,您的服务的helm模板中有一个输入错误,或者忽略了变量名区分大小写的事实。请再核对一下
再看一看官方参考图表示例,其中helm模板允许最终用户也可以配置type
和nodePort
,这与helm覆盖的参数(--set)完美配合
在发布安装之前,您可以使用以下命令验证helm呈现的清单文件:
helm template --set service.type=NodePort --set service.nodePort=31000 --debug docs/examples/nginx/
最后一件事:请确保nodePort指定的节点尚未使用
您可以使用
--server-dry-run
选项和kubectl
,例如
kubectl apply-f service-31000-nodeport-conflict.yaml——服务器试运行
如果它已经被占用,您将看到与此类似的错误,从API服务器返回:
The Service "release-name-nginx-conflict" is invalid: spec.ports[0].nodePort: Invalid value: 31000: provided port is already allocated
你能分享你的服务定义吗?很抱歉,我忘了在我的/template/Service.yaml中添加以下端口:-端口:{{.Values.Service.port}}节点端口:{.Values.Service.nodePort}}协议:TCP目标端口:8080
helm template --set service.type=NodePort --set service.nodePort=31000 --debug docs/examples/nginx/
The Service "release-name-nginx-conflict" is invalid: spec.ports[0].nodePort: Invalid value: 31000: provided port is already allocated