使用Kubectl部署應用

使用Kubectl部署應用

目錄

使用Kubectl部署應用

  • Kubectl部署流程

  • 部署一個簡單的Demo網站

使用Kubectl部署應用

一旦運行了Kubernetes集群,就可以在其上部署容器化應用程序。因此在開始之前,我們需要先確保集群已經準備就緒,無論是使用Minikube還是kubeadm創建的集群。

接下來,我們講述使用Deployment(部署)對象來部署一個簡單網站。


    Kubectl部署流程

使用Kubectl的部署流程如下所示:

使用Kubectl部署应用

接下來我們根據這個流程部署一個簡單的Demo網站。


    部署一個簡單的Demo網站

這裡,我們可以通過創建Kubernetes Deployment對象來運行應用程序。那麼我們需要編寫一個YAML文件來定義Deployment對象。

1.編寫Deployment對象的配置文件

在開始之前,我們需要對Deployment對象的配置有初步的瞭解。官方介紹文檔如下所示:

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.15/#deployment-v1-apps

根據官方標準,我們定義了一個簡單的Deployment配置:

apiVersion: apps/v1 #API對象版本,可通過“kubectl api-versions”命令查看

kind: Deployment #資源類型,區分大小寫,可通過“kubectl api-resources”命令查看,這裡使用Deployment對象

metadata: #標準的元數據

name: demo-deployment #當前Deployment對象名稱,同一個命名空間下必須唯一

spec: #部署規範(目標),Deployment控制器會根據此模板調整當前Pod到最終的期望狀態

<code> replicas: 5 # Pod數量,這裡指運行5個Pod/<code><code> selector: #選擇器,其定義了Deployment控制器如何找到要管理的Pod/<code><code> matchLabels: #匹配標籤/<code><code> app: demo #待匹配的標籤鍵值對/<code><code> template: # Pod模板定義/<code><code> metadata: #標準的元數據/<code><code> labels: #Pod標籤/<code><code> app: demo #定義Pod標籤,由鍵值對組成/<code><code> spec: #Pod規範/<code><code> containers: #容器列表,Pod中至少有一個容器/<code><code> - name: demo #容器名稱/<code><code> image: microsoft/dotnet-samples:aspnetapp #鏡像地址/<code><code> ports: #端口列表/<code><code> - containerPort: 80 #設置容器端口/<code> 

如上面定義所示,我們定義了一個簡單的部署示例,它將使用創建一個ReplicaSet對象以利用複製控制器創建5個Pod來運行“dotnet-samples”。

2.使用“kubectl create”執行資源創建

YAML文件準備好了,接下來我們來執行創建:

<code>kubectl create -f deployment-demo.yaml/<code>
使用Kubectl部署应用

結合配置,這裡有幾個重點說明一下:

  • 如上面配置所示,部署名稱為“demo-deployment”。

  • 此部署對象將創建5個複製的Pod,由replicas字段決定。如上圖所示該部署創建了5個Pod。

  • selector字段定義了Deployment控制器如何找到要管理的Pod,所以標籤的鍵值對一定不能出錯。

  • template字段則定義了Pod模板,其子字段labels定義了Pod 的標籤,spec字段則定義了容器。

執行創建部署之後,我們可以通過命令“kubectl get Deployment demo-deployment”來檢查部署對象是否已經創建,部署是否已經完成:

使用Kubectl部署应用

如上圖所示,上述字段分別代表:

  • READY代表是否已就緒,左側數字表示當前已運行的副本數,右側表示所需的副本數。

  • UP-TO-DATE表示已更新已實現預期狀態的副本數。

  • AVAILABLE則表示用戶可以使用的應用程序副本數。

  • AGE表示應用已運行的時間。

通用的,我們可以運行以下命令來查看副本集(ReplicaSet)對象:

<code>kubectl get ReplicaSets -lapp=demo/<code>
使用Kubectl部署应用

通過上圖可知,我們創建Deployment對象的過程實際上就是生成對應的副本集對象(Replica Set)並完成Pod副本的創建過程。

值得注意的是,副本集的名稱格式為[部署名稱]-[隨機字符串]。隨機字符串是隨機生成的,並使用pod-template-hash作為種子。如何查看pod-template-hash呢?使用如下命令即可:

<code>kubectl get pods -lapp=demo --show-labels/<code>
使用Kubectl部署应用

如上圖所示,5個Pod已經部署完成。

使用WebDeploy部署遠程IIS網站

使用Kubectl部署应用
使用Kubectl部署应用

如果喜歡作者的文章,請關注【麥扣聊技術】訂閱號以便第一時間獲得最新內容。本文版權歸作者和湖南心萊信息科技有限公司共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

文檔官網:docs.xin-lai.com


分享到:


相關文章: