Kubernetes集群網(wǎng)絡(luò)規(guī)劃
在創(chuàng)建ACS集群時,您需要指定專有網(wǎng)絡(luò)VPC、虛擬交換機和Service CIDR(地址段)。建議您提前規(guī)劃Kubernetes Pod地址和Service地址。本文將介紹阿里云專有網(wǎng)絡(luò)VPC環(huán)境下ACS集群里各種地址的作用,以及如何規(guī)劃地址段。
專有網(wǎng)絡(luò)VPC網(wǎng)段和Kubernetes網(wǎng)段關(guān)系
專有網(wǎng)絡(luò)VPC(下文簡稱為VPC或?qū)S芯W(wǎng)絡(luò))的網(wǎng)段規(guī)劃包含VPC自身網(wǎng)段和虛擬交換機網(wǎng)段,Kubernetes網(wǎng)段規(guī)劃包含Pod地址段和Service地址段。
配置ACS模式網(wǎng)絡(luò)時,需要設(shè)置的參數(shù)及參數(shù)網(wǎng)段配置的注意事項如下:
專有網(wǎng)絡(luò)
您在創(chuàng)建VPC時需要選擇網(wǎng)段,只能從10.0.0.0/8、172.16.0.0/12、192.168.0.0/16三者中選擇一個。
虛擬交換機
Pod地址從該交換機分配,用于Pod網(wǎng)絡(luò)通信。Pod是Kubernetes內(nèi)的概念,每個Pod具有一個IP地址。在VPC創(chuàng)建交換機時指定的網(wǎng)段必須是當前VPC網(wǎng)段的子集。配置網(wǎng)段時,請注意:
Pod虛擬交換機是VPC交換機。
ACS網(wǎng)絡(luò)模式下,Pod分配的Pod IP就是從這個交換機網(wǎng)段內(nèi)獲取的。
該地址段不能和Service CIDR網(wǎng)段重疊。
Service CIDR
Service地址段。Service是Kubernetes內(nèi)的概念,對應(yīng)的是Service類型為ClusterIP時Service使用的地址,每個Service有自己的地址。配置網(wǎng)段時,請注意:
Service地址只在Kubernetes集群內(nèi)使用,不能在集群外使用。
Service地址段不能和虛擬交換機地址段重疊。
網(wǎng)絡(luò)規(guī)劃
在阿里云環(huán)境下使用ACS支持的Kubernetes集群,首先需要根據(jù)業(yè)務(wù)場景、集群規(guī)模進行網(wǎng)絡(luò)規(guī)劃。您可以按照下表規(guī)格進行規(guī)劃(未包含場景,請根據(jù)實際需要自行調(diào)整)。
VPC網(wǎng)絡(luò)規(guī)劃
集群Pod規(guī)模 | 目的 | VPC規(guī)劃 | 可用區(qū) |
小于1000個Pod | 一般性業(yè)務(wù) | 單VPC | 1個 |
任意 | 需要多可用區(qū) | 單VPC | 2個及以上 |
任意 | 對可靠性有較高要求、需要多地域 | 多VPC | 2個及以上 |
容器網(wǎng)絡(luò)規(guī)劃
本文針對ACS網(wǎng)絡(luò)場景,規(guī)劃容器網(wǎng)絡(luò)的多可用區(qū)配置示例如下:
專有網(wǎng)絡(luò)網(wǎng)段 | 虛擬交換機網(wǎng)段 | Service CIDR網(wǎng)段 | 最大可分配Pod地址數(shù) |
192.168.0.0/16 | 可用區(qū)I 192.168.0.0/19 | 172.21.0.0/20 | 8192 |
可用區(qū)J 192.168.32.0/19 | 8192 |
如何選擇地址段?
單VPC+單Kubernetes集群
這是最簡單的情形。VPC地址在創(chuàng)建VPC的時候就已經(jīng)確定,創(chuàng)建Kubernetes集群時,Service地址網(wǎng)段和當前VPC不一樣的地址段即可。
單VPC+多Kubernetes集群
一個VPC下創(chuàng)建多個Kubernetes集群。
VPC地址在創(chuàng)建VPC時已經(jīng)確定。創(chuàng)建Kubernetes集群時,每個集群內(nèi)的VPC地址段、Service地址段彼此之間不能重疊。
所有Kubernetes集群之間的Service地址段可以重疊,Pod的虛擬交換機可以復(fù)用。
說明這種情況下,Kubernetes集群之間可以互通,一個集群的Pod可以直接訪問另外一個集群的Pod和ECS,但不能訪問另外一個集群的Service。
VPC互聯(lián)
兩個VPC網(wǎng)絡(luò)互聯(lián)的情況下,可以通過路由表配置哪些報文要發(fā)送到對端VPC里。如下表所示,VPC 1使用地址段192.168.0.0/16,VPC 2使用地址段172.16.0.0/12,您可以通過路由表,指定在VPC 1里把目的地址為172.16.0.0/12的報文都發(fā)送到VPC 2。
表 3. VPC互聯(lián)場景
類別
地址段
目的端
轉(zhuǎn)發(fā)到
VPC 1
192.168.0.0/16
172.16.0.0/12
VPC 2
VPC 2
172.16.0.0/12
192.168.0.0/16
VPC 1
在這種情況下,VPC 1和VPC 2里創(chuàng)建的Kubernetes集群有以下限制:
不能和VPC 1的地址段重疊
不能和VPC 2的地址段重疊
不能和其他集群的地址段重疊
不能和Service的地址段重疊
此例子中,Kubernetes集群Serivce地址段可以選擇10.0.0.0/8下的某個子段。
說明您需特別關(guān)注轉(zhuǎn)發(fā)到VPC 2的地址段,可以把這部分地址理解成已經(jīng)占用的地址,Kubernetes集群不能和已經(jīng)占用的地址重疊。
VPC網(wǎng)絡(luò)到IDC
和VPC互聯(lián)場景類似,同樣存在VPC里部分地址段路由到IDC,Kubernetes集群的Service地址就不能和這部分地址重疊。IDC里如果需要訪問Kubernetes里的Pod地址,同樣需要在IDC端配置到專線VBR的路由表。