Kubernetes CKA課程筆記 17

連到Cluster(kubeconfig & kubectl)

ZONGRU Li
Oct 12, 2021

前篇我透過kubeadm將master cluster安裝完畢

(worker*2要等很後面才講到如何加入進Cluster)

  • 接著以前課程有提到API Server是外部進入Cluster的進度點entrypoint
  • kubeadm順帶產出client(admin身分)連進Cluster用的憑證給我們了!!
  • kubeadm還有提供了kubeconfig file(其實就是用來連API Server)
  • 其他還有API Server address,client憑證,client private key

並且記得現在還有K8s command line tool : kubectl

總結上述:

  • kubectl:指令命令到Cluster
  • kubeconfig:授權進到Cluster

後面就可以介紹這一系列操作(指令):

kubectl get node

得到的訊息是搞不清楚這指令要拋給誰(host & port),不知道cluster在哪,丟不到其API Server

要能夠指定到我們要命令到的對象Cluster(其中的API Server)則要改執行:

sudo kubectl get node --kubeconfig /etc/kubernetes/admin.conf

亦即對象對象Cluster資訊在admin.conf

(而且使用該目錄(/etc/kubernetes)要root,所以加sudo)

得到正確回應資訊!!!!

透過sudo vi 指令進到admin.conf並複製內容出來另存叫admin-conf.yaml

對比一下下面

其中中間還有一段很重要上面圖已經太花了:

由上圖充分理解後,其實我們就能做到切換不同User,或要連不同Cluster去了

針對上圖裡面context部分,後面課程還會有詳解

回過頭來,如果每次跑kubectl指令都還要帶著下面這行,實在惱人

--kubeconfig /etc/kubernetes/admin.conf

還有前面sudo也是...

所以要簡化將其設為環境參數如下,先sudo -i進到root模式:

root下執行:

export KUBRCONFIG=/etc/kubernetes/admin.conf

就能不帶上面那行

至此有個問題是上面這樣export只有當下連線session有效

所以更好的解法是將這行:/etc/kubernetes/admin.conf

放到kubectl設定之中(預設路徑在$HOME/.kube/config)

離開root確認該目錄不存在,要自己建:

自行建立目錄,並複製一分admin.conf來改(如下圖中指令圖解):

上述指令如下(在$HOME的時候執行以下)

mkdir -p ~/.kubesudo cp -i /etc/kubernetes/admin.conf ~/.kube/configsudo chown $(id -u):$(id -g) ~/.kube/config

之後在執行kubectl指令就不用在帶那行了

(因為cp來的admin.conf也有cluster描述,亦即kubectl指令要拋的cluster)

並且上述的設定是persistance!!!

我重啟putty重連master再執行kubectl get node後看到:

(補充)後面課程還有看到講師用以下指令看cluster狀態:

kubectl cluster-info

參考課程(reference)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

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

No responses yet