加速建立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
內容如下: