Kubernetes-Cluster erstellen
Mit Terraform können Sie ein Kubernetes-Cluster in Ihrem Oracle Cloud Infrastructure-Account einrichten.
Zu den wichtigsten Aufgaben gehören:
- Kopieren Sie Ihre vorhandenen Skripte aus Terraform-Tutorials.
- Bearbeiten Sie vorhandene Skripte für eine Wiederverwendung.
- Schreiben Sie neue Skripte für ein Kubernetes-Cluster.

Weitere Informationen finden Sie unter:
Bevor Sie beginnen
Für eine erfolgreiche Ausführung des Tutorials benötigen Sie Folgendes:
- Ein kostenpflichtiger Oracle Cloud Infrastructure-Account. Siehe Kostenlose Oracle Cloud-Promotions anfordern und verwalten.
- Einen MacOS-, Linux- oder Windows-Rechner.
- Terraform-Tutorialressourcen:
- Gehen Sie durch alle Schritte in:
- Behalten Sie die Skripte bei, die Sie im folgenden Verzeichnis erstellt haben:
$HOME/tf-simple-infrastructure/
1. Erforderliche Informationen erfassen
Erfassen Sie Informationen für die Compute-Instanzen im Knotenpool.
VM.Standard2.1
für die Compute-Instanzen im Knotenpool verwendet.<node-shape>
VM.Standard2.1
in Notepad.
2. Vorhandene Skripte kopieren
Kopieren Sie Skripte, die unter Einfache Infrastruktur mit OCI Terraform einrichten erstellt wurden. Entfernen Sie dann die zur Compute-Instanz zugehörigen Skripte und Ausgaben. Im nächsten Abschnitt deklarieren Sie einen Knotenpool mit Compute-Instanzen.
3. Skripte erstellen
Erstellen Sie Skripte für ein Cluster, einen Knotenpool und zum Drucken von Ausgaben.
Suchen Sie unter Argumentreferenz (oci_containerengine_cluster) alle erforderlichen Argumente:
- compartment_id
- kubernetes_version
- Name
- vcn_id
So navigieren Sie zur Argumentreferenz (oci_containerengine_cluster):
- Gehen Sie zu Oracle Cloud Infrastructure-Provider.
- Geben Sie im Feld Filter oben links
container engine
ein.Die Ergebnisse werden für Datenquellen und Ressourcen zurückgegeben.
- Wählen Sie unter Container Engine unter Ressourcen die Option oci_containerengine_cluster aus.
- Wählen Sie Argumentreferenz aus.
Die Argumentreferenz wird geöffnet.
Erstellen Sie einen Ressourcenblock:
- Deklarieren Sie einen Ressourcenblock mit dem Schlüsselwort:
resource
- Hinzufügen eines Labels für den Typ der Ressource:
"oci_containerengine_cluster"
- Fügen Sie ein Label für einen lokalen Namen (Ihrer Wahl) hinzu:
- Das Label darf Buchstaben, Ziffern, Unterpunkte (
_
) und Bindestriche (-
) enthalten. Das erste Zeichen darf keine Ziffer sein. - Beispiel:
"oke-cluster"
- Das Label darf Buchstaben, Ziffern, Unterpunkte (
- Geben Sie im Codeblock einen Wert für die Argumente mit dem Label "Erforderlich" ein:
- compartment_id: Verweisen Sie auf das in
compartment.tf
deklarierte Compartment:oci_identity_compartment.tf-compartment.id
- kubernetes_version: In diesem Tutorial wird Version
v1.21.5
verwendet. Über die Option Schnellerstellung in der Konsole können Sie die neueste Version abrufen. - name: Weisen Sie einen Namen Ihrer Wahl zu.
- vcn_id: Verweisen Sie auf das in
vcn-module.tf
deklarierte Compartment:module.vcn.vcn_id
Ein erforderliches Argument hat keinen Standardwert.
- compartment_id: Verweisen Sie auf das in
- Geben Sie Werte für die folgenden optionalen Argumente an, um deren Standardwerte zu überschreiben.
- add_ons: Weisen Sie den folgenden Argumenten die Werte
true
oderfalse
zu:- is_kubernetes_dashboard_enabled
- is_tiller_enabled
- kubernetes_network_config: Weisen Sie den folgenden Argumenten einen CIDR-Block als Zeichenfolge zu:
pods_cidr
services_cidr
Hinweis
Der CIDR-Block für die Pods darf sich nicht mit den CIDR-Blöcken des Worker-Knotens und des Load-Balancer-Subnetzes überlappen.
Der CIDR-Block für den Kubernetes-Service darf sich nicht mit dem VCN-CIDR-Block überschneiden.
Der Beispielcode in diesem Tutorial verwendet dieselben CIDR-Blöcke wie die Option Schnellerstellung in der Konsole.
Weitere Erläuterungen finden Sie unter CIDR-Blöcke und Kubernetes-Engine (OKE).
- service_lb_subnet_ids: Weisen Sie das in
public-subnet.tf
deklarierte öffentliche Subnetz zu.Hinweis
Das Argument service_lb_subnet_ids akzeptiert eine Liste der Subnetz-IDs:- Auch wenn Sie nur ein Subnetz haben, verwenden Sie eckige Klammern, um eine Liste zu bezeichnen.
- Beispiel:
[oci_core_subnet.vcn-public-subnet.id]
- add_ons: Weisen Sie den folgenden Argumenten die Werte
Suchen Sie unter Alarmreferenz (oci_containerengine_node_pool) nach allen erforderlichen Argumenten:
- cluster_id
- compartment_id
- kubernetes_version
- Name
- node_config_details
- placement_configs
- availability_domain
- subnet_id
- placement_configs
- node_shape
- node_source_details
- image_id
- source_type
So navigieren Sie zu Alarmreferenz (oci_containerengine_node_pool):
- Gehen Sie zu Oracle Cloud Infrastructure-Provider.
- Geben Sie im Feld Filter oben links
container engine
ein.Die Ergebnisse werden für Datenquellen und Ressourcen zurückgegeben.
- Wählen Sie unter Container Engine unter Ressourcen die Option oci_containerengine_node_pool aus.
- Wählen Sie Argumentreferenz aus.
Die Argumentreferenz wird geöffnet.
Erstellen Sie einen Ressourcenblock:
- Deklarieren Sie einen Ressourcenblock mit dem Schlüsselwort:
resource
- Fügen Sie ein Label für den Typ der Ressource hinzu:
"oci_containerengine_node_pool"
- Fügen Sie ein Label für einen lokalen Namen (Ihrer Wahl) hinzu:
- Das Label darf Buchstaben, Ziffern, Unterpunkte (
_
) und Bindestriche (-
) enthalten. Das erste Zeichen darf keine Ziffer sein. - Beispiel:
"oke-node-pool"
- Das Label darf Buchstaben, Ziffern, Unterpunkte (
- Geben Sie im Codeblock einen Wert für die Argumente mit dem Label Erforderlich ein:
- cluster_id: Verweisen Sie auf das in
cluster.tf
deklarierte Cluster:oci_containerengine_cluster.oke-cluster.id
- compartment_id Verweisen Sie auf das in
compartment.tf
deklarierte Compartment:oci_identity_compartment.tf-compartment.id
- kubernetes_version: Dieses Tutorial verwendet dieselbe Version wie der Assistent zum Erstellen von Clustern der Konsole.
- name: Weisen Sie einen Namen Ihrer Wahl zu. Der Assistent zum Erstellen von Clustern der Konsole verwendet den Namen
pool1
. - node_shape: Geben Sie die Informationen ein, die Sie im ersten Abschnitt erfasst haben.
- node_source_details:
- image_id: Geben Sie die Informationen ein, die Sie im ersten Abschnitt erfasst haben.
- source_type: Setzen Sie diesen Wert auf
"image"
.
- cluster_id: Verweisen Sie auf das in
- Geben Sie Werte für die folgenden optionalen Argumente an, um deren Standardwerte zu überschreiben.
- initial_node_labels: Weisen Sie Schlüssel/Wert-Paare für die Knoten zu.
- key: Weisen Sie einen Schlüssel Ihrer Wahl zu. Mit der Option Schnellerstellung der Konsole wird der Schlüssel
"name"
erstellt. - value: Weisen Sie einen Wert für den Schlüssel zu. Mit der Option Schnellerstellung der Konsole wird
"<your-cluster-name>"
dem Schlüssel"name"
zugewiesen.
- key: Weisen Sie einen Schlüssel Ihrer Wahl zu. Mit der Option Schnellerstellung der Konsole wird der Schlüssel
- initial_node_labels: Weisen Sie Schlüssel/Wert-Paare für die Knoten zu.
In diesem Abschnitt deklarieren Sie Ausgaben für das Cluster und den Knotenpool.
- Informationen zu cluster-Ausgaben finden Sie unter Attributreferenz unter oci_containerengine_cluster.
- Informationen zu Ausgaben für Knotenpools finden Sie unter Attributreferenz auf der Seite oci_containerengine_node_pool.
Ausgaben für Listenelemente
- Normalerweise sind Listen-Attribute Plural (enden auf s).
- Beispiel für eine Liste von Attributen für Knotenpool:
node_config_details
- Um alle Attribute in einer Liste auszugeben, verwenden Sie das list-Attribut allein, ohne Klammern.
- Beispiel:
output "node-configuration-details"{ value = oci_containerengine_node_pool.oke-node-pool.node_config_details }
Beispielausgabe:
node-configuration-details = [ { "placement_configs" = [ { "availability_domain" = "QnsC:US-ASHBURN-AD-1" "subnet_id" = "ocid1.subnet.xxx" }, { "availability_domain" = "QnsC:US-ASHBURN-AD-2" "subnet_id" = "ocid1.subnet.xxx" }, { "availability_domain" = "QnsC:US-ASHBURN-AD-3" "subnet_id" = "ocid1.subnet.xxx" }, ] "size" = 3 }, ]
- So geben Sie ein Element aus einer Liste aus oder rufen es auf:
- Verwenden Sie das folgende Format:
<list-attribute-name>[index].<attribute-from-list>
- Ersetzen Sie
[index]
durch:- [0] für das erste Element.
- [1] für das zweite Element.
- ...
- [n] für das Element (n+1).
- Verwenden Sie das folgende Format:
- Beispiel:
Wert für das Attribut
size
:output "node-size" { value = oci_containerengine_node_pool.oke-node-pool.node_config_details[0].size }
4. Skripte ausführen
Führen Sie Ihre Terraform-Skripte aus, um ein Compartment, ein virtuelles Cloud-Netzwerk, ein Kubernetes-Cluster und einen Knotenpool zu erstellen.
.terraform
, der die Plug-ins für den OCI
-Provider enthält.Terraform-Skripte ausführen:
terraform apply
Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes
ein, damit Ihre Ressourcen erstellt werden können.
Es kann mindestens 15 Minuten dauern, bis das Cluster erstellt ist. Nachdem Terraform die Ressourcen erstellt hat, prüfen Sie die Ausgabe im Terminal.
Apply complete! Resources: 14 added, 0 changed, 0 destroyed.
Outputs:
...
cluster-OCID = ocid1.cluster.xxx
cluster-kubernetes-version = "v1.21.5"
cluster-name = <your-cluster-name>
cluster-state = ACTIVE
...
node-pool-OCID = ocid1.nodepool.xxx
node-pool-kubernetes-version = "v1.21.5"
node-pool-name = "pool1"
node-shape = "VM.Standard2.1"
node-size = 3
...
- Fehler 401 (Service error: NotAuthenticated):
- Sie haben einen falschen Wert bei einer der folgenden Angaben:
- Mandanten-OCID
- Benutzer-OCID
- Fingerprint
- RSA-Private Key (Pfad oder Schlüssel)
- Sie haben einen falschen Wert bei einer der folgenden Angaben:
- Kein derartiger Host:
- Sie haben einen falschen Wert bei einer der folgenden Angaben:
- Regions-ID
- Sie haben einen falschen Wert bei einer der folgenden Angaben:
Referenzen:
Weitere Schritte
Herzlichen Glückwunsch. Sie haben ein Kubernetes-Cluster mit Terraform in Ihrem Oracle Cloud Infrastructure-Account erstellt.
Nachdem Sie ein Kubernetes-Cluster erstellt haben, können Sie Kubernetes-Tutorials unter Entwicklertutorials ausführen.
Weitere Informationen zur Entwicklung mit Oracle-Produkten finden Sie auf folgenden Websites: