Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ve výchozím nastavení má uzel AKS Edge Essentials Linux přiřazenou jednu síťovou kartu (NIC). Během nasazování uzlu ale můžete nakonfigurovat linuxový uzel s více síťovými rozhraními. Tato funkce může být užitečná v mnoha scénářích, kdy můžete mít rozdělení sítě nebo oddělení do různých sítí nebo zón. Pokud chcete připojit uzel AKS Edge Essentials Linuxu k různým sítím, musíte k uzlu Linux připojit různé síťové karty.
Tento článek popisuje, jak nakonfigurovat uzel AKS Edge Essentials Linux tak, aby podporoval více síťových karet a připojil se k více sítím. Následující kroky shrnují tento proces:
- Vytvořte nasazení AKS Edge Essentials pomocí sekundární síťové karty.
- Ověřte několik nastavení konfigurace sítě síťových adaptérů.
- Konfigurace modulu plug-in Multus CNI
- Nakonfigurujte sekundární síť Multus s ukázkovým podem.
- Ověřte připojené sítě podů.
Další informace o konceptech sítí a konfiguracích Multus najdete v tématu Sítě AKS Edge Essentials a Multus – Příručka pro rychlý start.
Poznámka:
Podpora AKS Edge Essentials pro více síťových adaptérů je omezená na uzly Linuxu. Pokud potřebujete podporu pro uzly Windows, můžete podat žádost o problém nebo funkci v úložišti AKS Edge Essentials Na GitHubu.
Vytvoření nasazení AKS Edge Essentials pomocí sekundární síťové karty
Pokud chcete nasadit linuxový uzel s více síťovými kartami, musíte do souboru JSON nasazení přidat sekundární karty rozhraní. Upravte soubor JSON nasazení a v rámci LinuxNode.SecondaryNetworks
této části zajistěte, abyste zadali sekundární síť, která se má přidat do uzlu Linuxu. Můžete zadat pole VMSwitchName
s volitelnými informacemi o statické IP adrese (Ip4GatewayAddress
Ip4Address
aIp4PrefixLength
):
Postupujte podle kroků v části Nastavení počítače.
Vytvořte virtuální přepínač Hyper-V. Další informace najdete v tématu Vytvoření a konfigurace virtuálního přepínače pomocí technologie Hyper-V.
Upravte soubor JSON nasazení. Do oddílu
LinuxNode.SecondaryNetworks
přidejte následující parametry:Parametr Přípustné hodnoty Komentáře VMSwitchName
Název virtuálního přepínače. Název virtuálního přepínače přiřazeného k uzlu Linuxu. Ip4Address
Adresa IPv4 v rozsahu oboru serveru DCHP. Statická ipv4 adresa uzlu Linuxu. Ip4GatewayAddress
Adresa IPv4 brány podsítě Adresa Ipv4 brány, platná pouze v případě, že je zadaná statická adresa Ipv4. Ip4PrefixLength
Délka předpony IPv4 podsítě Délka předpony podsítě Ipv4, platná pouze v případě, že je zadaná statická adresa Ipv4. { ..., "LinuxNode": { ..., "SecondaryNetworks": [ { "VMSwitchName": <virtual-switch-name>, "Ip4Address": <linux-node-secondary-ip-address>, "Ip4GatewayAddress": <gateway-ip-address>, "Ip4PrefixLength": <ip-prefix-length> } ] } }
Nasaďte uzel AKS Edge Essentials podle kroků v části Vytvoření nasazení jednoho počítače nebo vytvoření úplného nasazení.
Ověření nastavení konfigurace sítě s více síťovými adaptéry
Po úspěšné instalaci a nasazení uzlu AKS Edge Essentials se ujistěte, že se vytvořilo a přidalo primární i sekundární rozhraní do uzlu Linuxu:
Zkontrolujte primární rozhraní:
Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo ip addr eth0"
Zkontrolujte sekundární síťové rozhraní. Pokud jste přidali více než jedno další rozhraní, zobrazí se jako ethX s X je počet dalších síťových rozhraní:
Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo ip addr eth1"
Konfigurace modulu plug-in Multus CNI
Po úspěšné instalaci a nasazení uzlu AKS Edge Essentials povolte Multus následujícím postupem:
Ověřte, že je výchozí síť připravená, a to výpisem uzlů Kubernetes:
kubectl get nodes
Naklonujte úložiště Multus Cni:
git clone https://github.com/k8snetworkplumbingwg/multus-cni.git
Přejděte do adresáře projektu multus-cni .
Přejděte do složky nasazení a zobrazte skripty sady démon použitých ke konfiguraci Multusu.
Pokud používáte verzi K3s, proveďte následující úpravy multus-daemonset.yml skriptu, aby byl kompatibilní pro použití s K3s:
Získejte token hash úložiště AKS Edge Essentials. Hodnotu hash můžete najít tak, že přejdete na /var/lib/rancher/k3s/data/.
Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo ls -AU /var/lib/rancher/k3s/data/ | head -1"
Nahraďte následující řádky konfigurace svazku:
volumes: - name: cni hostPath: path: /etc/cni/net.d - name: cnibin hostPath: path: /opt/cni/bin
Použijte token hash úložiště z předchozího kroku a nahraďte konfiguraci následujícími řádky:
volumes: - name: cni hostPath: path: /var/lib/rancher/k3s/agent/etc/cni/net.d - name: cnibin hostPath: path: /var/lib/rancher/k3s/data/<replace-with-your-hash>/bin
Nahraďte následující řádky konfigurace kontejneru:
containers: - name: kube-multus image: ghcr.io/k8snetworkplumbingwg/multus-cni:snapshot command: ["/thin_entrypoint"] args: - "--multus-conf-file=auto" - "--multus-autoconfig-dir=/host/etc/cni/net.d" - "--cni-conf-dir=/host/etc/cni/net.d"
Nahraďte je odpovídající konfigurací kontejneru K3s :
containers: - name: kube-multus image: nfvpe/multus:v3.4.1 command: ["/entrypoint.sh"] args: - "--multus-conf-file=auto" - "--cni-version=0.3.1" # Add the following arg - "--multus-kubeconfig-file-host=/var/lib/rancher/k3s/agent/etc/cni/net.d/multus.d/multus.kubeconfig"
Použijte aktualizovaný soubor sady démon Multus pomocí následujícího příkazu:
kubectl apply -f multus-daemonset.yml
Pokud je všechno správně nainstalované, Kubernetes spustí sadu démon Multus, která spustí pod na každém uzlu, a výsledkem je umístění binárního souboru Multus do každého uzlu v /var/lib/rancher/k3s/data/[replace-with-your-hash]/bin.
Daemonset přečte první abecední konfigurační soubor v /var/lib/rancher/k3s/agent/etc/cni/net.d a vytvoří nový konfigurační soubor pro Multus na každém uzlu jako /var/lib/rancher/k3s/agent/etc/cni/net.d/00-multus.conf. Tento soubor se automaticky vygeneruje a je založený na výchozí konfiguraci sítě. Vytvoří také adresář /var/lib/rancher/k3s/agent/etc/cni/net.d/multus.d na každém uzlu s ověřovacími informacemi pro Multus pro přístup k rozhraní Kubernetes API.
Ověření instalace Multusu
Instalace může zkontrolovat následující informace:
Všechny dříve uvedené soubory byly generovány zobrazením zadaných cest k adresáři:
Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo ls -l /var/lib/rancher/k3s/data/<replace-with-your-hash>/bin | grep multus"
Spuštěním tohoto příkazu se ujistěte, že se pody Multus spustily bez chyby:
kubectl get pods --all-namespaces | Select-String 'Multus'
Zkontrolujte soubor 00-multus.conf a ujistěte se, že je zadána správná verze CNI. Aktualizujte hodnotu verze CNI na 0.3.1 , pokud tato hodnota ještě není výchozí hodnotou:
Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo cat /var/lib/rancher/k3s/agent/etc/cni/net.d/00-multus.conf"
Konfigurace sekundární sítě Multus s ukázkovým podem
Po instalaci a spuštění modulu plug-in Multus vytvořte definici síťové přílohy Kubernetes.
Vytvořte soubor yaml secondarynet-conf.yaml pro sekundární síť. Součástí instalace Multus quickstart, vytvoří CRD (vlastní definici prostředku), která se dá použít k definování konfigurace pro všechna další rozhraní. Následující ukázkový soubor YAML přidá sekundární síť:
# This net-attach-def defines secondarynet-conf apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: secondarynet-conf spec: config: '{ "cniVersion": "0.3.1", "plugins": [ { "type": "bridge", "bridge": "mynet1", "ipam": { "subnet": "10.0.0.0/24", "rangeStart": "10.0.0.60", "rangeEnd": "10.0.0.120"}, "gateway": "10.0.0.1" } ] }'
Poznámka:
Oficiální dokumentace k Multusu určuje
macvlan
sekundární rozhraní typu.macvlan
Modul plug-in ale není ve výchozím nastavení dostupný. Pokud chcete použít tento modul plug-in, nainstalujte ho před zadáním konfigurace sekundární sítě. Další informace o různých síťových plug-inech a jejich ukázkových konfiguracích naleznete v tématu Použití Multus CNI v OpenShiftu.Vytvořte sekundární rozhraní pomocí secondarynet-conf.yaml vytvořeného v předchozím kroku:
kubectl apply -f secondarynet-conf.yaml
Vytvořte soubor samplepod.yaml pro nasazení ukázkového podu, který se připojí k dříve vytvořenému sekundárnímu rozhraní. Následující kód YAML je ukázka pro vytvoření nového podu, který používá sekundární rozhraní:
apiVersion: v1 kind: Pod metadata: name: samplepod annotations: k8s.v1.cni.cncf.io/networks: secondarynet-conf spec: containers: - name: samplepod command: ["/bin/ash", "-c", "trap : TERM INT; sleep infinity & wait"] image: alpine
Vytvořte ukázkový pod pomocí
samplepod.yaml
vytvořeného v předchozím kroku:kubectl apply -f samplepod.yaml
Ověření připojených sítí podů
Posledním krokem je zajistit, aby byl pod spuštěný a že má připojená správná síťová rozhraní.
Zkontrolujte, jestli je pod spuštěný:
kubectl get pods
Zkontrolujte pod a podívejte se, jaká rozhraní jsou připojená:
kubectl exec -it samplepod -- ip a
Existují tři rozhraní:
- lo: rozhraní zpětné smyčky
- eth0: výchozí síť
- net1: nové rozhraní vytvořené pomocí secondarynet-conf