1. 程式人生 > 實用技巧 >二、pod部署方式

二、pod部署方式

使用kubectl命令部署應用

kubectl create deployment 名稱 --image=映象名稱或路徑   可以通過kubectl create --help檢視支援的資源,一般網站、api、微服務都是用deployment部署   後面加上 --dry-run=client可以測試命令是否正確,不會真正建立(clent可能需要改為false)   在 --dry-run=client基礎上,後面再加上-o yaml>匯出檔名,可以匯出ymal檔案(匯出的檔案中有一個時間戳null的一行和status,把這兩行刪掉即可) 如果有問題可以執行排查:kubectl describe pod {pod名稱} 使用yaml檔案部署
#
可通過kubectl api--version檢視,一般1.16以後都是使用apps/v1版本 apiVersion: apps/v1 kind: Deployment # 名稱空間可通過kubectl get namespace檢視 metadata: name: web-deployment namespace: default spec: # 副本數,一個副本代表啟一個例項,如果一個pod掛了,那麼會在其他副本再啟一個 replicas: 3 selector: matchLabels: # 標籤選擇器,一般寫兩個,上面專案名,下面應用名,控制器通過這個標籤關聯下面的pod
project: java-projerct app: java-demo # 以下是Pod模板 template: metadata: labels: # 與標籤選擇器中的名稱一致 project: java-projerct app: java-demo spec: containers: - name: web image: lizhenliang/java-demo # 映象拉取策略 imagePullPolicy: IfNotPresent ports:
- containerPort: 80 # 如果要啟動第二個容器,下面繼續寫 - name: web2 image: nginx # 如果是私有映象倉庫,必須要登陸,這個為了指定登陸私有映象倉庫的憑據 imagePullSecrets: -name: myregistrykey
建立完之後執行:kubectl apply -f {yaml檔名} 生成yaml模板可以通過官網或者執行:   kubectl create deployment web --image=lizhenliang/java-demo --dry-run -o yaml > web.yaml   --dry-run 表示只是測試,並不真正執行   -o yaml 表示顯示語句的yaml檔案內容   注意通過改方式生成的yaml模板要刪除裡面的creationTimestamop:null kubectl命令列和yaml部署區別 1、kubectl適合快速能完成部署任務 2、yaml適合複雜任務 3、yaml方便複用 匯出yaml檔案 通過kubectl get deployment檢視建立了哪些deployment 然後執行kubectl get deployment 應用名 -o yaml

小技巧 欄位縮寫:   比如deployment,通過kubectl api-resources| more檢視,左邊的長格式,右邊是縮寫格式 pod容器欄位忘記拼寫,可以通過kubectl explain pods.spec.containers 命令補全:   安裝yum install bash-completion   執行source <(kubectl completion bash)   source /usr/share/bash-completion/bash_completion   然後按tab可以自動補全