建立資源的兩種方式
阿新 • • 發佈:2018-11-03
命令 vs 配置檔案
Kubernetes 支援兩種方式建立資源:
1. 用 kubectl 命令直接建立
kubectl run nginx-deployment --image=nginx:1.7.9 --replicas=2
在命令列中通過引數指定資源的屬性。
2. 通過配置檔案和 kubectl apply
建立
要完成前面同樣的工作,可執行命令:
[[email protected] k8s]# kubectl apply -f nginx.yaml
deployment.extensions/nginx-deployment configured
3.nginx.yml 的內容說明
apiVersion: extensions/v1beta1 #api的版本 kind: Deployment #資源的型別 metadata: #資源的元資料 name: nginx-deployment #資源的名稱 spec: #資源的說明 replicas: 2 #副本2個,預設為1 template: #pod模板 metadata: #pod元資料 labels: #標籤 app: web_server #標籤選擇器 spec: containers:- name: nginx image: nginx:1.79
資源的屬性寫在配置檔案中,檔案格式為 YAML。
這種配置檔案對格式的要求極為嚴格,縮排不能錯,空格不能少打,vim編輯器的高亮提示會對我們寫配置檔案有幫助,如果語法錯誤會檢測到。
4.這兩種方式進行比較
基於命令的方式:
-
簡單直觀快捷,上手快。
-
適合臨時測試或實驗。
基於配置檔案的方式:
-
配置檔案描述了
What
,即應用最終要達到的狀態。 -
配置檔案提供了建立資源的模板,能夠重複部署。
-
可以像管理程式碼一樣管理部署。
-
適合正式的、跨環境的、規模化部署。
-
這種方式要求熟悉配置檔案的語法,有一定難度。
kubectl apply
不但能夠建立 Kubernetes 資源,也能對資源進行更新,非常方便。不過 Kubernets 還提供了幾個類似的命令,例如 kubectl create
、kubectl replace
、kubectl edit
和 kubectl patch
。
為避免造成不必要的困擾,我們會盡量只使用 kubectl apply
,
此命令已經能夠應對超過 90% 的場景,事半功倍。
5.資源的刪除
配置檔案建立的資源 也可以用之前的方式刪除
[[email protected] k8s]# kubectl apply -f nginx.yaml deployment.extensions/nginx-deployment created
指定配置刪除
[[email protected] k8s]# kubectl delete -f nginx.yaml deployment.extensions "nginx-deployment" deleted