X

Willkommen bei Themen rund um Oracle Technologien, die on-premises oder in der Oracle Public Cloud Verwendung finden.

Oracle Kubernetes Engine in der Oracle Cloud Infrastructure

Marcus Schroeder
Master Principal Sales Consultant

Kubernetes ist ein Open-Source-Container-Orchestrierungs-Tool ursprünglich entwickelt von Google und anschließend gespendet an die Cloud Native Computing Foundation, in der u.a. auch Oracle Mitglied ist. Kubernetes oder abgekürzt K8s wird für die Automatisierung von Bereitstellung, Skalierung und Management von Container-Applikationen verwendet. Die Installation, Setup und Pflege von K8s setzt einen gewissen Aufwand voraus. Grund hierfür ist die Verwendung verschiedener Compute-Knoten, die das K8s-Cluster darstellen. Auf jeden dieser Knoten-Hosts werden von K8s sogenannte Pods bereitgestellt. Ein Pod ist eine Gruppe von ein oder mehreren Container (zum Beispiel Docker-Container), die gemeinsame Ressourcen verwenden, wie u.a Netzwerk und Storage. Ein Pod stellt einen applikationsspezifischen, logischen Host dar, der verschiedene eng verzahnte Applikations-Container enthält.

Die Orchestrierung der zu verwendenden Hosts und Zusatzkomponenten, wie zum Beispiel Load Balancer, erfordert einen hohen durchgängigen Automatisierungsgrad. Für diese Anforderungen bietet sich die K8s Installation in einer Cloud-Umgebung an. In dem folgenden Artikel wird die Installation, Konfiguration und Applikations-Bereitstellung eines K8s-Clusters in der Oracle Cloud Infrastructure vorgestellt. Die Bereitstellung erfolgt als "fully managed" Service und ist dank der Cloud spezifischen Automatisierung zügig durchgeführt.

Dieser Lab-Guide ist sehr ausführlich, er ist eine "Schritt für Schritt"-Anleitung und ist auch für Themen-Neulinge nachvollziehbar. Dieses Beispiel können Sie in einem Oracle Cloud Infrastructure Tenant nachvollziehen. Sollte Sie noch keinen Tenant/Account besitzen können Sie hier einen 300€ free Trial starten. Wenn Sie bereits einen Tenant/Account besitzen erfolgt die Abrechnung des K8s-Services ausschließlich über die verwendeten Compute/Storage/Netzwerk-Ressoucen es wird keine extra K8s-Service-Gebühr fällig.

Die Bereitstellung und Nutzung des Services erfolgt in folgenden Kapiteln:

  1. Einloggen in die Service-Konsole
  2. Vorbereiten der Cluster Bereitstellung
  3. Vorbereiten des Netzwerks
  4. Erstellung des Clusters
  5. Zugriff auf das Cluster
  6. Starten des K8s-Dashboards
  7. Bereitstellen einer Cluster-Applikation
  8. Fazit
  9. Wichtige Links

In dem hier gezeigten Beispiel wird ein Cluster mit drei virtualisierten Oracle Cloud Infrastruture Compute Instanzen und zwei Load Balancer-Cloud-Services verwendet.

1. Einloggen in die Service-Konsole (ca. 5 Minute)

Um sich auf der Konsole einzuloggen benötigen Sie:

  • Benutzername, Passwort, Tenant-Namen
  • OCI-Url (je nach verwendeter Region)
  • Kompatiblen Browser (IE, Chrome, Firefox)

WICHTIG! Für den K8s-Cluster-Service benötigen Sie einen dedizierten OCI-Benutzer, diesen können Sie anlegen bzw.  Kontrollieren, in dem Sie im Seitenleisten-Menü auf den Punkt Identity -> User gehen, der zu verwendende Benutzer muss dort angelegt sein/werden.

Bild 1: Dedizierte OCI-Benutzer

2. Vorbeiten der Cluster Bereitstellung (ca. 5 Minuten)

Nachdem Sie sich in die Service-Konsole eingeloggt haben müssen Sie den zu verwendenden Benutzer mit ausreichenden Rechten ausstatten. Hintergrund: In der Oracle Cloud Infrastructure gilt das "Erstmal-Alles-Verboten-Prinzip", d.h. jede neue Ressource die Sie anlegen besitzt aus Sicherheitsgründen erst mal keine Rechte, bzw. alle Ports sind gesperrt. Um den K8s die benötigten Rechte zu übertragen Navigieren Sie auf Identity -> Policies im linken Seitenleisten-Menü und erstellen Sie die neue Policy.

TIP! Die Policy gilt immer nur für das aktuelle Compartment, deshalb stellen Sie sicher das Sie die Policy im "Root" Compartment erstellen, dann ist Sie für alle darunter liegenden Compartments gültig.

Bild 2: Rechtevergabe für die Erstellung eines K8s-Clusters

Kleine Exkursion: Ein Compartment ist eine Verwaltungseinheit von Ressourcen in der Oracle Cloud Infrastructure, sie können so bestimmte Ressourcen nur einer bestimmten Gruppe von Benutzern zur Verfügung stellen.

Die neue Policy nennen Sie in diesem Beispiel "oke-policy", fügen eine Beschreibung hinzu und setzten unter Policy Versioning den Schalter "Keep Policy Current", anschließend setzten sie das Policy-Statement (Bitte ändern Sie nichts am Policy-Statement ):

allow service OKE to manage all-resources in tenancy

 

Bild 3: Setzten der "oke-policy"

Diese Policy benötigen Sie, damit der Kubernetes Service (in diesem Fall steht OKE für Oracle Kubernetes Engine) andere Ressourcen nutzen kann. Zum Beispiel, damit Kubernetes selbständig ein Load Balancer-Service anlegen kann, wenn eine Applikation bereitgestellt wird. Zum Abschluss drücken Sie "Create".

3. Vorbereiten des Netzwerks (ca. 10 Minuten)

Um das K8s-Cluster zu Installieren werden eine Reihe von Netzwerkkomponenten benötigt, die manuell angelegt werden müssen. Das manuelle Anlegen ermöglicht eine hohe Flexibilität bezogen auf die gewünschte K8s-Architektur. In unserem Fall verteilen wir das K8s-Cluster auf drei virtuelle Hosts in drei verschiedenen, unabhängigen Verfügbarkeitsdomänen (Availability Domains) innerhalb einer Region. Dafür benötigen wird:

  • Ein Virtuelles Cloud Network (VCN) - Das K8s-Cluster läuft in einem eigenem, abgeschotteten Cloud-Netzwerk.
  • Drei Worker-Node-Subnets - Die Worker-Nodes der K8s-Cluster werden auf drei Hosts verteilt und jeder Hosts hat sein eigenes Sub-Netzwerk in je einer Availability Domain (AD).
  • Zwei Load Balancer-Subnets - Für den hochverfügbaren Zugriff auf das K8s-Cluster werden zwei Load Balancer-Subnetze benötigt. Die Load Balancer werden in der Oracle Container Engine automatisch vom K8s-Cluster erzeugt. Bei den Load Balancern handelt es sich um einen Load Balancer-Service, d.h. es werden keine Software-Load Balancer auf virtuellen Maschinen verwendet, sondern ein "echter" Load Balancer Service.

I. Anlegen des Virtual Cloud Networks, Internet Gateways und Routing Tabellen

Für das Virtual Cloud Network (VCN) legen wir ein leeres Netzwerk an, d.h. wir bestimmen nur den CIDR-Block und den Namen. Die restliche Konfiguration machen wir manuell.

Dafür loggen wir uns in den Oracle Cloud Infrastructure Account ein, und navigieren im linken Seitennavigationsmenü auf den Punkt Networking -> Virtual Cloud Networks

  1. Um das VCN zu erstellen wählen wir im ersten Schritt das gewünschte Compartment aus
  2. Wählen einen aussagekräftigen Namen wie zum Beispiel "oke-vcn"
  3. Dann wählen wir im Bereich Select "Create Virtual Cloud Network Only"
  4. für den CIDR Block wählen wir den Bereich 172.16.0.0/16
  5. Anschließend lassen wir alle anderen Einstellungen auf Default und drücken Create Virtual Cloud Network

Bild 4: Anlegen eines Virtuellen Cloud Networks

Um aus dem Internet auf das K8s-Cluster zugreifen zu können, wird ein Internet Gateway benötigt. Um es zu erzeugen wählen wir das eben erzeugte "oke-vcn" aus und klicken auf der linken Seite unter Ressourcen auf Internet Gateways.

  1. Wir wählen wieder das gewünschte Compartment aus
  2. Als Name tragen wir gateway-0 ein
  3. Im letzten Schritt klicken wir Create Internet Gateway

Bild 5: Anlegen eines Internet Gateways

In der Oracle Cloud Infrastructure gilt das Prinzip "Security First", daher muss nach der Erstellung des Internet Gateways, die Routing-Regeln erstellt werden. Hierfür wählen wir im erstellten VCN im linken Bereich den Link Routing Table aus und klicken auf Create Route Table.

  1. Wir wählen wieder das gewünschte Compartment aus
  2. Als Name tragen wir routetable-0 ein
  3. In den Route Rules tragen wir folgendes ein:
    • Target Type: Internet Gateway
    • Destinaction CIDR Block 0.0.0.0/0
    • Compartment (unser gewähltes Compartment)
    • Target Internet Gateway: gateway-0
  4. Anschließend drücken wir Create Route Table und den Route Table zu erstellen

Bild 6: Erstellen eines Routing Tables

Nach der Erstellung des VCNs, des Internet-Gateways und des dazugehörigen Routing-Table müssen eine Reihe von Security Lists erstellt werden. Security Lists bieten eine virtuelle Firewall für eine Instanz mit Ein- und Ausgangsregeln, die die ein- und ausgehenden Datenverkehrstypen angeben. Jede Security List wird auf Instanz-Ebene angewendet. Sie konfigurieren jedoch Ihre Security List auf Subnetzebene, was bedeutet, dass alle Instanzen in einem bestimmten Subnetz denselben Regeln unterliegen.

Für die Erstellung des K8s-Clusters benötigen Sie eine Security List für die Worker Nodes des Clusters mit folgenden Regeln:

  1. Wir wählen wieder das gewünschte Compartment aus
  2. Als Security List Name tragen wir sl-workers ein
  3. Ingress Rule
    • Source CIDR 172.16.10.0/24
    • IP Protocol: All Protocols
    • Anschließend klicken sie auf Add Rule
  4. Ingress Rule
    • Source CIDR 172.16.11.0/24
    • IP Protocol: All Protocols
    • Anschließend klicken sie auf Add Rule
  5. Ingress Rule
    • Source CIDR 172.16.12.0/24
    • IP Protocol: All Protocols
    • Anschließend klicken sie auf Add Rule
  6. Ingress Rule
    • Source CIDR 0.0.0.0/0
    • IP Protocol: ICMP
    • Type and Code: 3,4
    • Anschließend klicken sie auf Add Rule
  7. Ingress Rule
    • Source CIDR 130.35.0.0/16
    • IP Protocol: TCP
    • Destination Port Range: 22
    • Anschließend klicken sie auf Add Rule
  8. Ingress Rule
    • Source CIDR 138.1.0.0/17
    • IP Protocol: TCP
    • Destination Port Range: 22
    • Anschließend klicken sie auf Add Rule
  9. Ingress Rule
    • Source CIDR 0.0.0.0/0
    • IP Protocol: TCP
    • Destination Port Range: 22
    • Anschließend klicken sie auf Add Rule
  10. Egress Rule
    • Source CIDR 0.0.0.0/0
    • IP Protocol: All Protocols
    • Anschließend klicken sie auf Add Rule
  11. Anschließend klicken sie auf Create Security List

Bild 7: Zusammenfassung der Regeln der Security List für die Worker-Nodes

Eine weitere Security List wird für die beiden Load Balancer Subnetze benötigt, die Security Listen haben folgenden Regel:
  1. Wir wählen wieder das gewünschte Compartment aus
  2. Als Security List Name tragen wir sl-loadbalancer ein
  3. Ingress Rule
    • Source CIDR 0.0.0.0/0
    • IP Protocol: All Protocols
    • Anschließend klicken sie auf Add Rule
  4. Alle Egress Rules müssen entfernt werden.
  5. Anschließend klicken sie auf Create Security List

Bild 8: Zusammenfassung der Regeln der Security List für die Load Balancer-Nodes

II. Anlegen der Subnetze

Wie zuvor beschrieben werden drei Subnetze für die Worker-Nodes angelegt und zwei für die Load Balancer. Zum Anlegen der Subnetze für die Worker-Nodes gehen Sie folgendermaßen vor:
 
Klicken Sie auf Subnets unter den Resources auf der linken Seite der VCN-Seite
Dann klicken Sie für das Erstellen des ersten Subnetzes auf Create Subnet
  1. Als Name tragen wir workers-1 ein
  2. Als Availability Domain wählen wir AD-1 aus
  3. CIDR Block: 172.16.10.0/24
  4. Route Table: routetable-0
  5. Subnet Access: Public Subnet
  6. DHCP Options: Default DHCP Options
  7. Security Lists: sl-workers
  8. Anschließend klicken sie auf Create.
Dann klicken Sie für das Erstellen des zweiten Subnetzes auf Create Subnet
  1. Als Name tragen wir workers-2 ein
  2. Als Availability Domain wählen wir AD-2 aus
  3. CIDR Block: 172.16.11.0/24
  4. Route Table: routetable-0
  5. Subnet Access: Public Subnet
  6. DHCP Options: Default DHCP Options
  7. Security Lists: sl-workers
  8. Anschließend klicken sie auf Create.
Dann klicken Sie für das Erstellen des dritten Subnetzes auf Create Subnet
  1. Als Name tragen wir workers-3 ein
  2. Als Availability Domain wählen wir AD-3 aus
  3. CIDR Block: 172.16.12.0/24
  4. Route Table: routetable-0
  5. Subnet Access: Public Subnet
  6. DHCP Options: Default DHCP Options
  7. Security Lists: sl-workers
  8. Anschließend klicken sie auf Create.

Bild 9: Zusammenfassung der Worker-Node-Subnets

Zum Anlegen der Subnetze für die Load Balancer gehen Sie folgendermaßen vor:
Klicken Sie auf Subnets unter den Resources auf der linken Seite der VCN-Seite
Dann klicken Sie für das Erstellen des ersten Subnetzes auf Create Subnet
  1. Als Name tragen wir loadbalancer-1 ein
  2. Als Availability Domain wählen wir AD-1 aus
  3. CIDR Block: 172.16.20.0/24
  4. Route Table: routetable-0
  5. Subnet Access: Public Subnet
  6. DHCP Options: Default DHCP Options
  7. Security Lists:sl-loadbalancers
  8. Anschließend klicken sie auf Create.
Dann klicken Sie für das Erstellen des zweiten Subnetzes auf Create Subnet
  1. Als Name tragen wir loadbalancer-2 ein
  2. Als Availability Domain wählen wir AD-2 aus
  3. CIDR Block: 172.16.21.0/24
  4. Route Table: routetable-0
  5. Subnet Access: Public Subnet
  6. DHCP Options: Default DHCP Options
  7. Security Lists: sl-loadbalancers
  8. Anschließend klicken sie auf Create.

Bild 10: Zusammenfassung der Load Balancer-Subnets 

4. Erstellung des Clusters (ca. 5 Minuten)

Im Vergleich zum Erstellen der Netzwerkkomponenten und Security-Regeln ist das Erzeugen des K8s-Cluster in wenigen Schritten durchzuführen. Nachdem das Cluster definiert wurde, geben Sie in der Regel Details für verschiedene Node-Pools im Cluster an (Profile, Formen, Anzahl der CPUs in den Arbeitsknoten, Arbeitsspeicher etc.). Sie können diese Definitionen während der Erstellung oder zu einem späteren Zeitpunkt angeben.

Um das K8s-Cluster zu erzeugen:

  1. Öffnen Sie das Seitennavigationsmenü und wählen "Developer Services" -> Container Clusters
  2. Wählen Sie wieder das gewünschte Compartment aus
  3. Klicken Sie auf Create Cluster und tragen Sie folgende Informationen ein:
    • Name des Clusters zum Beispiel "oke-cluster"
    • Tragen Sie die aktuelle Version 1.10.3 des Clusters ein
    • Wählen sie das vorher erstellte VCN "oke-vcn"
    • Verwenden Sie die vorher erstellten Kubernetes Service LB Subnets (loadbalancer-1 und loadbalancer-2)
    • Für den Kubernetes Service CIDR Block können wir 10.96.0.0/16 eintragen
    • der Pods CIDR Block ist 10.244.0.0/16
    • bei die Additional Add On's können Sie die Default Werte lassen

Bild 11: Erzeugen des Oracle Kubernetes Engine Clusters

  1. Anschließend klicken Sie Add a Node Pool um die virtuellen Hosts zum K8s-Cluster hinzuzufügen.
    • Für den Namen verwenden Sie einen uniquen Namen wie zum Beispiel "oke-pool"
    • Die Version sollte der vorher ausgewählten entsprechen, in diesem Fall 1.10.3
    • Für das Image verwenden Sie bitte Oracle-Linux-7.4
    • In diesem Fall verwenden wie den Shape VM.Standard1.2
    • Unsere im vorherigen Schritt erstellte Subnets können wir hier einfügen (worker-1, worker-2, worker-3)
    • Die Quantitiy Per Subnet gibt an, wie viele in diesem Fall virtuelle Hosts in einem Subnetz verwendet werden und wir verwenden 1 Host
    • Der Public SSH Key kann dazu verwendet werden, sich auf die Hosts zu verbinden. Man kann dieses Feld auch leer lassen bzw. zu einem späteren Zeitpunkt einen SSH Key auf die Instanz übertragen.
  2. Im letzten Schritt klicken Sie Create, um den K8s-Cluster zu erzeugen.

Bild 12: Erzeugen der Oracle Kubernetes Engine Node Pools

Anschließend beginnt die Installation und Konfiguration des K8s-Clusters, dieser Vorgang dauert einige Minuten und wird durch den Status "Creating" angezeigt. Wechselt die Anzeige auf Active, können Sie das Cluster verwenden.

Während der Erzeugung des Cluster wird ein sogenanntes kubeconfig File erzeugt, dieses wir anschließend dazu verwendet sich mit dem K8s-Cluster zu verbinden. Der externe Zugriff auf das Cluster ist das Thema des nächsten Kapitels.

5. Zugriff auf das Cluster (ca. 20 Minuten)

Um das K8s-Cluster von Ihrem Client zu administrieren benötigen Sie folgende Voraussetzungen:

  1. kubectl - Dies ist ein Programm zur konsolengestützen Administration eines K8s-Clusters. Die Dokumentation für die Installation finden Sie hier.
  2. Oracle Cloud Infrastructure CLI - Ein Command-Line-Tool zur Administration der Oracle Cloud Infrastructure (OCI). Die Installationsdokumentation finden Sie hier, die Konfigurationsdokumentation hier.
  3. Einen Public Key für den API-Benutzer - Zur sicheren Kommunikation zwischen Ihren Client und der verwendeten Cloud-API

Um den Public-Key für die API in die OCI hochzuladen klicken Sie in der oberen, rechten Ecke auf den Benutzernamen -> User Settings und anschließend auf Add Public Key. Kopieren Sie anschließend den Public-Key in das Fenster und klicken Sie Add. Wenn der Key ordnungsgemäß hochgeladen wurde, sehen Sie den Fingerprint des Keys (zum Beispiel 7f:af:25:20:66:01:2c:8d:5.....).

Bild 13: Erzeugen des API-Keys

Um auf das Cluster mittels kubectl zugreifen zu können benötigen Sie eine Autorisierung und Authentifizierung. Dieses wird durch das kubeconfig File ermöglicht. Dieses File enthält alle benötigten Informationen, um eine sichere Verbindung zwischen dem kubectl-Client und dem K8s-Cluster zu gewährleisten. Um das File vom Cluster runter laden zu können, müssen Sie erst das get-kubeconfig.sh File herunterladen. In diesem File sind alle Informationen, wie zum Beispiel Endpoints, Identifikationsparameter etc. für das erstellte K8s-Cluster enthalten. Um das File herunterzuladen gehen Sie auf das linke Seitennavigationsmenü und wählen unter der Rubrik Developer Service -> Container Clusters. In der Liste der erstellten K8s-Cluster wählen sie das "oke-cluster" und klicken im oberen Bereich auf den Knopf Access Kubeconfig, in dem nun erscheinenden Pop-Up-Fenster, können Sie das get-kubeconfig.sh File herunterladen.

WICHTIG! Bei meinem Versuch das File herunterzuladen hat es nur mit Chrome Browser unter MacOS funktioniert. Safari und Firefox konnten das File nicht herunterladen.

Bild 14: Zugriff auf das kubeconfig-File

Der Dialog in dem Pop-Up-Fenster, unter dem Download-Buttonanz kann dazu verwendet werden das kubectl zu starten. Der Dialog enthält folgende Befehle, die Sie in einem Linux/Unix-Terminal-Fenster ausführen können:

# Machen Sie das Script get-kubeconfig.sh ausführbar
chmod +x ~/get-kubeconfig.sh

# Endpunkt der Container-Engine (In diesem Fall die Availability Domain 1, in der Region Ashburn US)
export ENDPOINT=containerengine.us-ashburn-1.oraclecloud.com

# Herunterladen des kubeconfig Files
~/get-kubeconfig.sh ocid1.cluster.oc1.iad.aaaaaaaaafsgcylgmi4tgnzuhaztoojrmm3d******** > ~/kubeconfig
 
# Setzen der KUBECONFIG-Umgebungsvariable und Abfrage der verschiedenen K8s-Cluster-Knoten mittels kubectl
export KUBECONFIG=~/kubeconfig
kubectl get nodes

Anschließend werden Ihnen die Namen/IP-Adressen, der Status, Role, Age und Version der K8s-Cluster-Knoten angezeigt.

6. Starten des K8s-Dashboards (ca. 5 Minuten)

Das K8s-Dashboard ist ein webbasierendes Benutzer-Interface das als Alternative zu kubectl verwendet werden kann. Das Dashboard kann dazu verwendet werden Container-Applikation bereit zu stellen, Monitoring, Troubleshooting und administrative Aufgaben zu übernehmen. Bei dieser Übung wird die Ausgabe des Dashboards mittels Proxy auf den verwendeten Client umgeleitet, dies ist mit wenigen einfachen Schritten durchzuführen.

  • Öffnen Sie ein Terminal-Fenster
  • Setzen Sie die Umgebungsvariable mittels export KUBECONFIG=~/kubeconfig
  • Starten Sie den kubectl Proxy-Server mit folgenden Befehl kubectl proxy
  • Anschließend können Sie in einem Webbrowser ihrer Wahl mit der URL http://127.0.0.1:8001/ui das K8s-Cluster-Dashboard aufrufen.

Bild 15: Kubernetes Dashboard

Wenn Sie die Dashboard-Seite aufrufen, werden Sie aufgefordert entweder ein Token einzugeben oder das kubectl File zu verwenden. Es wird die zweite Variante empfohlen: Wählen Sie kubeconfig aus und öffnen Sie den lokalen Datei-Browser in dem Sie auf choose kubeconfig file klicken. Wählen Sie die kubeconfig aus und klicken Sie Sign In.

In diesem Artikel wird nicht weiter auf die Einzelheiten des K8s-Dashboard eingegangen, die Funktionalitäten sind ausreichend Dokumentiert und es gibt viele Artikel, die sich mit dem Dashboard auseinandersetzten. Ein erster Anlaufpunkt ist die Kubernetes-Dokumentation hier.

7. Bereitstellen einer Cluster-Applikation (ca. 10 Minuten)

In dem letzten Kapitel beschäftigen wir uns mit der Bereitsellung einer Container-Applikation in das K8s-Cluster. Wir verwenden den beliebten Apache-Web-Server oder kurz httpd. Um den Web-Server auf dem Cluster bereitzustellen, gehen wir wieder auf die Kommandozeile. Der Web-Server wird folgendermaßen bereitgestellt:

  • Setzen der Kubeconfig Variable mittels export KUBECONFIG=~/kubeconfig
  • Herunterladen und Stagen der ngix Web-Servers mit drei Replikas auf drei verschiedenen Knoten.
  • Erstellen der Apache-Web-Server-Applikation, inklusive automatischer Bereitstellung des Load Balancer-Services

Nachdem wir die Umgebungsvariable KUBECONFIG gesetzt haben, laden wir den Apache-Web-Server herunter und verteilen diesen auf drei Cluster-Knoten:

kubectl run httpd --image=httpd --port=80 --replicas=3

Das Deployment kann man sich mit dem folgenden Befehl anzeigen lassen:

kubectl get deployments

Das Deployment ist in diesem Zustand jedoch noch nicht mit externer IP sichtbar, dafür muss das Deployment als Service definiert und mit dem Load Balancer verbunden werden:

kubectl expose deployment httpd --port=80 --type=LoadBalancer

Anschließend ist der Service extern sichtbar und man kann mit der öffentlichen IP die Startseite des Web-Server sehen. Die öffentliche IP bekommt man durch den Befehl:

kubectl get services

Oder auch in der OCI-GUI in dem Bereich Load Balancer. Dafür gehe sie auf das linke Seitenleistennavigationsmenü und wählen Netzworking -> Load Balancers, die öffentlich IP steht in der Übersicht des Load Balancer Service.

Wenn Sie nun die öffentliche IP in einem Browser eingeben, erscheint die Apache-Startseite mit dem Schriftzug "It works!" Der Load Balancer Service des Oracle Cloud Infrastructur Services ist fest mit dem K8s-Cluster integriert, d.h. der Load Balancer wird mit dem expose Befehl automatisch erzeugt und auch anschließend beim Löschen des Services wieder aufgeräumt. Übrigens: Beim Load Balancer Service handelt es sich nicht um eine VM mit einem installierten Software-Load Balancer, sondern ein "echter" Load Balancer-Service, der auf Netzwerk-Hardware beruht.

Bild 16: Apache Default-Startseite = Es funktioniert!

Wenn Sie jetzt das Cluster wieder aufräumen wollen, in dem Sie den Service löschen verwenden Sie folgende zwei Befehle im Terminal:

kubectl delete service httpd

kubectl delete deployments httpd

Anschließend haben Sie wieder einen K8s-Cluster ohne Deployments.

Sie können sich die Deployments natürlich auch im K8s-Dashboard ansehen.

8. Fazit

Das Erstellen eines Full-Managed-Kubernetes-Cluster in der Oracle Cloud Infrastructure setzte einige Schritte voraus. Diese Schritte können natürlich auch in Skripten implementiert werden. Eine Beispiel-Form wäre die Erstellung mittels Terraform. Die meisten Konfigurationen betreffen allerdings die Sicherheit des Systems und es wäre unverantwortlich irgendwelche Ports "per Default" zu öffnen, nur um die Demo-Bereitstellung zu beschleunigen. Die Installation und Konfiguration von Kubernetes auf Oracle Cloud Infrastructure beruht auf dem Open-Source-Produkt und entspricht der frei verfügbaren Version, daher basiert die Abrechnung des Services auch ausschließlich auf den verwendeten IaaS-Komponenten und es werden keine weiteren Gebühren bezüglich Kubernetes-Nutzung erhoben. D.h. es ist kein Unterschied ob Sie einen Oracle Cloud Core (OCPU) nur mit einem Betriebssystem  oder mit der Oracle Kubernetes Engine nutzen, die Kosten sind gleich. Der Vorteil bei der Nutzung des Kubernetes Services auf der Oracle Cloud Infrastructure (OCI) ist die Flexibilität bezüglich Knoten-Maschinen (von 1 OCPU bis einem ganzen Bare-Metal-Servers) und die optimierte Performance, da die OCI ohne Over-Provisioning implementiert wurde und Sie dedizierte Netzwerkbandbreiten und Serverkapazitäten verwenden.

9. Wichtige Links

Kubernetes - Offizielle Dokumentation

Oracle Cloud Infrastructure Dokumentation - Kubernetes Engine Dokumentation

Kubectl - Howto

Erstellung eines Private/Public-Key-Paares - Howto

Oracle Trial Account - Einstiegsseite

 

 

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.