OCI-Ressourcen für das Agent-basierte Installationsprogramm für die manuelle Installation
Erstellen Sie die erforderlichen OCI-Ressourcen manuell, um ein OpenShift Container Platform-Cluster mit dem Agent-basierten Installationsprogramm zu installieren.
Wenn Sie Ressourcen mit Terraform bereitstellen, wie unter Cluster mit Agent-basiertem Installationsprogramm mit Terraform installieren beschrieben, können Sie dieses Thema überspringen.
Der Agent-basierte Installer-Workflow zur Konfiguration der Infrastruktur beginnt in der Red Hat Hybrid Cloud-Konsole, in der Sie die Binärdatei openshift-install
herunterladen, um ein Discovery-ISO-Image zu erstellen, das zum Provisioning von Compute-Instanzen in OCI erforderlich ist. Informationen zum Herunterladen der Binärdatei finden Sie auf der Seite OpenShift Installer- und CLI-Downloads.
Bevor Sie das Discovery-ISO-Image generieren können (das zum Provisioning von Compute-Instanzen in OCI verwendet wird), müssen Sie die OCI-Infrastruktur bereitstellen. Dazu gehören OCIDs, VCN-CIDR-Bereiche, Anzahl der Control Plane- und Compute-Instanzen sowie weitere Eingaben, die zum Erstellen der Agent-basierten Installationsdateien agent-config.yaml
, install-config.yaml
und openshift/custom_manifest.yaml
erforderlich sind.
Nachdem Sie das Image generiert haben, wechseln Sie zur OCI-Konsole, um die verbleibende Infrastruktur bereitzustellen und mit dem Cluster-Deployment fortzufahren.
Wenn Sie das Agent-basierte Installationsprogramm verwenden, benötigen Sie die Ressourcen, die im Thema Voraussetzungen und in den folgenden Infrastrukturkomponenten beschrieben werden:
- Compartment
- VCN
- Load Balancer
- DNS-Datensätze für die Load Balancer
- Tag-Namespace und definierte Tags für die Compute Nodes des Clusters
- Dynamische IAM-Gruppe für die Compute Nodes des Clusters
- IAM-Policys für die dynamische Gruppe
- Benutzerdefiniertes Image für das Provisioning der Compute-Instanz, das aus dem Discovery-ISO-Image OpenShift erstellt wurde.
Sie können die meisten dieser Ressourcen vor dem Start erstellen, mit Ausnahme des benutzerdefinierten Compute-Images, das das Discovery-ISO-Image erfordert.
Compartment
Mit Compartments können Sie Cloud-Ressourcen organisieren und isolieren. Es wird empfohlen, ein neues Compartment für das Cluster OpenShift zu erstellen. Weitere Informationen finden Sie unter Compartment erstellen.
VCN- und Netzwerkressourcen
OpenShift Compute Nodes, Load Balancer und andere Ressourcen verwenden ein virtuelles OCI-Cloud-Netzwerk (VCN) für die Verbindung. Anweisungen zum Erstellen eines VCN finden Sie unter VCN erstellen.
Sie benötigen IAM-Berechtigungen, um VCNs und die zugehörigen Networkingressourcen im aggregierten Ressourcentyp virtual-network-family
zu verwalten. Weitere Informationen finden Sie unter Zugriff auf Ressourcen verwalten. Beachten Sie, dass Netzwerkberechtigungen im Abschnitt "Core-Services" behandelt werden.
Optional können Sie Netzwerksicherheitsgruppen (NSGs) in Ihrem VCN verwenden, um den Zugriff zu kontrollieren. Einzelheiten zur Verwendung von NSGs zur Kontrolle von Netzwerktraffic und Zugriff finden Sie unter Netzwerksicherheitsgruppen. Beachten Sie, dass sich die NSG im selben Compartment wie die anderen OpenShfit-Infrastrukturressourcen befinden muss.
Details zur VCN- und Subnetzkonfiguration finden Sie auf der Seite Definierte Terraform-Ressourcen für OpenShift auf OCI unter GitHub. Greifen Sie für bestimmte Ressourcendefinitionen auf die relevanten Ordner im Verzeichnis shared_modules zu, und suchen Sie nach den folgenden Ressourcen: oci_core_vcn,
oci_core_internet_gateway
, oci_core_nat_gateway
, oci_core_route_table
, oci_core_subnet
und oci_core_network_security_group
.
Load Balancer
Das Red Hat OpenShift-Cluster erfordert zwei Load Balancer, einen für internen Netzwerktraffic und einen für externen Traffic. Anweisungen finden Sie unter Load Balancer erstellen. Allgemeine Details zu Load-Balancer-Konfigurationen finden Sie auf der Seite Definierte Terraform-Ressourcen für OpenShift auf OCI unter GitHub. Greifen Sie für bestimmte Ressourcendefinitionen auf den relevanten Ordner im Verzeichnis shared_modules zu, und suchen Sie nach den folgenden Ressourcen: oci_load_balancer_load_balancer
, oci_load_balancer_backend_set
und oci_load_balancer_listener
.
Interner Load Balancer
Port | Backend-Rechner (Poolmitglieder) | Beschreibung |
---|---|---|
6.443 | Bootstrap und Control Plane | Kubernetes-API-Server |
22.623 | Bootstrap und Control Plane | Rechnerkonfigurationsserver |
22.624 | Bootstrap und Control Plane | Rechnerkonfigurationsserver |
API-Load Balancer
Wird für Kubernetes-API-Servertraffic verwendet. Kann öffentlich oder privat sein. Mit den folgenden Informationen können Sie den API-Load Balancer konfigurieren
Port | Backend-Rechner (Poolmitglieder) | Beschreibung |
---|---|---|
6.443 | Bootstrap- und Control Plane-Knoten | Kubernetes-API-Servertraffic (HTTPS) |
22.624 | Bootstrap- und Control Plane-Knoten | Wird von Worker-Knoten zum Herunterladen von Zündkonfigurationen beim Verbinden mit dem Cluster verwendet. |
Port 22624 ist erforderlich, um dem Cluster neue Worker-Knoten hinzuzufügen. Stellen Sie sicher, dass sie auf dem externen (nicht internen) API-Load Balancer geöffnet und korrekt weitergeleitet wird.
Apps-Load Balancer
Port | Backend-Rechner (Poolmitglieder) | Beschreibung |
---|---|---|
80 | Knoten, auf denen Ingress-Controller-Pods ausgeführt werden (normalerweise Compute- oder Worker-Knoten) | HTTP-Traffic |
443 | Knoten, auf denen Ingress-Controller-Pods ausgeführt werden (normalerweise Compute- oder Worker-Knoten) | HTTPS-Traffic |
Abhängig von den Netzwerk- und Sicherheitsanforderungen können Sie die Load Balancer so konfigurieren, dass sie öffentlich oder privat sind.
DNS-Datensätze
Erstellen Sie DNS-Datensätze für das Routing des internen und externen OpenShift-Netzwerktraffics. Je nach Ihren Netzwerk- und Sicherheitsanforderungen können Sie entweder eine öffentliche DNS-Zone, eine private DNS-Zone oder beides erstellen. Eine private DNS-Zone kann nur in Oracle-Netzwerken (wie Ihrem VCN) aufgelöst werden. Eine öffentliche DNS-Zone aktiviert den externen Zugriff.
api.<cluster_name>.<base_domain>
api-int.<cluster_name>.<base_domain>
*.apps.<cluster_name>.<base_domain>
Jeder DNS-Datensatz muss dieselben öffentlichen und privaten Load Balancer-IDs referenzieren.
Anweisungen zum Erstellen und Verwalten von DNS-Zonen finden Sie unter Zonen.
Allgemeine DNS-Konfigurationsdetails finden Sie auf der Seite Terraform-Definierte Ressourcen für OpenShift auf OCI unter GitHub. Greifen Sie für bestimmte Ressourcendefinitionen auf den relevanten Ordner im Verzeichnis shared_modules zu, und suchen Sie nach den folgenden Ressourcen: oci_dns_zone
und oci_dns_rrset
.
Komponente | Aufzeichnen | Load Balancer | Beschreibung |
---|---|---|---|
Kubernetes-API | api.<cluster_name>.<base_domain>. |
API Load Balancer-IP verwenden |
Ein DNS-A/AAAA oder CNAME-Datensatz und ein DNS-PTR-Datensatz zur Identifizierung des API-Load Balancers. Diese Datensätze müssen von Clients außerhalb des Clusters und von allen Knoten im Cluster aufgelöst werden können. |
Kubernetes-API | api-int.<cluster_name>.<base_domain>. |
Interne Load-Balancer-IP verwenden |
Ein DNS-A/AAAA oder CNAME-Datensatz und ein DNS-PTR-Datensatz zur internen Identifizierung des API-Load Balancers. Diese Datensätze müssen von allen Knoten im Cluster aufgelöst werden können. |
Anwendungs-Ingress | *.apps.<cluster_name>.<base_domain>. |
Anwendungs-Load-Balancer-IP verwenden |
Ein DNS A/AAAA- oder CNAME-Datensatz mit Platzhaltern, der sich auf den Ingress Load Balancer der Anwendung bezieht. Der Ingress-Load Balancer der Anwendung richtet sich an die Rechner, auf denen die Ingress-Controller-Pods ausgeführt werden. Die Ingress-Controller-Pods werden standardmäßig auf den Compute-Computern ausgeführt. Diese Datensätze müssen von Clients außerhalb des Clusters und von allen Knoten im Cluster aufgelöst werden können. Beispiel: |
Definierte Tags
Definierte Tags sind erforderlich, um alle Control Plane- und Compute Nodes zu gruppieren und zu identifizieren.
Erstellen Sie mit dem Tagging-Service zwei Tag-Namespaces, und definieren Sie die erforderlichen Tags in dem Compartment, mit dem Sie das Cluster OpenShift erstellen:
- Tag-Namespace:
openshift-tags
undopenshift-{cluster_name}
- Definierte Tagnamen und -werte:
-
- Für
openshift-tags
:openshift-resource
- Für
openshift-{cluster_name}
:instance-role
:control_plane
odercompute
(je nach Knotentyp)boot-volume-type
:PARAVIRTUALIZED
oderISCSI
- Für
Diese Tags müssen beim Provisioning auf alle relevanten Ressourcen angewendet werden. Weitere Informationen finden Sie unter Resource Attribution Tags.
Weitere Informationen finden Sie unter Konzepte von Tags und Tag-Namespaces.
Allgemeine Anweisungen, die für OpenShift auf OCI spezifisch sind, finden Sie auf der Seite Terraform Defined Resources for OpenShift on OCI unter GitHub. Greifen Sie für bestimmte Ressourcendefinitionen auf den relevanten Ordner im Verzeichnis shared_modules zu, und suchen Sie nach den folgenden Ressourcen: oci_identity_tag_namespace
und oci_identity_tag
.
Dynamische Gruppen
Mit dynamischen Gruppen können Sie Oracle Cloud Infrastructure-(OCI-)Compute-Instanzen als "Principal"-Akteure (ähnlich wie Benutzergruppen) gruppieren, um Zugriff über IAM-Policys zu erteilen.
Sie können IAM-Policys (im folgenden Abschnitt behandelt) erstellen, die diese dynamischen Gruppen referenzieren, um den Zugriff auf OCI-Ressourcen zu kontrollieren. Weitere Anweisungen finden Sie unter Dynamische Gruppen verwalten. Allgemeine Details zur Konfiguration dynamischer Gruppen finden Sie auf der Seite Terraform-Definierte Ressourcen für OpenShift auf OCI unter GitHub. Greifen Sie für bestimmte Ressourcendefinitionen auf den entsprechenden Ordner im Verzeichnis shared_modules zu, und suchen Sie nach der folgenden Ressource: oci_identity_dynamic_group
.
- Name der dynamischen Gruppe:
${var.cluster_name}_control_plane_nodes
- Compartment: Cluster-Compartment
- Übereinstimmungsregel:
all { instance.compartment.id = "${var.compartment_ocid}", tag.${var.op_openshift_tag_namespace}.${var.op_openshift_tag_instance_role}.value = "control_plane" }
Policys für dynamische Gruppen
Für die dynamische Control-Plane-Gruppe OpenShift sind drei IAM-Policys erforderlich, um während der Clustererstellung auf OCI-Ressourcen zuzugreifen und diese zu verwalten. Diese IAM-Policys sind für die dynamische Gruppe master
erforderlich. Anweisungen finden Sie unter Dynamische Gruppen verwalten und Überblick über IAM-Policys. Allgemeine Details zu dynamischen Gruppen-Policy-Konfigurationen finden Sie auf der Seite Terraform-Definierte Ressourcen für OpenShift auf OCI auf GitHub. Greifen Sie für bestimmte Ressourcendefinitionen auf den entsprechenden Ordner im Verzeichnis shared_modules zu, und suchen Sie nach der folgenden Ressource: oci_identity_policy
.
- Control-Plane-Ressourcenzugriffs-Policy: Mit dieser Policy können Control-Plane-Nummern Kerninfrastrukturressourcen verwalten. Die dynamische Gruppe für Control-Plane-Knoten heißt
${var.cluster_name}_control_plane_nodes
- Policy-Name:
${var.cluster_name}_control_plane_nodes
- Compartment: Cluster-Compartment
- Policy-Anweisungen:
Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage volume-family in compartment id ${var.compartment_ocid} Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage instance-family in compartment id ${var.compartment_ocid} Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage security-lists in compartment id ${var.compartment_ocid} Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to use virtual-network-family in compartment id ${var.compartment_ocid} Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage load-balancers in compartment id ${var.compartment_ocid} Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage objects in compartment id ${var.compartment_ocid}
- Policy-Name:
- Zugriffs-Policy für Clusterressourcentagging: Diese Policy erteilt Zugriff auf die Control-Plane-Knoten, um den Namespace
openshift-tags
zum Taggen von Clusterressourcen zu verwenden.- Policy-Name: $
{var.cluster_name}_control_plane_nodes_tags
- Compartment: Root Compartment
- Policy-Anweisung:
Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to use tag-namespaces in tenancy
- Policy-Name: $
- (Optional) Networkingzugriffs-Policy: Diese Policy ist nur erforderlich, wenn sich Netzwerkkomponenten in einem anderen Compartment als die Clusterinstanzen befinden.
-
Policy-Name:
${var.cluster_name}_control_plane_nodes_networking_access_policy
- Compartment: Networking Compartment
- Policy-Anweisungen:
Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage security-lists in compartment id ${var.networking_compartment_ocid} Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage virtual-network-family in compartment id ${var.networking_compartment_ocid}
-
Benutzerdefiniertes Image für OpenShift Container Platform-Instanzen
Um Clusterknoten für OpenShift Container Platform mit dem Agent-basierten Installationsprogramm zu erstellen, benötigen Sie ein benutzerdefiniertes Compute Service-Image, das die zum Ausführen der Clusterknoten erforderliche Red Hat-Software enthält. Um dieses Image zu erstellen, gehen Sie wie folgt vor:
- Erstellen Sie ein Discovery-ISO-Image lokal mit der Binärdatei
openshift-install
, die über die Red Hat Hybrid Cloud-Konsole verfügbar ist. Anweisungen finden Sie unter Konfigurationsdateien für die Installation eines Clusters auf OCI erstellen (Red Hat-Dokumentation) (Red Hat-Dokumentation). - Laden Sie das Discovery-ISO-Image in OCI Object Storage hoch. Anweisungen finden Sie unter Objektspeicher-Bucket erstellen und Objektspeicherobjekt in Bucket hochladen.
- Erstellen Sie ein benutzerdefiniertes Image in einem Compute-Service basierend auf dem Discovery-ISO. Anweisungen finden Sie unter Benutzerdefinierte Images verwalten.
Beim Erstellen Ihres benutzerdefinierten Images müssen Sie die BIOS-Funktion deaktivieren, damit diese Option für Ihr Image nicht aktiviert ist. Weitere Informationen finden Sie unter Imagefunktionen für benutzerdefinierte Images konfigurieren in der Dokumentation Benutzerdefinierte Images verwalten.
Agent-Konfigurationsdateien
Das Agent-basierte Installationsprogramm erfordert zwei Konfigurationsdateien, die bearbeitet werden müssen, damit Sie das Discovery-ISO-Image mit dem Agent-basierten Installationsprogramm generieren können. Dies sind die Dateien agent-config.yaml
und install-config.yaml
. Weitere Informationen finden Sie unter Konfigurationsdateien zur Installation eines Clusters auf OCI erstellen (Red Hat-Dokumentation).
Nachdem Sie die Dateien agent-config.yaml
und install-config.yaml
erstellt haben, speichern Sie sie lokal. Die lokale Verzeichnisstruktur muss wie folgt aussehen:
.
└── local_machine_work_directory/
├── agent-config.yaml
├── install-config.yaml
└── openshift /
├── manifest.yml
Firewall-Konfiguration
Stellen Sie sicher, dass Ihre Firewall so konfiguriert ist, dass sie Zugriff auf die Sites erteilt, die für OpenShift Container Platform erforderlich sind. Weitere Informationen zum Einrichten der Ausnahmeliste Ihrer Firewall für OpenShift Container Platform finden Sie unter Firewall für OpenShift Container Platform konfigurieren (Red Hat-Dokumentation).
URL | Port | Funktion |
---|---|---|
ghcr.io | 443 | Stellt das Containerimage für Oracle Cloud Control Manager (CCM) und Container Storage Interface (CSI) bereit. |
registry.k8s.io | 443 | Stellt die unterstützenden kubernetes-Containerimages für CCM und CSI bereit. |