Zurück zur Startseite

Nine Managed GKE

Nine Managed Google Kubernetes Engine (GKE) ist eine Plattform, die auf der Kubernetes Engine von Google basiert, erbracht in der Schweiz und mit zusätzlichen Dienstleistungen, die es Ihnen erlauben sich auf Ihre Anwendungsentwicklung zu konzentrieren.

Details

Der Betrieb von Containern in der Produktion ist nicht einfach. Es reicht nicht aus, nur einen Kubernetes-Cluster laufen zu haben, wenn es darum geht, Zuverlässigkeit und Ausfallsicherheit zu gewährleisten. Die Abdeckung dieser Komplexität im Auftrag des Kunden ist das Herzstück von Nine’s Managed GKE. Das Managed GKE-Angebot von Nine hilft Kunden, sich auf ihren eigentlichen Geschäftszweck zu konzentrieren, indem es ihnen ermöglicht, sich auf ihre Anwendungen zu konzentrieren und nicht auf die Dienste und Aufgaben die dafür notwendig und hilfreich sind.

Nutzung

Erste Schritte

Sie benötigen sowohl das Gcloud SDK als auch kubectl, um Ihren Kubernetes-Cluster nutzen zu können.

GCloud SDK

Kubectl

  • Nach der Installation und Initialisierung der Cloud SDK-Tools von Google sollten Sie kubectl zur direkten Kontrolle Ihres Clusters installieren
  • Sie können dies direkt mit dem gcloud-Tool tun, indem Sie den folgenden Befehl ausführen
gcloud components install kubectl

Weitere Informationen zur Installation von kubectl finden Sie in der Dokumentation.

Cluster login

Sobald die Installation von gcloud abgeschlossen ist, können Sie sich in Ihren Kubernetes cluster einloggen. Verwenden Sie dazu folgende Schritte:

# Projekt-ID finden
$ gcloud projects list
PROJECT_ID               NAME                     PROJECT_NUMBER
nine-example-478153      nine-example-478153      667903848739

# Das Projekt wechseln
$ gcloud config set project nine-example-478153

# Cluster finden
$ gcloud container clusters list
NAME             LOCATION      MASTER_VERSION  MASTER_IP      MACHINE_TYPE   NODE_VERSION   NUM_NODES  STATUS
example-cluster  europe-west6  1.12.8-gke.10   32.63.127.187  n1-standard-1  1.12.8-gke.10  6          RUNNING

# Einloggen in den Cluster
$ gcloud container clusters get-credentials example-cluster --region=europe-west6

# Mit kubectl kann jetzt mit dem Cluster gearbeitet werden
$ kubectl cluster-info
Kubernetes master is running at https://32.63.127.187

Authentifizierungsinformationen und Secrets

Informationen zu Anmeldedaten und Endpunkten für Ihren Cluster finden Sie auf runway.

Alternativ können Sie diese Informationen auch von einem sicheren GCP bucket abrufen. Ihre bucket URL hat das Format: gs://credentials-<projekt-nummer>. Sie können die Projekt Nummer auf runway finden oder via dem gcloud CLI.

# Um die Projekt Nummer zu finden
gcloud projects describe $(gcloud config get-value project) --format="value(projectNumber)"

# Um alle Secrets in Ihrem Bucket zu sehen
gsutil ls -r gs://credentials-<projekt-nummer>

# Um den Inhalt eines Secrets anzuzeigen
gsutil cat gs://credentials-<projekt-nummer>/<service>/info.json

# Vollständiges Beispiel mit parsing Json-Ausgabe (erfordert jq - https://stedolan.github.io/jq/)
gsutil cat gs://credentials-<projekt-nummer>/cloudsql/my-cluster-288835/info.json | jq .
{
  "data": {
    "credentials": {
      "address": "10.224.129.7",
      "database_version": "POSTGRES_9_6",
      "password": "1234",
      "username": "admin"
    }
  },
  "meta": {
    "description": "Instance: my-cluster-288835",
    "name": "Cloud SQL PostgreSQL",
    "support_url": "https://support.nine.ch/a/w0dWXF-xIFc"
  }
}

Nutzer

Für maximale Sicherheit kontrolliert Nine den Benutzerzugriff und die Authentifizierung zu Ihrem Cluster. Wenn Sie neue Benutzer hinzufügen möchten, müssen Sie dies bei support@nine.ch anfordern.
Neben dem Hinzufügen von Benutzern zu Ihrem Cluster bietet Nine eine einfache Möglichkeit, eine Liste von Standardbenutzern zu jedem erstellten Namespace hinzuzufügen. Wenn Sie diese Funktion bei der Anforderung einer Benutzererstellung oder -aktualisierung verwenden möchten, geben Sie bitte an, ob sie zur globalen Admin- oder Viewerliste hinzugefügt werden soll.

Namespace Berechtigungen

Standardmäßig wird die Person, die einen Namespace erstellt, als Administrator dieses Namespaces konfiguriert, so dass sie die anderen Namespace-Benutzer manuell konfigurieren kann. Alle zusätzlichen Benutzer, die Sie angefordert haben, um sie zu den globalen Admin- oder Viewer-Listen hinzuzufügen, werden ebenfalls zu jedem Namespace hinzugefügt. Wenn der Namespace von Helm/Tiller erstellt wird, wird Tiller auch als Administrator in diesem Namespace hinzugefügt, damit es die notwendigen Ressourcen konfigurieren kann. Um einen Namespace zu löschen muss der Benutzer Admin-Berechtigungen in diesem Namespace haben.

Rollen Berechtigungen in Namespaces

Falls Sie anderen Benutzern, welche keine globalen Rechte (admin oder viewer) besitzen, Zugriff auf Namespaces geben wollen, müssen Sie diese mittels sogenannten rolebindings an Cluster Rollen binden. Jeder GKE Cluster beinhaltet die folgenden vordefinierten Cluster Rollen, welche in Namespaces benutzt werden können:

  • cluster-admin
  • admin
  • edit
  • view

Die folgende Tabelle listet die Unterschiede dieser Cluster Rollen auf (wenn sie in rolebindings genutzt werden):

Name der Cluster Rolle Berechtigungen
cluster-admin Diese Rolle erlaubt vollen Zugriff auf alle Objekte in einem Namespace (inklusive dem Namespace Objekt selbst). Nutzer mit dieser Rolle können die Berechtigungen im Namespace ändern.
admin Erlaubt administrativen Zugriff im Namespace. Diese Rolle gibt lesenden- und schreibenden Zugriff auf die meisten Resourcen im Namespace (inklusive der Berechtigung neue Rollen und rolebindings zu erstellen bzw. zu ändern). Diese Rolle erlaubt keinen schreibenden Zugriff auf Resourcen Quotas oder auf das Namespace Objekt selbst. Aufgrund der genannten Einschränkungen kann diese Rolle keine Berechtigungen im Namespace selbst ändern.
edit Erlaubt lesenden- und schreibenden Zugriff auf die meisten Resourcen im Namespace. Es gelten die gleichen Einschränkungen wie die der admin Rolle, jedoch wird zusätzlich kein Zugriff auf Rollen oder rolebindings gewährt.
view Erlaubt nur lesenden Zugriff auf die meisten Resourcen im Namespace. Es wird kein Zugriff auf Rollen oder rolebindings gewährt. Weiterhin ist kein Zugriff auf secrets im Namespace erlaubt.

Berechtigungen via Rollen an andere Benutzer zuweisen

Um anderen Benutzern eine der vordefinierten Cluster Rollen zu zuweisen, können Sie die kubectl Applikation nutzen. Hier ein paar Beispiele:

# creating a namespace admin with full privileges
kubectl create rolebinding custom-admins-full-privileges --clusterrole=cluster-admin --user=<name>@ninegcp.ch [--user ...] --namespace=<your namespace>

# creating a normal namespace admin
kubectl create rolebinding custom-admins --clusterrole=admin --user=<name>@ninegcp.ch [--user ...] --namespace=<your namespace>

# granting normal edit permissions
kubectl create rolebinding custom-editors --clusterrole=edit --user=<name>@ninegcp.ch [--user ...] --namespace=<your namespace>

# granting view only permissions
kubectl create rolebinding custom-viewers --clusterrole=view --user=<name>@ninegcp.ch [--user ...] --namespace=<your namespace>

Um die erstellten rolebindings nachträglich zu verändern kann der Befehl kubectl edit rolebinding <rolebinding name> -n <your namespace> benutzt werden.

Node Pools

Ihr Cluster ist mit Gruppen von Maschinen konfiguriert, die als Node-Pools bezeichnet werden. Ein Node-Pool besteht aus 1-n Maschinen des gleichen GCP-Instanztyps. Der von Nine erstellte Standard-Node-Pool teilt die 3 Nodes Ihres Clusters auf die 3 Verfügbarkeitszonen der Schweizer Infrastruktur von GCP auf, um sicherzustellen, dass Ihr Setup hochverfügbar ist.

Beim Aktualisieren oder Ändern Ihrer Cluster-Konfiguration ist es möglich, Änderungen an Node-Pools auf drei verschiedene Arten anzufordern:

Erweiterung des existierenden Node-Pools

Es ist möglich, einfach weitere Maschinen desselben Typs zu Ihrem bestehenden Node-Pool hinzuzufügen.

Erstellung eines neuen Node-Pools

Es ist möglich, einen komplett neuen Node-Pool für Ihren Cluster anzulegen. Wenn Sie dies anfordern, wird Ihr neuer Node-Pool eingerichtet, und dann werden Ihre bestehenden Nodes geleert, wobei die bestehenden Bereitstellungen in den neuen Pool verschoben werden.

Erstellung eines zusätzlichen Node-Pools

Wenn Sie zusätzliche Rechenleistung benötigen, die nicht dem gleichen Maschinentyp entspricht wie die vorhandenen Nodes, ist es möglich, Ihrem Cluster einen weiteren Node-Pool hinzuzufügen. Beim Hinzufügen eines zusätzlichen Node-Pools wird empfohlen, mindestens 3 Nodes zu haben, damit diese über alle möglichen Verfügbarkeitszonen verteilt werden können.

SLA

Nine bietet zwei SLA-Optionen für Ihren von Nine verwalteten GKE-Cluster, die als zusätzlicher Service verkauft werden. Weitere Details zu den SLA-Bedingungen finden Sie auf unserer Website.

Weitere Informationen

Für weiterführende Informationen wenden Sie sich bitte an sales@nine.ch
Für technische Unterstützung wenden Sie sich bitte an support@nine.ch

Haben Sie die gewünschten Informationen nicht gefunden?

Kontaktieren Sie unseren Support:

+41 44 637 40 40 Support Portal support@nine.ch