Kubernetes CKA課程筆記 22

Configure Network Plugin — WeaveNet(Pod IP範圍設定)

ZONGRU Li
Oct 17, 2021

首先繼續重申重要觀念:

PodIP位置範圍不能與NodeIP位置可存在的範圍重疊(詳前篇)

以課程為例,所定義的NodeIP源自VPC

(也就是不能與VPC提供的IP位置範圍重疊)

所以來到VPC頁面確認NodeIP可存在的範圍如下

接著要去準備要安裝的Pod NetworkPlugin的預設提供給Pod的IP範圍

來到weaveworksWeaveNet doc查看:

link

如上預設是10.32.0.0/12,實際IP範圍在10.32.0.0 ~ 10.47.255.255

與VPC能給的IP範圍(172.31.0.0 ~ 172.31.255.255)兩者沒有重疊!! → OK!

所以可以直接使用WeaveNet預設提供給Pod的IP範圍

接著回到Kubernetes 官網查找文件:

https://kubernetes.io/docs/home/

點進去馬上會看到安裝方式:

link

啟動master機,我們先嘗試將上述網址列的文件下載下來,執行:

wget "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" -O weave.yaml

上述後面的-O指輸出

看看裡面內容,執行:

cat weave.yaml

會看到多個K8s元件建立(有點長,挑重點畫出):

前面提到

WeaveNet預設提供的IP範圍部會跟VPC(給NODE的IP可能範圍)重複

那如果真不小心有重複的話,需要調整如下:

link

怎麼改呢?

先vi進去剛剛的yaml修改:

vi weave.yaml

調整上述啟動指令,增加option

儲存候用kubectl指令apply:

kubectl apply -f weave.yaml

此時理論上就應該有驚人事情發生了:

Node變成Ready了!!!
coreDNS在運作了!!

確認Pod的IP位置:

首先嘗試確認上述coreDNS Pod的IP位置,使用指令:

kubectl describe pod {上面的pod name} -n kube-system

會看到許多資訊類似如下:

往上滑會看到:

不過上面的方式很難看到全部Pods的IP,所以換一招執行:

kubectl get pod -n kube-system -o wide

可以發現上面只有coreDNS的Pod長在我們要求的範圍

其他還是172開頭(因為這些172開頭的都不是Regular Pod!!

(所以不用遵守K8s定的3條規則(詳前一篇)))

基本上就是master的IP:

或直接用K8s指令看:

kubectl get node -o wide

所以到目前為止,我們的Cluster安裝建立狀態如下:

kube-proxy是kubeadm init最後出來的static pod

參考課程(reference)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

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

No responses yet