Docker 如何使用kubectl修补程序更改kubernetes容器的端口?
我想更改在kubernetes clusture上运行的容器的端口。我知道这可以在底层YAML文件中手动更改,但我想使用“kubectl patch”之类的命令来更改端口 Nginx.yamlDocker 如何使用kubectl修补程序更改kubernetes容器的端口?,docker,kubernetes,Docker,Kubernetes,我想更改在kubernetes clusture上运行的容器的端口。我知道这可以在底层YAML文件中手动更改,但我想使用“kubectl patch”之类的命令来更改端口 Nginx.yaml apiVersion: v1 kind: Service metadata: name: nginx labels: app: nginx spec: type: NodePort ports: - name: nginxport port: 80
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
type: NodePort
ports:
- name: nginxport
port: 80
targetPort: 80
nodePort: 30000
selector:
app: nginx
tier: frontend
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: nginx
tier: frontend
spec:
containers:
- image: suji165475/devops-sample:#{Build.BuildId}#
name: nginx
ports:
- containerPort: 80
name: nginxport
有谁能给我举一个“kubectl patch”命令的例子,使用my nginx.yaml作为更改容器属性(如containerport、targetport、nodeport、port)的例子。我还想知道kubectl修补程序是基于什么基础应用的。我的意思是,它如何知道要修补的容器以及容器ID、名称等标准,因为稍后我将创建一个html按钮,以便根据容器ID或名称等标准进行kubectl修补程序。请帮忙。说,您希望在服务中将目标端口更新为8080。按照以下步骤操作
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
type: NodePort
ports:
- name: nginxport
port: 80
targetPort: 80
nodePort: 30000
selector:
app: nginx
tier: frontend
使用以下命令修补nginx服务
# kubectl patch svc nginx --patch \
> '{"spec": { "type": "NodePort", "ports": [ { "nodePort": 30000, "port": 80, "protocol": "TCP", "targetPort": 8080 } ] } }'
service/nginx patched
to update nodeport and targetport use the below command
kubectl patch svc nginx --patch \
'{"spec": { "type": "NodePort", "ports": [ { "nodePort": 32000, "port": 80, "protocol": "TCP", "targetPort": 8080 } ] } }'
验证targetPort是否已更新为8080
master $ kubectl get svc nginx -oyamlapiVersion: v1
kind: Service
metadata:
creationTimestamp: "2019-08-29T11:08:45Z"
labels:
app: nginx
name: nginx
namespace: default
resourceVersion: "5837"
selfLink: /api/v1/namespaces/default/services/nginx
uid: 5e7f6165-ca4d-11e9-be03-0242ac110042
spec:
clusterIP: 10.105.220.186
externalTrafficPolicy: Cluster
ports:
- name: nginxport
nodePort: 30000
port: 80
protocol: TCP
targetPort: 8080
selector:
app: nginx
tier: frontend
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
使用类似的方法进行部署
kubectl patch deploy nginx --patch .....
比如说,您希望在服务中将目标端口更新为8080。按照以下步骤操作
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
type: NodePort
ports:
- name: nginxport
port: 80
targetPort: 80
nodePort: 30000
selector:
app: nginx
tier: frontend
使用以下命令修补nginx服务
# kubectl patch svc nginx --patch \
> '{"spec": { "type": "NodePort", "ports": [ { "nodePort": 30000, "port": 80, "protocol": "TCP", "targetPort": 8080 } ] } }'
service/nginx patched
to update nodeport and targetport use the below command
kubectl patch svc nginx --patch \
'{"spec": { "type": "NodePort", "ports": [ { "nodePort": 32000, "port": 80, "protocol": "TCP", "targetPort": 8080 } ] } }'
验证targetPort是否已更新为8080
master $ kubectl get svc nginx -oyamlapiVersion: v1
kind: Service
metadata:
creationTimestamp: "2019-08-29T11:08:45Z"
labels:
app: nginx
name: nginx
namespace: default
resourceVersion: "5837"
selfLink: /api/v1/namespaces/default/services/nginx
uid: 5e7f6165-ca4d-11e9-be03-0242ac110042
spec:
clusterIP: 10.105.220.186
externalTrafficPolicy: Cluster
ports:
- name: nginxport
nodePort: 30000
port: 80
protocol: TCP
targetPort: 8080
selector:
app: nginx
tier: frontend
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
使用类似的方法进行部署
kubectl patch deploy nginx --patch .....
我可以用一个命令同时修补部署和服务吗?如果我想把nodeport改成32000,我应该如何修改命令?我实际上是在尝试使用html和node.js创建一个容器管理面板,用户可以使用文本框和按钮更改面板中的端口。我需要修补部署分别针对容器端口?我可以使用单个命令修补部署和服务吗?如果想将nodeport更改为32000,我应该如何修改该命令?我实际上正在尝试使用html和node.js创建一个容器管理面板,用户可以使用文本框和按钮更改面板本身的端口为集装箱港口单独修补部署?我投票将此问题移至我投票将此问题移至