Kubernetes CKA課程筆記 32

進階kubectl指令簡化與快速取得元件基本yaml檔

ZONGRU Li
Oct 24, 2021

前面課程已經大量的使用kubectl指令

可以嘗試利用alias功能將其簡化,執行:

alias {簡化後的指令}={簡化前的指令}

這邊我將kubectl指令簡化為”kc”

而這項設定若要永久生效,可以定義在/root/.bashrc檔案內

這邊就先不做這部分

加速建立K8s Manifest Files:

  • 前面有介紹使用kubectl imperative(緊急的)指令建k8s元件,適合臨時測試
  • Declarative(宣告式)透過Configuration Files,是真的要建立持久元件使用
  • 並且Declarative(宣告式)還能將Configuration Files做版控,而有歷史紀錄
  • Configuration Files比較適合團隊協作使用

前面常常有需要建立簡單的K8s元件

還要特地跑到官網去參考基本的原件的Configuration Files yaml當參考

其實還有更聰明的方法是讓kubectl產給我用

例如前一篇使用到的建立Service指令如下:

kubectl create service clusterip test-new-cidr --tcp=80:80

在該指令後面再加上幾個option:

--dry-run=client意思是不真的建立元件,而提供一個建立元件的預覽

-o yaml意思是輸出yaml格式

> {名稱}.yaml意思是輸出為指定名稱的文字檔

基本service yaml檔的產生指令範例就變為:

kubectl create service clusterip test-new-cidr --tcp=80:80 --dry-run=client -o yaml > my-svc.yaml

得到以下文字檔(yaml內容格式):

同理也可以用在deployment上

先找到deployment的imperative建立指令:

太長,接續下圖

基本deployment yaml檔的產生指令範例:

kubectl create deployment {my-deployment名稱} --image=nginx:1.20 --port=80 --replicas=3 --dry-run=client -o yaml > my-deployment.yaml

得到:

拿到基本的deployment的Configuration file內容:

另外Pod也可以,但是是在kubectl run指令下

基本Pod的yaml檔產生指令範例為:

kubectl run {Pod Name} --image=nginx:1.20 --labels="app=hazelcast,env=prod" --dry-run=client -o yaml > my-pod.yaml

內容如下:

參考課程(reference)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet