有没有办法在 kubernetes 服务 YAML 定义中指定自定义NodePort端口?我需要能够在我的配置文件中明确定义端口。
问问题
19967 次
5 回答
53
您可以NodePort
在Service
Deployment 中设置类型。请注意,Node Port Range
为您的 API 服务器配置了一个选项--service-node-port-range
(默认情况下30000-32767
)。您也可以通过设置对象nodePort
下的属性来专门指定该范围内的端口Port
,否则系统将为您选择该范围内的端口。
因此Service
,指定的示例NodePort
如下所示:
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
name: nginx
spec:
type: NodePort
ports:
- port: 80
nodePort: 30080
name: http
- port: 443
nodePort: 30443
name: https
selector:
name: nginx
于 2017-05-12T18:30:29.873 回答
4
您可以在 service.yaml 文件中使用 nodeport 定义静态 NodePort
spec:
type: NodePort
ports:
- port: 3000
nodePort: 31001
name: http
于 2019-08-23T09:59:41.603 回答
1
您实际上可以运行此命令以查看如何在 yaml 中实现该功能。
kubectl create service hello-svc --tcp=80:80 --type NodePort --node-port 30080 -o yaml --dry-run > hello-svc.yaml
https://pachehra.blogspot.com/2019/11/kubernetes-imperative-commands-with.html
于 2020-07-23T06:09:48.197 回答
1
是的,您可以自己定义所有这三个端口
apiVersion: v1
kind: Service
metadata:
name: posts-srv
spec:
type: NodePort
selector:
app: posts
ports:
- name: posts
protocol: TCP
port: 4000
targetPort: 4000
nodePort: 31515
于 2021-03-08T16:32:03.983 回答
0
对于需要在不创建yaml文件的情况下使用kubectl命令的用户,可以创建一个指定端口的NodePort服务:
kubectl create nodeport NAME [--tcp=port:targetPort] [--dry-run=server|client|none]
例如:
kubectl create service nodeport myservice --node-port=31000 --tcp=3000:80
您可以查看 Kubectl 参考以获取更多信息:
于 2021-10-08T05:52:16.820 回答