使用 Kubespray 和 Terraform 在 vSphere 上配置 Kubernetes 集群以自动化部署过程(没有问题)。
我的目标是能够将 Pod 连接到不同的 VLAN(或端口组),这样每个应用程序都可以像我的虚拟机一样在自己的网络中运行。
我认为有两种方法:1. 创建“所有 VLAN 端口组 (0-4095)”并管理 K8S 节点操作系统内的 VLAN 2. 将多个 NIC 连接到 K8S 节点虚拟机,每个虚拟机将连接到不同的 VLAN
在谷歌搜索了数周后,我仍然找不到类似要求的解决方案。
所以我的问题是,我被困在试图弄清楚如何以这种方式构建 K8S 集群,同时我也不完全确定我是否走在正确的道路上。
在我发疯之前请帮助我!
答案1
这可以通过以下方式实现多图斯-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 添加更多接口
更多的细节。