kubernetes - 为什么 helm 忽略节点端口部分?
问题描述
我正在尝试在特定端口上安装带有 nodeport 的掌舵图。例如:30005
,但 helm 忽略 nodeport 部分。
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-app NodePort 10.109.69.245 <none> 8080:32146/TCP 0s
我尝试设置特定端口:
helm install --set service.type=NodePort,service.nodePort=30005 --name hello-app /home/ubuntu/hello-app
我的values.yaml
“服务”部分。
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
service:
type: NodePort
port: 8080
nodePort: 30005
我的预期结果:
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-app NodePort 10.109.69.245 <none> 8080:30005/TCP 0s
解决方案
显然,您在服务的 helm 模板中的某个地方有错字,或者忽略了变量名称区分大小写的事实。请仔细检查。
还可以查看官方参考nginx图表示例,其中服务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 --server-dry-run
如果它已经被占用,您会看到与此类似的错误,从 API 服务器返回:
The Service "release-name-nginx-conflict" is invalid: spec.ports[0].nodePort: Invalid value: 31000: provided port is already allocated
推荐阅读
- php - 获取 3 个给定点 php 的轴距离
- typescript - 我可以在 TypesScript 中使用泛型类型作为对象索引类型吗?
- android - 在片段中使用“this”会给我一个错误
- javascript - Discord js 添加了角色执行者
- clang - 为什么 clang 不使用预编译的头文件?
- python - 将 dict 读入 self
- c# - WinUI3下如何给Webview2添加环境参数?
- pulumi - 如何为环境变量添加条目到 Pulumi 输出?
- java - 使用 java 11 编译 groovy 代码时出错
- javascript - 如何以两种方式绑定 bwtween SVG 和 inut 元素