Hinweis:
- Dieses Tutorial ist in einer von Oracle bereitgestellten kostenlosen Übungsumgebung verfügbar.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Ersetzen Sie diese Werte durch die für Ihre Cloud-Umgebung spezifischen Werte.
Oracle Cloud Native Environment mit Schnellinstallation bereitstellen
Einführung
Oracle Cloud Native Environment ist eine vollständig integrierte Suite für Entwicklung und Verwaltung cloud-nativer Anwendungen. Das Kubernetes-Modul ist das Kernmodul. Damit werden Container bereitgestellt und verwaltet sowie automatisch CRI-O-, runC- und Kata-Container installiert und konfiguriert. CRI-O verwaltet die Containerlaufzeit für ein Kubernetes-Cluster. Die Laufzeit kann entweder runC oder Kata-Container sein.
In Oracle Cloud Native Environment Release 1.5.7 wurde die Möglichkeit eingeführt, mit der Oracle Cloud Native Environment Platform CLI eine schnelle Installation selbst durchzuführen. Dies geschieht mit dem Befehl olcnectl Provisioning auf einem Installationshost (dem Knoten Operator). Der Befehl olcnectl Provisioning kann die folgenden Vorgänge auf den Zielknoten ausführen:
- CA-Zertifikate generieren
- Kopieren Sie die CA-Zertifikate auf jeden Knoten.
- Richten Sie das Betriebssystem auf jedem Knoten ein, einschließlich der Netzwerkports.
- Installieren Sie die Oracle Cloud Native Environment-Softwarepackages auf jedem Knoten.
- Starten Sie die Plattformservices von Oracle Cloud Native Environment (Platform API Server und Platform Agent).
- Oracle Cloud Native Environment erstellen
- Erstellen, validieren und installieren Sie ein Kubernetes-Modul, das das das Kubernetes-Cluster erstellt.
- Richten Sie die Plattformzertifikate auf dem Knoten Operator auf
~./olcne
ein, um mit dem Befehl olcnectl auf die Umgebung zuzugreifen.
In diesem Tutorial wird beschrieben, wie Sie eine schnelle Installation mit einer der einfachsten Schritte durchführen, mit denen Oracle Cloud Native Environment und ein Kubernetes-Cluster installiert werden können. In diesem Tutorial werden private CA-Zertifikate verwendet. Es wird für eine Produktionsumgebung empfohlen, die Sie eigene CA-Zertifikate verwenden.
Komplexere Installationstopologien können erreicht werden, indem Sie Ihre eigene Oracle Cloud Native Environment-Konfigurationsdatei schreiben und dann mit der Option -config-file an den Befehl olcnectl Provisioning übergeben. Weitere Informationen zu den Syntaxoptionen des Befehls olcnectl Provisioning sowie zum Schreiben einer Konfigurationsdatei finden Sie im Handbuch Platform Command-Line Interface.
Ziele
Diese Übung zeigt, wie Sie:
- Schnelle Installation von Oracle Cloud Native Environment ausführen
- Richten Sie einen Host mit der Plattform-CLI (olcnectl) auf dem Knoten Operator ein
- Führen Sie mit dem Befehl olcnectl Provisioning eine schnelle Installation durch.
- Oracle Cloud Native Environment Release 1.5 in einem Cluster mit 3 Knoten installieren
- Prüfen, ob die Installation erfolgreich abgeschlossen wurde
Voraussetzungen
In diesem Abschnitt werden die Hostsysteme aufgeführt, die die Schritte in diesem Tutorial ausführen. Um erfolgreich zu sein, benötigen Sie:
-
3 Oracle Linux-Systeme als:
- Operatorknoten (ocne-operator)
- Kubernetes-Control-Plane-Knoten (ocne-control)
- Kubernetes-Worker-Knoten (ocne-worker)
-
Auf jedem System muss mindestens Folgendes installiert sein:
- Neueste Oracle Linux 8 (x86_64) installiert und führt Unbreakable Enterprise Kernel Release 6 aus (UEK R6)
-
Diese Umgebung ist vorkonfiguriert mit:
- Ein oracle-Benutzeraccount (wird während der Installation verwendet) mit sudo-Zugriff
- Schlüsselbasiertes SSH, auch passwortloses SSH genannt, zwischen den Hosts
Übungsumgebung einrichten
Hinweis: Wenn Sie die kostenlose Übungsumgebung verwenden, finden Sie unter Oracle Linux Lab - Grundlagen Informationen zu Verbindungen und anderen Nutzungsanweisungen.
Diese Übung umfasst mehrere Systeme, die jeweils unterschiedliche Schritte erfordern. Der Großteil der Vorgänge wird über den Knoten ocne-operator initiiert. Es wird daher empfohlen, mindestens ein Terminalfenster für diesen Knoten zu öffnen.
-
Öffnen Sie ein Terminal, und melden Sie sich über SSH bei jedem Knoten an.
ssh oracle@<ip_address_of_ol_node>
Hinweis Wenn in einem Schritt "(Auf allen Knoten)" in der Übung angegeben wird, führen Sie diese Aktionen für ocne-operator, ocne-control und ocne-worker aus. Der Grund für diesen Ansatz besteht darin, Wiederholungen zu vermeiden, da die erforderliche Aktion auf jedem Knoten identisch ist.
(Optional) Upgrade auf Unbreakable Enterprise Kernel 7 (UEK7)
In Oracle Cloud Native Environment Release 1.5.7 wurde Unterstützung für Oracle Linux 8 Unbreakable Enterprise Kernel 7 eingeführt. Die folgenden Schritte zeigen, wie Sie ein Upgrade auf diese neue Kernel-Version ausführen. In den folgenden Schritten wird beschrieben, wie Sie die Übungsumgebung mit Oracle Linux 8 Update 6 UEK R6 auf Unbreakable Enterprise Kernel 7 (UEK7) aktualisieren.
-
(Auf allen Knoten) Bestätigen Sie, welche Repositorys aktuell konfiguriert sind:
dnf repolist
Beispielausgabe:
[oracle@ocne-operator ~]$ dnf repolist repo id repo name ol8_MySQL80 MySQL 8.0 for Oracle Linux 8 (x86_64) ol8_MySQL80_connectors_community MySQL 8.0 Connectors Community for Oracle Linux 8 (x86_64) ol8_MySQL80_tools_community MySQL 8.0 Tools Community for Oracle Linux 8 (x86_64) ol8_UEKR6 Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux 8 (x86_64) ol8_addons Oracle Linux 8 Addons (x86_64) ol8_appstream Oracle Linux 8 Application Stream (x86_64) ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64)
-
(Auf allen Knoten) Bestätigen Sie, dass der unzerbrechliche Enterpriose-Kernel installiert ist
dnf list installed kernel-uek
Beispielausgabe:
[oracle@ocne-operator ~]$ dnf list installed kernel-uek Installed Packages kernel-uek.x86_64 5.4.17-2136.311.6.1.el8uek @@commandline kernel-uek.x86_64 5.4.17-2136.312.3.4.el8uek @ol8_UEKR6 kernel-uek.x86_64 5.4.17-2136.313.6.el8uek @ol8_UEKR6
-
(Auf allen Knoten) Aktivieren Sie den neuen Unbreakable Enterprise Kernel, und deaktivieren Sie den alten.
sudo dnf config-manager --set-disabled ol8_UEKR6 sudo dnf config-manager --set-enabled ol8_UEKR7
-
(Auf allen Knoten) Bestätigen Sie, welche neuen Unbreakable Enterprise Kernel-Repositorys jetzt aktiviert sind.
dnf repolist
Beispielausgabe:
[oracle@ocne-operator ~]$ dnf repolist repo id repo name ol8_MySQL80 MySQL 8.0 for Oracle Linux 8 (x86_64) ol8_MySQL80_connectors_community MySQL 8.0 Connectors Community for Oracle Linux 8 (x86_64) ol8_MySQL80_tools_community MySQL 8.0 Tools Community for Oracle Linux 8 (x86_64) ol8_UEKR7 Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (x86_64) ol8_addons Oracle Linux 8 Addons (x86_64) ol8_appstream Oracle Linux 8 Application Stream (x86_64) ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64)
-
(Auf allen Knoten) Führen Sie ein Upgrade der Umgebung durch.
sudo dnf -y upgrade kernel-uek
Wichtiger Hinweis: Dieser Vorgang kann einige Minuten dauern. Er spart Zeit, wenn dieser Schritt auf jedem Knoten separat parallel ausgeführt wird.
-
(Auf allen Knoten) Bestätigen Sie, dass der unzerbrechliche Enterpriose-Kernel installiert ist
dnf list installed kernel-uek
Beispielausgabe:
[oracle@ocne-operator ~]$ dnf list installed kernel-uek Installed Packages kernel-uek.x86_64 5.4.17-2136.311.6.1.el8uek @@commandline kernel-uek.x86_64 5.4.17-2136.312.3.4.el8uek @ol8_UEKR6 kernel-uek.x86_64 5.4.17-2136.313.6.el8uek @ol8_UEKR6 kernel-uek.x86_64 5.15.0-3.60.5.1.el8uek @ol8_UEKR7
-
(Auf allen Knoten) Starten Sie neu, und stellen Sie die Verbindung erneut her.
sudo reboot
-
(Auf allen Knoten) Nach dem Neustart des Systems stellen Sie die Verbindung zu den Knoten über SSH wieder her.
ssh oracle@<ip_address_of_ol_node>
-
(Auf allen Knoten) Bestätigen Sie, dass der neue Kernel installiert ist.
uname -a
Beispielausgabe:
[oracle@ocne-worker ~]$ uname -a Linux ocne-worker 5.15.0-3.60.5.1.el8uek.x86_64 #2 SMP Wed Oct 19 20:04:48 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
Einrichten des Installationshosts (Knoten Operator) auf Oracle Linux 8
Mit diesen Schritten wird der Oracle Linux-Host (Operatorknoten) so konfiguriert, dass er für die schnelle Installation von Oracle Cloud Native Environment verwendet werden kann.
-
(Unter ocne-operator) Installieren Sie das Releasepackage
oracle-olcne-release-el8
.sudo dnf -y install oracle-olcne-release-el8
-
(Aktivieren Sie auf ocne-operator das aktuelle Oracle Cloud Native Environment-Repository.
sudo dnf config-manager --enable ol8_olcne15 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream ol8_UEKR6
Wichtiger Hinweis: Wenn Sie dem (optional) Schritt zum Upgrade des Kernels auf UEK7 gefolgt sind, verwenden Sie stattdessen den folgenden Befehl:
sudo dnf config-manager --enable ol8_olcne15 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream ol8_UEKR7
-
(Unter ocne-operator) Deaktivieren Sie alle vorherigen Repository-Versionen.
sudo dnf config-manager --disable ol8_olcne14 ol8_olcne13 ol8_olcne12 ol8_developer
-
(Unter ocne-operator) Installieren Sie das Softwarepackage olcnectl.
sudo dnf -y install olcnectl
Schnellinstallation ausführen
In den folgenden Schritten wird die schnellste Methode zum Einrichten eines einfachen Deployments von Oracle Cloud Native Environment und zum Installieren eines Kubernetes-Clusters beschrieben. Es sind mindestens drei Knoten erforderlich, die:
- Operatorknoten verwendet die Plattform-CLI (olcnectl), um die Installation auszuführen und den Plattform-API-Server zu hosten.
- Kubernetes-Control Plane erfordert, dass mindestens ein Knoten als Kubernetes-Control-Plane-Knoten verwendet wird.
- Kuberbetes Worker erfordert, dass mindestens ein Knoten als Kubernetes-Worker-Knoten verwendet wird.
-
(Unter ocne-operator) Starten Sie die Installation mit dem Befehl olcnectl Provisioning.
olcnectl provision \ --api-server ocne-operator \ --master-nodes ocne-control \ --worker-nodes ocne-worker \ --environment-name myenvironment \ --name mycluster
Wichtiger Hinweis: Dieser Vorgang kann 10-15 Minuten dauern, und es wird kein sichtbarer Hinweis darauf angezeigt, dass bis er abgeschlossen ist.
Hierbei gilt:
- -api-server: Der FQDN des Knotens, auf dem die Plattform-API eingerichtet werden soll.
- -master-nodes - Der FQDN der Knoten, die mit dem Platform Agent eingerichtet und der Rolle der Kubernetes-Control Plane zugewiesen werden. Wenn mehrere Knoten vorhanden sind, muss es sich um eine durch Komma getrennte Liste handeln.
- -worker-nodes - Der FQDN der Knoten, die mit dem Platform Agent eingerichtet und der Kubernetes-Worker-Rolle zugewiesen werden. Wenn mehrere Knoten vorhanden sind, muss es sich um eine durch Komma getrennte Liste handeln.
- -environment-name: Wird zur Identifizierung der Umgebung verwendet.
- -name: Wird zum Festlegen des Namens des Kubernetes-Moduls verwendet.
Hinweis Bei der Ausführung dieses Befehls wird eine Eingabeaufforderung angezeigt, in der die an den Hosts vorzunehmenden Änderungen aufgeführt und zur Bestätigung aufgefordert werden. Um diese Eingabeaufforderung zu vermeiden, verwenden Sie die Option
--yes
. Mit dieser Option wird der Befehl olcnectl Provisioning so eingestellt, dass die Antwort auf eine Bestätigungsaufforderung bestätigt ist (yes).Beispielausgabe: Dies zeigt eine Beispielausgabe, wenn der Befehls-Switch
--yes
nicht verwendet wird:[oracle@ocne-operator ~]$ olcnectl provision --api-server ocne-operator --master-nodes ocne-control --worker-nodes ocne-worker --environment-name myenvironment --name mycluster INFO[31/10/22 11:31:35] Generating certificate authority INFO[31/10/22 11:31:35] Generating certificate for ocne-operator INFO[31/10/22 11:31:35] Generating certificate for ocne-control INFO[31/10/22 11:31:35] Generating certificate for ocne-worker INFO[31/10/22 11:31:35] Creating directory "/etc/olcne/certificates/" on ocne-operator INFO[31/10/22 11:31:35] Copying local file at "certificates/ca/ca.cert" to "/etc/olcne/certificates/ca.cert" on ocne-operator INFO[31/10/22 11:31:35] Copying local file at "certificates/ocne-operator/node.cert" to "/etc/olcne/certificates/node.cert" on ocne-operator INFO[31/10/22 11:31:35] Copying local file at "certificates/ocne-operator/node.key" to "/etc/olcne/certificates/node.key" on ocne-operator INFO[31/10/22 11:31:35] Creating directory "/etc/olcne/certificates/" on ocne-control The authenticity of host 'ocne-control (10.0.0.151)' can't be established. ECDSA key fingerprint is SHA256:NzPd6SBTbrcEgHoaYHY2bnDB357dfPysBXkJLuMVT98. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes INFO[31/10/22 11:31:49] Copying local file at "certificates/ca/ca.cert" to "/etc/olcne/certificates/ca.cert" on ocne-control INFO[31/10/22 11:31:49] Copying local file at "certificates/ocne-control/node.cert" to "/etc/olcne/certificates/node.cert" on ocne-control INFO[31/10/22 11:31:50] Copying local file at "certificates/ocne-control/node.key" to "/etc/olcne/certificates/node.key" on ocne-control INFO[31/10/22 11:31:50] Creating directory "/etc/olcne/certificates/" on ocne-worker The authenticity of host 'ocne-worker (10.0.0.152)' can't be established. ECDSA key fingerprint is SHA256:FV6mTb92EBzV2SRYsdDFfNVYhlJe5s9rWBTPWgAL6VU. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes INFO[31/10/22 11:31:53] Copying local file at "certificates/ca/ca.cert" to "/etc/olcne/certificates/ca.cert" on ocne-worker INFO[31/10/22 11:31:53] Copying local file at "certificates/ocne-worker/node.cert" to "/etc/olcne/certificates/node.cert" on ocne-worker INFO[31/10/22 11:31:54] Copying local file at "certificates/ocne-worker/node.key" to "/etc/olcne/certificates/node.key" on ocne-worker ? Apply api-server configuration on ocne-operator: * Install oracle-olcne-release * Enable olcne15 repo * Install API Server Add firewall port 8091/tcp Proceed? yes/no(default) yes ? Apply control-plane configuration on ocne-control: * Install oracle-olcne-release * Enable olcne15 repo * Configure firewall rule: Add interface cni0 to trusted zone Add ports: 8090/tcp 10250/tcp 10255/tcp 8472/udp 6443/tcp * Disable swap * Load br_netfilter module * Load Bridge Tunable Parameters: net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 * Set SELinux to permissive * Install and enable olcne-agent Proceed? yes/no(default) yes ? Apply worker configuration on ocne-worker: * Install oracle-olcne-release * Enable olcne15 repo * Configure firewall rule: Add interface cni0 to trusted zone Add ports: 8090/tcp 10250/tcp 10255/tcp 8472/udp * Disable swap * Load br_netfilter module * Load Bridge Tunable Parameters: net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 * Set SELinux to permissive * Install and enable olcne-agent Proceed? yes/no(default) yes INFO[31/10/22 11:41:48] Kubeconfig for instance "mycluster" in environment "myenvironment" written to kubeconfig.myenvironment.mycluster
-
(Auf ocne-operator) Die Oracle Cloud Native Environment-Plattform und die Kubernetes-Clustersoftware werden jetzt auf allen Knoten installiert und konfiguriert. Dies kann wie folgt bestätigt werden:
olcnectl module instances \ --api-server ocne-operator:8091 \ --environment-name myenvironment
Beispielausgabe:
[oracle@ocne-operator ~]$ olcnectl module instances --api-server ocne-operator:8091 --environment-name myenvironment INSTANCE MODULE STATE ocne-worker:8090 node installed mycluster kubernetes installed ocne-control:8090 node installed
-
(Auf ocne-operator) Um zu verhindern, dass das Flag
--api-server
in zukünftigen olcnectl-Befehlen verwendet werden muss, führen Sie den vorherigen Befehl erneut aus, indem Sie das Flag--update-config
hinzufügen.olcnectl module instances \ --api-server ocne-operator:8091 \ --environment-name myenvironment \ --update-config
-
(Unter ocne-operator) Nähere Informationen zum Deployment können mit dem Befehl olcnectl module report abgerufen werden.
olcnectl module report \ --environment-name myenvironment \ --name mycluster \ --children \ --format yaml
Beispielausgabe:
[oracle@ocne-operator ~]$ olcnectl module report --environment-name myenvironment --name mycluster --children --format yaml Environments: myenvironment: ModuleInstances: - Name: mycluster Properties: - Name: kubectl - Name: cloud-provider - Name: kubecfg Value: file exist ... - Name: kubecfg Value: file exist - Name: selinux Value: permissive - Name: swap Value: "off"
Hinweis: Sie können die Ausgabe ändern, um diese Ausgabe im Tabellenformat zurückzugeben. Diese erfordert jedoch, dass die Codierung der Terminalanwendung auf
UTF-8
gesetzt ist (Legen Sie im Menü der Terminalanwendung Folgendes fest:Terminal -> Set Encoding -> Unicode -> UTF-8
). Führen Sie dann den Befehl ohne die Option--format yaml
erneut aus.olcnectl module report \ --environment-name myenvironment \ --name mycluster \ --children
Beispielausgabe:
[oracle@ocne-operator ~]$ olcnectl module report --environment-name myenvironment --name mycluster --children ╭─────────────────────────────────────────────────────────────────────┬─────────────────────────╮ │ myenvironment │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ mycluster │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ Property │ Current Value │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ podnetworking │ running │ │ status_check │ healthy │ │ cloud-provider │ │ │ kubecfg │ file exist │ │ externalip-webhook │ uninstalled │ │ extra-node-operations │ │ │ extra-node-operations-update │ running │ │ kubectl │ │ │ master:ocne-control:8090 │ │ │ worker:ocne-worker:8090 │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ ocne-control:8090 │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ ... ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ networking │ active │ │ swap │ off │ │ kubecfg │ file exist │ ╰─────────────────────────────────────────────────────────────────────┴─────────────────────────╯
kubectl einrichten
-
(Unter ocne-control) Richten Sie den Befehl kubectl ein.
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=$HOME/.kube/config echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
-
(Unter ocne-control) Prüfen Sie, ob kubectl funktioniert.
kubectl get nodes
**Beispielausgabe:
[oracle@ocne-control ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control Ready control-plane 26m v1.24.5+1.el8 ocne-worker Ready <none> 25m v1.24.5+1.el8
oder
kubectl get pods --all-namespaces
Beispielausgabe:
[oracle@ocne-control ~]$ kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-664c775d6f-6gbcc 1/1 Running 0 26m kube-system coredns-664c775d6f-dvht7 1/1 Running 0 26m kube-system etcd-ocne-control 1/1 Running 0 27m kube-system kube-apiserver-ocne-control 1/1 Running 0 27m kube-system kube-controller-manager-ocne-control 1/1 Running 1 (27m ago) 27m kube-system kube-flannel-ds-cv9cl 1/1 Running 0 26m kube-system kube-flannel-ds-cxtz8 1/1 Running 1 (25m ago) 26m kube-system kube-proxy-cbm8s 1/1 Running 0 26m kube-system kube-proxy-rxkhb 1/1 Running 0 26m kube-system kube-scheduler-ocne-control 1/1 Running 0 27m
Dadurch wird bestätigt, dass Oracle Cloud Native Environment auf den drei Knoten eingerichtet und ausgeführt wird.
Weitere Informationen
- Oracle Cloud Native Environment - Dokumentation
- Oracle Cloud Native Environment - Schulung
- Oracle Linux Learning Subscription - Schulungsangebot
- Oracle Linux-Curriculum
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere Inhalte zu kostenlosen Lernangeboten im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Produktdokumentation finden Sie unter Oracle Help Center.
Use Quick Install to Deploy Oracle Cloud Native Environment
F74746-01
December 2022
Copyright © 2022, Oracle and/or its affiliates.