簡體   English   中英

如何使用kubectl補丁更改kubernetes容器的端口?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM