使用 Kubespray 和 Terraform 在 vSphere 上配置 Kubernetes 叢集來自動化部署流程(沒有問題)。
我的目標是能夠將 Pod 連接到不同的 VLAN(或連接埠群組),這樣每個應用程式都會像我的虛擬機器一樣在自己的網路中運行。
我認為有兩種方法: 1. 建立「所有VLAN 連接埠群組(0-4095)」並管理K8S 節點作業系統內的VLAN 2. 將多個NIC 連接到K8S 節點虛擬機,每個網路卡將連接到不同的VLAN
經過幾週的谷歌搜尋後,我仍然找不到類似要求的解決方案。
所以我的問題是,我一直在試圖弄清楚如何以這種方式建立 K8S 集群,同時我並不完全確定我的方式是否正確。
請在我發瘋之前幫助我!
答案1
這可以透過以下方式實現multus-cni插入。它創建NetworkAttachmentDefinition
自訂資源,您可以在其中指定網路介面,即
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: macvlan-conf
spec:
config: '{
"cniVersion": "0.3.0",
"type": "macvlan",
"master": "eth0",
"mode": "bridge",
"ipam": {
"type": "host-local",
"subnet": "192.168.1.0/24",
"rangeStart": "192.168.1.200",
"rangeEnd": "192.168.1.216",
"routes": [
{ "dst": "0.0.0.0/0" }
],
"gateway": "192.168.1.1"
}
}'
然後,將此配置附加到 pod:
apiVersion: v1
kind: Pod
metadata:
name: samplepod
annotations:
k8s.v1.cni.cncf.io/networks: macvlan-conf
此外,您可以透過建立更多自訂資源然後在 pod 的註解中引用它們來向 pod 新增更多介面
更多的細節。