|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
Netzwerkkonfiguration mit SUSE® Rancher Prime: OS Manager
|
warning
Das deklarative Networking befindet sich im Zustand der Technologievorschau mit eingeschränkter Unterstützung. Aus diesem Grund wird es nicht für Produktionsumgebungen empfohlen. |
Die Maschinenregistrierung unterstützt das deklarative Networking und die Integration mit CAPI IPAM-Anbietern.
Voraussetzungen
-
Ein DHCP-Server ist weiterhin erforderlich für die Erstregistrierung und das Zurücksetzen von Maschinen. Aus diesem Grund kann die Lease Time minimal gehalten werden, da während des gesamten Lebenszyklus der Maschine die von IPAM gesteuerten IP-Adressen verwendet werden.
-
Ein IPAM-Anbieter Ihrer Wahl ist im Rancher-Management-Cluster installiert. Zum Beispiel der InCluster IPAM-Anbieter.
-
NetworkManager muss auf den Betriebssystem-Images installiert werden und kann direkt mit dem
nmconnectionsNetzwerk Konfigurator konfiguriert werden. Bereits in den von Elemental bereitgestellten Images enthalten. -
(optional) nmc kann mit dem
nmcNetzwerk Konfigurator verwendet werden. -
(optional) nmstatectl kann mit dem
nmstateNetzwerk Konfigurator verwendet werden.
Installation von nmc oder nmstatectl auf Betriebssystem-Images
Bei Verwendung der nmc oder nmstate Konfiguratoren müssen die nmc oder nmstatectl Tools auf der Maschine installiert werden.
Derzeit kann dies durch Anpassen eines Elemental OS-Images mit einem benutzerdefinierten Befehl erreicht werden:
-
nmc
-
nmstatectl
# Install nmc
RUN curl -LO https://github.com/suse-edge/nm-configurator/releases/download/v0.3.3/nmc-linux-x86_64 && \ install -o root -g root -m 0755 nmc-linux-x86_64 /usr/sbin/nmc
# Install nmstatectl
RUN curl -LO https://github.com/nmstate/nmstate/releases/download/v2.2.40/nmstatectl-linux-x64.zip && \ unzip nmstatectl-linux-x64.zip && \ chmod +x nmstatectl && \ mv ./nmstatectl /usr/sbin/nmstatectl && \ rm nmstatectl-linux-x64.zip
Wie man den CAPI IPAM-Anbieter installiert
Der empfohlene Weg, um einen CAPI-Anbieter in Rancher zu installieren, ist, Rancher Turtles zu verwenden.
Rancher Turtles ermöglichen es dem Benutzer, den Lebenszyklus eines beliebigen CAPI-Anbieters zu installieren und zu verwalten. Um ihn auf Ihrem System zu installieren, folgen Sie bitte der Dokumentation zur Installation von Rancher Turtles.
Sobald Rancher Turtles installiert ist, kann ein IPAM CAPI-Anbieter, zum Beispiel der InCluster IPAM-Anbieter, installiert werden, indem die folgende Ressource angewendet wird.
kind: CAPIProvider
metadata:
name: in-cluster
namespace: default
spec:
name: in-cluster
type: ipam
fetchConfig:
url: "https://github.com/kubernetes-sigs/cluster-api-ipam-provider-in-cluster/releases"
version: v0.1.0
Ohne Rancher Turtles
Eine alternative Möglichkeit, einen CAPI IPAM Provider zu installieren, ist, das Manifest direkt im Rancher-Cluster anzuwenden.
Beachten Sie, dass diese Lösung schließlich zu Konflikten mit den angewendeten CRDs und Ressourcen führen kann, da diese manuell angewendet und verwaltet werden müssen.
-
Die
ipaddresses.ipam.cluster.x-k8s.ioundipaddressclaims.ipam.cluster.x-k8s.ioCRDs müssen im Rancher-Management-Cluster installiert werden:kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/config/crd/bases/ipam.cluster.x-k8s.io_ipaddressclaims.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/config/crd/bases/ipam.cluster.x-k8s.io_ipaddresses.yaml
|
info
Es wird erwartet, dass diese CRDs schließlich Teil von Rancher werden und keine manuelle Installation erfordern. Siehe: https://github.com/rancher/rancher/issues/46385 |
-
Installieren Sie den InCluster IPAM-Anbieter aus dem veröffentlichten Manifest:
kubectl apply -f https://github.com/kubernetes-sigs/cluster-api-ipam-provider-in-cluster/releases/download/v0.1.0/ipam-components.yaml
Netzwerk konfigurieren
Der network Abschnitt des MachineRegistration ermöglicht es Benutzern, Folgendes zu definieren:
-
Eine Karte von IPPool-Referenzen.
-
Eine Netzwerk-Konfiguration (in diesem Fall wird der
nmcKonfigurator verwendet).
Unresolved include directive in modules/de/pages/operator-operational-tasks/declarative-networking/networking.adoc - include::example$network/machineregistration.yaml[]
Hier können wir beobachten, dass ein InClusterIPPool definiert wurde, da wir für dieses Beispiel den InCluster IPAM-Anbieter verwenden.
Als Nächstes werden wir diesen IPPool im MachineRegistration referenzieren. Der Schlüssel für diese Referenz ist inventory-ip, und wir benötigen nur eine IP pro registrierter Maschine. Wenn Ihre Maschine mehr als eine NIC hat, können Sie weitere Referenzen definieren und auch verschiedene IPPools verwenden, zum Beispiel:
ipAddresses:
main-nic-ip:
apiGroup: ipam.cluster.x-k8s.io
kind: InClusterIPPool
name: elemental-inventory-pool
secondary-nic-ip:
apiGroup: ipam.cluster.x-k8s.io
kind: InClusterIPPool
name: elemental-inventory-pool
private-nic-ip:
apiGroup: ipam.cluster.x-k8s.io
kind: InClusterIPPool
name: elemental-private-pool
Jeder definierte IPPool-Referenzschlüssel kann für die Netzwerkkonfiguration verwendet werden:
config:
dns-resolver:
config:
server:
- 192.168.122.1
search: []
routes:
config:
- destination: 0.0.0.0/0
next-hop-interface: eth0
next-hop-address: 192.168.122.1
metric: 150
table-id: 254
interfaces:
- name: eth0
type: ethernet
description: Main-NIC
state: up
ipv4:
enabled: true
dhcp: false
address:
- ip: "{inventory-ip}"
prefix-length: 24
ipv6:
enabled: false
Der obige Ausschnitt ist fast 1:1 nm-configurator Syntax, mit der einzigen Ausnahme des {inventory-ip} Platzhalters. Während der Installations- oder Rücksetzphasen von Elemental-Maschinen wird der elemental-operator eine IP-Adresse aus dem referenzierten IP-Pool beanspruchen und den {inventory-ip} Platzhalter durch eine echte IP-Adresse ersetzen.
Beanspruchte IP-Adressen
Der IPAddressClaim wird den gesamten Lebenszyklus des MachineInventory verfolgen und sicherstellen, dass jeder registrierte Maschine eindeutige IPs zugewiesen bekommt. Jeder Claim wird nach dem MachineInventory benannt, der ihn verwendet, zum Beispiel:
apiVersion: ipam.cluster.x-k8s.io/v1beta1
kind: IPAddressClaim
metadata:
finalizers:
- ipam.cluster.x-k8s.io/ReleaseAddress
name: m-e5331e3b-1e1b-4ce7-b080-235ed9a6d07c-inventory-ip
namespace: fleet-default
ownerReferences:
- apiVersion: elemental.cattle.io/v1beta1
kind: MachineInventory
name: m-e5331e3b-1e1b-4ce7-b080-235ed9a6d07c
spec:
poolRef:
apiGroup: ipam.cluster.x-k8s.io
kind: InClusterIPPool
name: elemental-inventory-pool
status:
addressRef:
name: m-e5331e3b-1e1b-4ce7-b080-235ed9a6d07c-inventory-ip
Wann immer ein MachineInventory gelöscht wird, wird die Standardnetzwerkkonfiguration (DHCP) wiederhergestellt, wodurch jedes Netzwerkprofil auf der Maschine gelöscht und der Netzwerkstapel neu gestartet wird. Schließlich werden die zugewiesenen IPs freigegeben.
Für weitere Informationen und Details zur Fehlersuche konsultieren Sie bitte die Troubleshooting Declarative Networking-Dokumentation.
Konfiguratoren
Auf der Elemental-Maschine kann elemental-register das NetworkManager auf verschiedene Weise konfigurieren. Der verwendete Konfigurator ist im MachineRegistration.spec.network definiert:
-
nmc
-
nmstate
-
nmconnections
Der nmc Konfigurator verwendet die nm-configurator einheitliche Syntax, um die Verbindungsdateien von NetworkManager zu generieren.
Unresolved include directive in modules/de/pages/operator-operational-tasks/declarative-networking/networking.adoc - include::example$network/machineregistration-nmc.yaml[]
Der nmstate Konfigurator verwendet nmstate-Syntax, um die Verbindungsdateien von NetworkManager zu generieren. Beachten Sie, dass nmstatectl auf dem Elemental-System installiert sein muss, um diesen Konfigurator zu verwenden. Dies ist standardmäßig nicht in Elemental-Images enthalten, kann jedoch beim Erstellen eines benutzerdefinierten Images installiert werden.
Unresolved include directive in modules/de/pages/operator-operational-tasks/declarative-networking/networking.adoc - include::example$network/machineregistration-nmstate.yaml[]
Der nmconnections Konfigurator ist die einfachste verfügbare Option und ermöglicht es dem Benutzer, nmconnection Dateien direkt zu schreiben. Die Definition dieser Dateien für komplexe Netzwerk-Setups kann herausfordernd sein, aber es ist immer möglich, nmcli oder sogar nmstate oder [nm-configurator](https://github.com/suse-edge/nm-configurator) zu verwenden und die generierten nmconnection Dateien als Vorlage zu nutzen. Dieser Konfigurator benötigt nur NetworkManager, ohne zusätzliche Abhängigkeiten. Beispiel für die Maschinenregistrierung mit dem nmconnections-Konfigurator.
Klicken Sie hier für ein Beispiel der Maschinenregistrierung mit dem nmstate-Konfigurator.
Unresolved include directive in modules/de/pages/operator-operational-tasks/declarative-networking/networking.adoc - include::example$network/machineregistration-nmconnections.yaml[]