Einrichten von Amazon Web Services
Beitragende
Zur Vorbereitung Ihres Amazon Web Services Projekts sind einige Schritte erforderlich, bevor Sie Amazon Elastic Kubernetes Service (EKS) Cluster mit Astra Control Service managen können.
Schnellstart für die Einrichtung von Amazon Web Services
Führen Sie diese Schritte schnell durch, oder scrollen Sie nach unten zu den verbleibenden Abschnitten, um ausführliche Informationen zu erhalten.
Astra Control Service-Anforderungen für Amazon Web Services überprüfen
Stellen Sie sicher, dass die Cluster ordnungsgemäß sind und eine unterstützte Version von Kubernetes ausführen, dass Worker-Nodes unter anderem Linux oder Windows online sind. Erfahren Sie mehr zu diesem Schritt.
Erstellen Sie ein Amazon-Konto
Wenn Sie noch kein Amazon-Konto haben, müssen Sie ein Konto erstellen, damit Sie EKS verwenden können. Erfahren Sie mehr zu diesem Schritt.
Installieren Sie die Amazon Web Services-CLI
Installieren Sie die AWS CLI, sodass Sie AWS über die Befehlszeile managen können. Befolgen Sie die Schritt-für-Schritt-Anweisungen.
Optional: Erstellen Sie einen IAM-Benutzer
Erstellen Sie einen Amazon IAM-Benutzer (Identity and Access Management). Sie können diesen Schritt auch überspringen und einen vorhandenen IAM-Benutzer mit Astra Control Service verwenden.
Erstellen Sie eine Berechtigungsrichtlinie und fügen Sie sie an
Erstellen einer Richtlinie mit den erforderlichen Berechtigungen für den Astra Control Service zur Interaktion mit Ihrem AWS Konto
Speichern Sie die Anmeldeinformationen für den IAM-Benutzer
Speichern Sie die Anmeldeinformationen für den IAM-Benutzer, damit Sie die Anmeldeinformationen in den Astra Control Service importieren können.
EKS-Clusteranforderungen
Ein Kubernetes-Cluster muss folgende Anforderungen erfüllen, damit Sie ihn über den Astra Control Service erkennen und managen können.
- Kubernetes-Version
-
Auf einem Cluster muss eine Kubernetes-Version im Bereich von 1.22 bis 1.24 ausgeführt werden.
- Bildtyp
-
Der Bildtyp für jeden Arbeiterknoten muss Linux sein.
- Der Cluster-Status
-
Cluster müssen in einem ordnungsgemäßen Zustand ausgeführt werden und mindestens einen Online-Worker-Node ohne „Worker“-Nodes im ausgefallenen Status aufweisen.
- Astra Trident für Amazon FSX für NetApp ONTAP
-
Wenn Sie das Backend von Amazon FSX für NetApp ONTAP Storage nutzen, müssen Sie Astra Trident installieren. Anweisungen finden Sie unter "Astra Trident – Übersicht über die Implementierung". Weitere Informationen zur Verwendung von Astra Trident mit FSX für NetApp ONTAP finden Sie unter "Setzen Sie Astra Trident mit Amazon FSX für NetApp ONTAP ein".
- CSI-Treiber für Amazon Elastic Block Store (EBS)
-
Wenn Sie das Amazon EBS Storage-Backend verwenden, müssen Sie den Container Storage Interface (CSI)-Treiber für EBS installieren (dieser wird nicht automatisch installiert).
Anweisungen zur Installation des CSI-Treibers finden Sie in den Details.
Details
Installieren Sie einen externen Schnappschussfilter-
Erstellen von Volume Snapshot-CRDs.
Verwenden Sie für Kubernetes ab Version 1.20 v1 Snapshot-CRDs mit Snapshot-Komponenten von v5.0.
-
$ cat snapshot-setup.sh
#!/bin/bash
# Create volume snapshot CRDs
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-5.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-5.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-5.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
-
Erstellen Sie den Snapshot-Controller im gewünschten Namespace. Bearbeiten Sie die YAML-Manifeste unten, um den Namespace zu ändern.
Für Kubernetes 1.20 und höher verwenden Sie v5.0.
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-5.0/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-5.0/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml
-
Erstellen der IAM-Rolle des Amazon EBS CSI-Treibers für Service-Konten Befolgen Sie die Anweisungen "In der Amazon-Dokumentation", Verwenden der AWS CLI-Befehle in den Anweisungen.
-
Fügen Sie das Amazon EBS CSI-Add-on mit dem folgenden AWS-CLI-Befehl hinzu und ersetzen Sie Informationen in Klammern <> durch Werte speziell für Ihre Umgebung. Ersetzen Sie <DRIVER_ROLE> durch den Namen der EBS CSI-Treiberrolle, die Sie im vorherigen Schritt erstellt haben:
aws eks create-addon \ --cluster-name <CLUSTER_NAME> \ --addon-name aws-ebs-csi-driver \ --service-account-role-arn arn:aws:iam::<ACCOUNT_ID>:role/<DRIVER_ROLE>
-
Klonen Sie das GitHub Repository des Amazon EBS CSI-Treibers auf Ihrem System.
git clone https://github.com/kubernetes-sigs/aws-ebs-csi-driver.git
-
Navigieren Sie zum Beispielverzeichnis für dynamische Bereitstellung.
cd aws-ebs-csi-driver/examples/kubernetes/dynamic-provisioning/
-
Implementierung der ebs-sc-Storage-Klasse und der ebs-Claim Persistent Volume Claim aus dem Manifeste Verzeichnis
kubectl apply -f manifests/storageclass.yaml kubectl apply -f manifests/claim.yaml
-
ebs-sc Storage-Klasse beschreiben
kubectl describe storageclass ebs-sc
Sie sollten die Ausgabe sehen, in der die Attribute der Storage-Klasse beschrieben werden.
Erstellen Sie ein Amazon-Konto
Wenn Sie noch kein Amazon-Konto besitzen, müssen Sie ein Konto erstellen, um die Abrechnung für Amazon EKS zu aktivieren.
-
Wechseln Sie zum "Amazon Homepage" Wählen Sie oben rechts Anmelden und wählen Sie Hier starten.
-
Befolgen Sie die Anweisungen, um ein Konto zu erstellen.
Installieren Sie die Amazon Web Services-CLI
Installieren Sie die AWS CLI, sodass Sie AWS Ressourcen über die Befehlszeile managen können.
-
Gehen Sie zu "Erste Schritte mit der AWS CLI" Und befolgen Sie die Anweisungen zur Installation der CLI.
Optional: Erstellen Sie einen IAM-Benutzer
Erstellen Sie einen IAM-Benutzer, damit Sie AWS Services und Ressourcen mit erhöhter Sicherheit nutzen und managen können. Sie können diesen Schritt auch überspringen und einen vorhandenen IAM-Benutzer mit Astra Control Service verwenden.
-
Gehen Sie zu "IAM-Benutzer werden erstellt" Und befolgen Sie die Anweisungen zum Erstellen eines IAM-Benutzers.
Erstellen Sie eine Berechtigungsrichtlinie und fügen Sie sie an
Erstellen einer Richtlinie mit den erforderlichen Berechtigungen für den Astra Control Service zur Interaktion mit Ihrem AWS Konto
-
Erstellen Sie eine neue Datei mit dem Namen
policy.json
. -
Kopieren Sie den folgenden JSON-Inhalt in die Datei:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData", "fsx:DescribeVolumes", "ec2:DescribeRegions", "s3:CreateBucket", "s3:ListBucket", "s3:PutObject", "s3:GetObject", "iam:SimulatePrincipalPolicy", "s3:ListAllMyBuckets", "eks:DescribeCluster", "eks:ListNodegroups", "eks:DescribeNodegroup", "eks:ListClusters", "iam:GetUser", "s3:DeleteObject", "s3:DeleteBucket", "autoscaling:DescribeAutoScalingGroups" ], "Resource": "*" } ] }
-
Erstellen der Richtlinie:
POLICY_ARN=$(aws iam create-policy --policy-name <policy-name> --policy-document file://policy.json --query='Policy.Arn' --output=text)
-
Hängen Sie die Richtlinie an den IAM-Benutzer an. Austausch
<IAM-USER-NAME>
Entweder mit dem Benutzernamen des von Ihnen erstellten IAM-Benutzers oder mit einem vorhandenen IAM-Benutzer:aws iam attach-user-policy --user-name <IAM-USER-NAME> --policy-arn=$POLICY_ARN
Speichern Sie die Anmeldeinformationen für den IAM-Benutzer
Speichern Sie die Anmeldeinformationen für den IAM-Benutzer, damit Sie den Astra Control Service auf den Benutzer aufmerksam machen können.
-
Anmeldedaten herunterladen Austausch
<IAM-USER-NAME>
Mit dem Benutzernamen des IAM-Benutzers, den Sie verwenden möchten:aws iam create-access-key --user-name <IAM-USER-NAME> --output json > credential.json
Der credential.json
Datei ist erstellt, und Sie können die Anmeldeinformationen in Astra Control Service importieren.