Schritt 1: Amazon EKS Voraussetzungen
- IAM Role mit EKS und IAM Rechten (wie mehr Rechte desto besser!) anlegen, z.B.
k8srole
. - IAM User anlegen und
k8srole
zuweisen. Es wird einAWS Access Key ID
undAWS Secret Access Key
erstellt. - Console Password freischalten und setzen.
- Ausloggen! und mit erstelltem User über die AWS Console einloggen.
Schritt 2: Erstellen und Konfigurieren Sie Ihren Amazon EKS-Cluster
-
Erstellen Sie Ihren Amazon EKS-Cluster, geht am einfachsten über das UI.
-
AWS CLI installieren und konfigurieren
aws configure
-
Die Konfigurationsdateien werden im Home Verzeichnis des User im Verzeichnis
/.aws
angelegt. -
Datei
config
im Home Unterverzeichnis.kube
anlegen.apiVersion: v1 clusters:
- cluster: server: certificate-authority-data: name: kubernetes contexts:
- context: cluster: kubernetes user: aws name: aws current-context: aws kind: Config preferences: {} users:
- name: aws user: exec: apiVersion: client.authentication.k8s.io/v1alpha1 command: aws-iam-authenticator args: - "token" - "-i" - ""
Und folgende Argumente ersetzen:
- endpoint-url - API server endpoint
- base64-encoded-ca-cert - Certificate authority
- cluster-name - Clustername, welcher beim Erstellen des EKS-Cluster eingegeben wurde.
Alle Werte sind durch Klick auf den Clustername im Cluster UI ersichtlich.
Kontrollieren durch Eingabe von:
kubectl get all
Schritt 3: Starten und konfigurieren Sie Amazon EKS Worker Nodes
-
Öffnen Sie die AWS CloudFormation-Konsole unter https://console.aws.amazon.com/cloudformation
- Create new Stack
- Specify an Amazon S3 template URL
Alle Details siehe Launch Worker Nodes
Diverse Pods stellen Daten auf einer PersistentVolume ab, z.B. die DevOps Tools.
Azure stellt zwei Persistente Volumes zur Verfügung. Auf diesem muss ein PersistentVolumeClaim
mit Namen data-claim
eingerichtet werden, damit die Pods gestartet werden können. Für Details siehe Gemeinsames Datenverzeichnis.
kubectl create -f aws/io1-storage-class.yaml
kubectl create -f aws/DataVolume.yaml
Links
Dashboard mit allen Rolen anlegen
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl create -f aws/eks-admin-service-account.yaml
kubectl create -f aws/eks-admin-cluster-role-binding.yaml
Ausgabe des Tokens um sich im Dashboard anmelden zu können:
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')
Port Weiterleitung aktiveren und Dashboard mittels http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/ aufrufen. Anmelden mittels Tokens.
kubectl proxy
Link
- Pods und Services können erstellt werden, aber nicht von Aussen angesprochen werden. Fehlt ein LoadBalancer?
- Die Datenspeicherung funktioniert nicht.