kubectl create / replace 與kubectl apply 的區別


kubectl create / replace

以ngnix 的 nginx.yaml為例:


apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

使用 kubectl create 命令在 Kubernetes 里創建這個 Deployment 對象:

kubectl create -f nginx.yaml

當我們想要修改鏡像的時候,除了使用kubectl edit /kubectl set image ,我們還可以使用修改nginx.yaml文件。然后使用 kubectl replace 來觸發更新。

kubectl replace -f nginx.yaml

對於上面這種先 kubectl create,再 replace 的操作,我們稱為命令式配置文件操作。

kubectl apply

我們還可以通過 kubectl apply 創建deployment

kubectl apply -f nginx.yaml

如果修改鏡像,我們只需要修改nginx.yaml文件,然后執行

kubectl apply -f nginx.yaml

kubectl create / replace 與kubectl apply 的區別

  • kubectl replace 的執行過程,是使用新的 YAML 文件中的 API 對象,替換原有的 API 對象
  • kubectl apply,則是執行了一個對原有 API 對象的 PATCH 操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM