[英]how to change port of a kubernetes container using kubectl patch?
我想更改在Kubernetes集群上運行的容器的端口。 手動,我知道可以在基礎YAML文件本身中進行更改。但是我想使用“ kubectl patch”之類的命令來更改端口。
Nginx.yaml
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
有人可以使用我的nginx.yaml作為更改容器屬性(例如containerport,targetport,nodeport,port)的示例,向我展示“ kubectl patch”命令的示例。 我也想知道在什么基礎上應用kubectl補丁。我的意思是它如何知道要對哪個容器進行補丁以及以什么標准(例如containerid,name等)知道,因為稍后我將創建一個html按鈕來基於以下內容進行kubectl補丁一些條件,例如containerid或名稱。請提供幫助。
例如,您要在使用中將目標端口更新為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 .....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.