1. 程式人生 > >建立資源的兩種方式

建立資源的兩種方式

命令 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.這兩種方式進行比較

基於命令的方式:

  1. 簡單直觀快捷,上手快。

  2. 適合臨時測試或實驗。

基於配置檔案的方式:

  1. 配置檔案描述了 What,即應用最終要達到的狀態。

  2. 配置檔案提供了建立資源的模板,能夠重複部署。

  3. 可以像管理程式碼一樣管理部署。

  4. 適合正式的、跨環境的、規模化部署。

  5. 這種方式要求熟悉配置檔案的語法,有一定難度。

 

kubectl apply 不但能夠建立 Kubernetes 資源,也能對資源進行更新,非常方便。不過 Kubernets 還提供了幾個類似的命令,例如 kubectl createkubectl replacekubectl 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