vSphere에서 다중 NIC/VLAN을 사용하여 Kubernetes를 구성하는 방법은 무엇입니까?

vSphere에서 다중 NIC/VLAN을 사용하여 Kubernetes를 구성하는 방법은 무엇입니까?

Kubespray 및 Terraform을 사용하여 vSphere에서 Kubernetes 클러스터를 프로비저닝하여 배포 프로세스를 자동화합니다(문제 없음).

내 목표는 포드를 다른 VLAN(또는 포트 그룹)에 연결하여 VM처럼 각 앱이 자체 네트워크에서 실행되도록 하는 것입니다.

2가지 접근 방식이 있다고 생각합니다. 1. '모든 VLAN 포트 그룹(0-4095)'을 생성하고 K8S 노드 OS 내부에서 VLAN을 관리합니다. 2. 다중 NIC를 K8S 노드 VM에 연결합니다. 각각은 서로 다른 VLAN에 연결됩니다.

몇 주 동안 인터넷 검색을 한 후에도 비슷한 요구 사항에 대한 솔루션을 찾을 수 없습니다.

그래서 내 문제는 이런 방식으로 K8S 클러스터를 구축하는 방법을 알아내려고 노력하는 동시에 내가 올바른 방향으로 가고 있는지 완전히 확신할 수 없다는 것입니다.

내가 화나기 전에 도와주세요!

답변1

이는 다음을 사용하여 달성할 수 있습니다.멀티스니(multitus-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"
      }
    }'

그런 다음 이 구성을 포드에 연결합니다.

apiVersion: v1
kind: Pod
metadata:
  name: samplepod
  annotations:
    k8s.v1.cni.cncf.io/networks: macvlan-conf

또한 더 많은 사용자 정의 리소스를 생성한 다음 포드 주석에서 이를 참조하여 포드에 더 많은 인터페이스를 추가할 수 있습니다.

세부.

관련 정보