本集重點就是傳說中的Cluster
Cluster稱為叢集
在GKE中,每個project可以最多有50個Clusters(per zone)[1]
如第一集所說
一個Cluster可以有多個Node Pools(instance groups)
一個Node Pools可以有多個Nodes(instances)
一個Node上面可以跑多個Pods(扯遠了)
Pod是kubernetes中運行的最小單位
Cluster Type
在Google文件中 Cluster分很多種
single-zone cluster, multi-zone cluster, regional cluster[1]
其實沒有這麼複雜
這就只是cluster的腳(vm)插在哪裡罷了
cluster的腳(vm)在同一個zone就叫single-zone cluster
若腳(vm)在指定的兩個zone就叫multi-zone cluster
以此類推
Public Cluster vs Private Cluster
這兩個的差異,其實也不大
就是差在cluster裡面的Node有沒有對外ip而已
其他的使用方式都一樣
那衍伸的問題是,Node如果沒有對外ip:
- Node怎麼抓外面的東西?
就跟設定private VPC一樣,給他一個Cloud NAT就可以啦!
- Node可以對外嗎?(讓外面的服務摸到嗎?)
可以啊,將裡面的service宣告type=Load Balancer/NodePort,或是使用Ingress就好啦!
所以其實阿 Public vs private cluster是差不多的呀!
從命名上面,這倒是一個誤區
會讓人誤以為private cluster是不能對外的❌❌❌
這觀念是不對的喔!
private cluster是可以對外的✅
private cluster是可以對外的✅
private cluster是可以對外的✅
VPC native vs Route-based
這兩個指的是cluster的網路架構,我覺得是Cluster裡面比較複雜的
也還沒有理解的很透徹
但簡單來說[2]
VPC-native 是利用alias ip range來找到cluster裡面的Pod
而Route-based 是利用Cloud Routes來找到cluster裡面的Pod
VPC native
記得我們在第一集裡面說到的 service address range
, pod service range
這個設定的range就是alias ip range
kubernetes會用這個ip range找到對應的Pod
ps. 在同一個cluster中的pod是互相認識彼此的!
用VPC native有很多好處[2],不過設完後是不能再改回route-based的
因為兩個架構的網路架構是完全不一樣
[1] https://cloud.google.com/kubernetes-engine/docs/concepts/types-of-clusters
[2] https://cloud.google.com/kubernetes-engine/docs/how-to/alias-ips
以上
咱們下集待續!
一樣,有問題歡迎一起討論 :)