01_k8s入门----部署一个应用程序
CSDN話題挑戰賽第2期
參賽話題:云原生技術棧分享
前提:
- 完成k8s集群的安裝
目標
- 使用 kubectl 在 k8s 上部署第一個應用程序。
- kubectl 是 k8s 的客戶端工具,可以使用命令行管理集群。
kubernetes部署
在k8s 上進行部署前,首先需要了解一個基本概念 Deployment
deployment 譯名為部署。在k8s中,通過發布deployment,可以創建應用程序(docker image)的實例(docker container),這個實例會被包含在稱為pod的概念中,pod的k8s最小可管理單元。
在k8s集群中發布deploument 后,deployment 將指示k8s如何創建和更新應用程序的實例,master節點將應用程序實例調度到節點中的具體的節點上。
創建應用程序實例后,kubernetes deployment controller 會持續監控這些實例。如果運行實例的worker節點關機或被刪除,則kubernetes Deployment Contriller 將在集群中資源最優的另一個worker節點上重新創建一個新的實例。這提供了一種自我修復機制來解決機器故障或維護問題。
在容器編排之前的時代,各種安裝腳本通常用于啟動應用程序,但是不能夠使用應用程序從集群故障中恢復,通過創建應用程序實例并確保它們在集群節點中的應用實例個數,kubernetes deployment 提供一種完全不同的方式來管理應用程序。
在kubernetes上部署第一個應用程序
Deployment 處于 master 節點上,通過發布 Deployment,master 節點會選擇合適的 worker 節點創建 Container(即圖中的正方體),Container 會被包含在 Pod (即藍色圓圈)里。
實戰:部署nginx Deployment
創建YAML 文件:
創建文件 nginx-deployment.yaml,內容如下:
有注釋版:
apiVersion: apps/v1 #與k8s集群版本有關,使用 kubectl api-versions 即可查看當前集群支持的版本 kind: Deployment #該配置的類型,我們使用的是 Deployment metadata: #譯名為元數據,即 Deployment 的一些基本屬性和信息name: nginx-deployment #Deployment 的名稱labels: #標簽,可以靈活定位一個或多個資源,其中key和value均可自定義,可以定義多組,目前不需要理解app: nginx #為該Deployment設置key為app,value為nginx的標簽 spec: #這是關于該Deployment的描述,可以理解為你期待該Deployment在k8s中如何使用replicas: 1 #使用該Deployment創建一個應用程序實例selector: #標簽選擇器,與上面的標簽共同作用,目前不需要理解matchLabels: #選擇包含標簽app:nginx的資源app: nginxtemplate: #這是選擇或創建的Pod的模板metadata: #Pod的元數據labels: #Pod的標簽,上面的selector即選擇包含標簽app:nginx的Podapp: nginxspec: #期望Pod實現的功能(即在pod中部署)containers: #生成container,與docker中的container是同一種- name: nginx #container的名稱image: nginx:1.7.9 #使用鏡像nginx:1.7.9創建container,該container默認80端口可訪問無注釋版:
apiVersion: apps/v1 kind: Deployment metadata:name: nginx-deploymentlabels:app: nginx spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.7.9應用yaml文件
kubectl apply -f nginx-deployment.yaml查看部署結果
# 查看 Deployment kubectl get deployments# 查看 Pod kubectl get pods可分別查看到一個名為 nginx-deployment 的 Deployment 和一個名為 nginx-deployment-xxxxxxx 的 Pod
總結
以上是生活随笔為你收集整理的01_k8s入门----部署一个应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 社会力模型SFM详解 在人群异常检测上
- 下一篇: 天涯可爱小宝宝