二、pod部署方式
阿新 • • 發佈:2020-10-22
使用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 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可以自動補全可通過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: # 標籤選擇器,一般寫兩個,上面專案名,下面應用名,控制器通過這個標籤關聯下面的podproject: 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