Como configurar o Kubernetes com multiplicação de NIC/VLAN no vSphere?

Como configurar o Kubernetes com multiplicação de NIC/VLAN no vSphere?

Brincando com o provisionamento do cluster Kubernetes no vSphere usando Kubespray e Terraform para automatizar o processo de implantação (sem problemas com isso).

Meu objetivo é poder conectar pods a diferentes VLANs (ou grupos de portas), para que cada aplicativo seja executado em sua própria rede, como minhas VMs fazem.

Acho que existem 2 abordagens: 1. Criar 'Grupo de portas de todos os VLANs (0-4095)' e gerenciar VLANs dentro do sistema operacional do nó K8S 2. Anexe múltiplas NICs às VMs do nó K8S, cada uma delas será conectada a uma VLAN diferente

Depois de pesquisar no Google por semanas, ainda não consigo encontrar uma solução para requisitos semelhantes.

Portanto, meu problema é que estou tentando descobrir como construir o cluster K8S dessa maneira e, ao mesmo tempo, não tenho certeza se estou no caminho certo.

Por favor me ajude antes que eu enlouqueça!

Responder1

Isto pode ser conseguido commultus-cniplugar. Ele criaNetworkAttachmentDefinitionrecurso personalizado, onde você pode especificar a interface de rede, ou seja

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"
      }
    }'

E então, você anexa esta configuração ao pod:

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

Além disso, você pode adicionar mais interfaces a um pod criando mais recursos personalizados e, em seguida, referindo-se a eles na anotação do pod

Maisdetalhes.

informação relacionada