50 Übung 5: Spinning up a Cluster on Your Favorite Cloud Provider

50.1 Aufgabenbeschreibung

In dieser Übung werden Sie lernen, wie man einen Kubernetes-Cluster auf einem Cloud-Provider Ihrer Wahl erstellt. Wir werden Amazon Web Services (AWS), Google Cloud Platform (GCP) und Microsoft Azure als Beispiele verwenden. Diese Übung umfasst die folgenden Schritte:

  1. Einrichtung der benötigten Cloud-Ressourcen.
  2. Erstellen eines Kubernetes-Clusters mithilfe der Cloud-Provider-spezifischen Tools.
  3. Überprüfen des Cluster-Status und Zugriffs.

50.2 Hinweise

50.3 Abschnitt 1: Amazon Web Services (AWS)

50.3.1 Vorbereitung

Installieren Sie AWS CLI:

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

Konfigurieren Sie AWS CLI:

aws configure

50.3.2 Cluster-Erstellung mit EKS

Installieren Sie eksctl:

curl -s --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin

Erstellen Sie einen EKS-Cluster:

eksctl create cluster --name my-eks-cluster --version 1.21 --region us-west-2 --nodegroup-name linux-nodes --node-type t2.micro --nodes 3 --nodes-min 1 --nodes-max 4 --managed

50.4 Abschnitt 2: Google Cloud Platform (GCP)

50.4.1 Vorbereitung

Installieren Sie gcloud CLI:

curl https://sdk.cloud.google.com | bash
exec -l $SHELL
gcloud init

50.4.2 Cluster-Erstellung mit GKE

Authentifizieren Sie sich und wählen Sie Ihr Projekt:

gcloud auth login
gcloud config set project [PROJECT_ID]

Erstellen Sie einen GKE-Cluster:

gcloud container clusters create my-gke-cluster --num-nodes=3 --zone=us-central1-a

50.5 Abschnitt 3: Microsoft Azure

50.5.1 Vorbereitung

Installieren Sie Azure CLI:

curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

Authentifizieren Sie sich:

az login

50.5.2 Cluster-Erstellung mit AKS

Erstellen Sie eine Ressourcengruppe:

az group create --name myResourceGroup --location eastus

Erstellen Sie einen AKS-Cluster:

az aks create --resource-group myResourceGroup --name my-aks-cluster --node-count 3 --enable-addons monitoring --generate-ssh-keys

Konfigurieren Sie kubectl, um auf den AKS-Cluster zuzugreifen:

az aks get-credentials --resource-group myResourceGroup --name my-aks-cluster

50.6 Überprüfung des Cluster-Status

Unabhängig vom gewählten Cloud-Provider, überprüfen Sie den Status Ihres Clusters mit den folgenden Befehlen:

Überprüfen Sie die Nodes:

kubectl get nodes

Überprüfen Sie die Pods im kube-system Namespace:

kubectl get pods -n kube-system

Erstellen Sie ein einfaches Nginx-Deployment:

Deployment-Datei nginx-deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

Deployment anwenden:

kubectl apply -f nginx-deployment.yaml

Deployment-Status überprüfen:

kubectl get deployments
kubectl get pods
kubectl get services

In dieser Übung haben Sie gelernt, wie man einen Kubernetes-Cluster auf verschiedenen Cloud-Providern erstellt und konfiguriert. Diese Fähigkeiten sind entscheidend für den Betrieb von Kubernetes in einer produktionsreifen Umgebung und bieten die Flexibilität, Cluster in verschiedenen Cloud-Umgebungen bereitzustellen.