Hinweis:

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:

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:

Voraussetzungen

In diesem Abschnitt werden die Hostsysteme aufgeführt, die die Schritte in diesem Tutorial ausführen. Um erfolgreich zu sein, benötigen Sie:

Ü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.

  1. Ö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.

  1. (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)
    
  2. (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  
    
  3. (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
    
  4. (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)
    
  5. (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.

  6. (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
    
  7. (Auf allen Knoten) Starten Sie neu, und stellen Sie die Verbindung erneut her.

    sudo reboot
    
  8. (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>
    
  9. (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.

  1. (Unter ocne-operator) Installieren Sie das Releasepackage oracle-olcne-release-el8.

    sudo dnf -y install oracle-olcne-release-el8
    
  2. (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
    
  3. (Unter ocne-operator) Deaktivieren Sie alle vorherigen Repository-Versionen.

    sudo dnf config-manager --disable ol8_olcne14 ol8_olcne13 ol8_olcne12 ol8_developer
    
  4. (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:

  1. (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 
    
  2. (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
    
  3. (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
    
  4. (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

  1. (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
    
  2. (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

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.