W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
?kubectl
?命令行工具支持多種不同的方式來創(chuàng)建和管理 Kubernetes 對象。 本文檔概述了不同的方法。 閱讀 Kubectl book 來了解 kubectl 管理對象的詳細信息。
應該只使用一種技術來管理 Kubernetes 對象?;旌虾推ヅ浼夹g作用在同一對象上將導致未定義行為。
管理技術 | 作用于 | 建議的環(huán)境 | 支持的寫者 | 學習難度 |
---|---|---|---|---|
指令式命令 | 活躍對象 | 開發(fā)項目 | 1+ | 最低 |
指令式對象配置 | 單個文件 | 生產項目 | 1 | 中等 |
聲明式對象配置 | 文件目錄 | 生產項目 | 1+ | 最高 |
使用指令式命令時,用戶可以在集群中的活動對象上進行操作。用戶將操作傳給 ?kubectl
?命令作為參數或標志。
這是開始或者在集群中運行一次性任務的推薦方法。因為這個技術直接在活躍對象 上操作,所以它不提供以前配置的歷史記錄。
通過創(chuàng)建 Deployment 對象來運行 nginx 容器的實例:
kubectl create deployment nginx --image nginx
與對象配置相比的優(yōu)點:
與對象配置相比的缺點:
在指令式對象配置中,kubectl 命令指定操作(創(chuàng)建,替換等),可選標志和 至少一個文件名。指定的文件必須包含 YAML 或 JSON 格式的對象的完整定義。
有關對象定義的詳細信息,請查看 API 參考。
Warning:
?
replace
?指令式命令將現有規(guī)范替換為新提供的規(guī)范,并放棄對配置文件中 缺少的對象的所有更改。此方法不應與對象規(guī)約被獨立于配置文件進行更新的 資源類型一起使用。比如類型為 ?LoadBalancer
?的服務,它的 ?externalIPs
?字段就是獨立于集群配置進行更新。
創(chuàng)建配置文件中定義的對象:
kubectl create -f nginx.yaml
刪除兩個配置文件中定義的對象:
kubectl delete -f nginx.yaml -f redis.yaml
通過覆蓋活動配置來更新配置文件中定義的對象:
kubectl replace -f nginx.yaml
與指令式命令相比的優(yōu)點:
與指令式命令相比的缺點:
與聲明式對象配置相比的優(yōu)點:
與聲明式對象配置相比的缺點:
使用聲明式對象配置時,用戶對本地存儲的對象配置文件進行操作,但是用戶 未定義要對該文件執(zhí)行的操作。 ?kubectl
?會自動檢測每個文件的創(chuàng)建、更新和刪除操作。 這使得配置可以在目錄上工作,根據目錄中配置文件對不同的對象執(zhí)行不同的操作。
聲明式對象配置保留其他編寫者所做的修改,即使這些更改并未合并到對象配置文件中。 可以通過使用 ?
patch
?API 操作僅寫入觀察到的差異,而不是使用 ?replace
?API 操作來替換整個對象配置來實現。
處理 ?configs
?目錄中的所有對象配置文件,創(chuàng)建并更新活躍對象。 可以首先使用 ?diff
?子命令查看將要進行的更改,然后在進行應用:
kubectl diff -f configs/
kubectl apply -f configs/
遞歸處理目錄:
kubectl diff -R -f configs/
kubectl apply -R -f configs/
與指令式對象配置相比的優(yōu)點:
與指令式對象配置相比的缺點:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: