Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Erstellen eines EKS-Clusters

Amazon EKS bietet eine verwaltete Steuerungsebene für Ihren Kubernetes-Cluster. Amazon EKS führt die Steuerungsebene von Kubernetes-Instanzen über mehrere Verfügbarkeitszonen aus, um hohe Verfügbarkeit zu gewährleisten. Rancher bietet eine intuitive Benutzeroberfläche zur Verwaltung und Bereitstellung der Kubernetes-Cluster, die Sie in Amazon EKS ausführen. Mit diesem Leitfaden werden Sie Rancher verwenden, um schnell und einfach einen Amazon EKS Kubernetes-Cluster in Ihrem AWS-Konto zu starten. Für weitere Informationen zu Amazon EKS siehe diese Dokumentation.

Voraussetzungen in Amazon Web Services

Die Bereitstellung in Amazon AWS verursacht Kosten. Für weitere Informationen siehe die EKS-Preisseite.

Um einen Cluster auf EKS einzurichten, müssen Sie eine Amazon VPC (Virtual Private Cloud) einrichten. Sie müssen auch sicherstellen, dass das Konto, das Sie zur Erstellung des EKS-Clusters verwenden, über die entsprechenden Berechtigungen verfügt. Für Details siehe den offiziellen Leitfaden zu Amazon EKS-Voraussetzungen.

Amazon VPC

Eine Amazon VPC ist erforderlich, um den EKS-Cluster zu starten. Die VPC ermöglicht es Ihnen, AWS-Ressourcen in ein virtuelles Netzwerk zu starten, das Sie definiert haben. Sie können selbst eine einrichten und diese während der Clustererstellung in Rancher angeben. Wenn Sie während der Erstellung keine angeben, wird Rancher eine erstellen. Für weitere Informationen verweisen Sie auf das Tutorial: Erstellen eines VPC mit öffentlichen und privaten Subnetzen für Ihren Amazon EKS-Cluster.

IAM-Richtlinien

Rancher benötigt Zugriff auf Ihr AWS-Konto, um Ihre Kubernetes-Cluster in Amazon EKS bereitzustellen und zu verwalten. Sie müssen einen Benutzer für Rancher in Ihrem AWS-Konto erstellen und definieren, auf was dieser Benutzer zugreifen kann.

  1. Erstellen Sie einen Benutzer mit programmgesteuertem Zugriff, indem Sie die Schritte hier befolgen.

  2. Erstellen Sie als Nächstes eine IAM-Richtlinie, die definiert, auf was dieser Benutzer in Ihrem AWS-Konto Zugriff hat. Es ist wichtig, diesem Benutzer nur minimalen Zugriff innerhalb Ihres Kontos zu gewähren. Die minimalen Berechtigungen, die für einen EKS-Cluster erforderlich sind, sind hier. aufgeführt. Befolgen Sie die Schritte hier, um eine IAM-Richtlinie zu erstellen und sie Ihrem Benutzer zuzuordnen.

  3. Befolgen Sie schließlich die Schritte hier, um einen Zugriffsschlüssel und einen geheimen Schlüssel für diesen Benutzer zu erstellen.

Wichtig:

Es ist wichtig, Ihre Zugriffs- und Secret Keys regelmäßig zu rotieren. Siehe diese Dokumentation für weitere Informationen.

Für detailliertere Informationen zu IAM-Richtlinien für EKS verweisen Sie auf die offizielle Dokumentation zu Amazon EKS IAM-Richtlinien, Rollen, und Berechtigungen.

Erstellen Sie den EKS-Cluster

Verwenden Sie Rancher, um Ihren Kubernetes-Cluster einzurichten und zu konfigurieren.

  1. Klicken Sie auf ☰ > Clusterverwaltung.

  2. Klicken Sie auf der Seite Cluster auf Erstellen.

  3. Wählen Sie Amazon EKS.

  4. Geben Sie einen Cluster-Namen ein.

  5. Verwenden Sie Mitgliederrollen, um die Benutzerautorisierung für den Cluster zu konfigurieren. Klicken Sie auf Mitglied hinzufügen, um Benutzer hinzuzufügen, die auf den Cluster zugreifen können. Verwenden Sie das Rolle-Dropdown, um die Berechtigungen für jeden Benutzer festzulegen.

  6. Füllen Sie den Rest des Formulars aus. Für Hilfe verweisen Sie auf die Konfigurationsreferenz.

  7. Klicken Sie auf Erstellen.

Ergebnis:

Ihr Cluster wurde erstellt und hat den Status Bereitstellung erhalten. Rancher richtet Ihren Cluster ein.

Sie können auf Ihren Cluster zugreifen, nachdem sein Status auf Aktiv aktualisiert wurde.

Aktive Cluster sind zwei Projekte zugewiesen:

  • Default, der den default Namespace enthält

  • System, der die cattle-system, traefik, kube-public und kube-system Namespaces enthält

EKS-Cluster-Konfiguration Referenz

Für die vollständige Liste der Konfigurationsoptionen für EKS-Cluster siehe diese Seite.

Architektur

Die Abbildung unten veranschaulicht die Architektur von Rancher 2.x auf hoher Ebene. Die Abbildung zeigt eine Rancher-Serverinstallation, die zwei Kubernetes-Cluster verwaltet: einen, der von RKE erstellt wurde, und einen anderen, der von EKS erstellt wurde.

Architektur
Figure 1. Verwaltung von Kubernetes-Clustern über den Authentifizierungsproxy von Rancher

AWS-Dienstereignisse

Um Informationen zu allen AWS-Dienstereignissen zu finden, siehe bitte diese Seite.

Sicherheit und Einhaltung rechtlicher Vorschriften

Standardmäßig hat nur der IAM-Benutzer oder die Rolle, die einen Cluster erstellt hat, Zugriff darauf. Der Versuch, auf den Cluster mit einem anderen Benutzer oder einer anderen Rolle ohne zusätzliche Konfiguration zuzugreifen, führt zu einem Fehler. In Rancher bedeutet dies, dass die Verwendung einer Berechtigung, die einem Benutzer oder einer Rolle zugeordnet ist, die nicht zur Erstellung des Clusters verwendet wurde, einen nicht autorisierten Fehler verursacht. Zum Beispiel wird ein EKSCtl-Cluster in Rancher nicht registriert, es sei denn, die zur Registrierung des Clusters verwendeten Berechtigungen stimmen mit der Rolle oder dem Benutzer überein, die von EKSCtl verwendet werden. Zusätzliche Benutzer und Rollen können autorisiert werden, auf einen Cluster zuzugreifen, indem sie dem aws-auth ConfigMap im kube-system Namespace hinzugefügt werden. Für eine ausführlichere Erklärung und detaillierte Anweisungen siehe bitte diese Dokumentation.

Für weitere Informationen zur Sicherheit und Compliance mit Ihrem Amazon EKS Kubernetes-Cluster siehe bitte diese Dokumentation.

Schulung

Dieses Tutorial auf dem AWS Open Source Blog führt Sie durch die Einrichtung eines EKS-Clusters mit Rancher, das Bereitstellen einer öffentlich zugänglichen App zum Testen des Clusters und das Bereitstellen eines Musterprojekts zur Verfolgung von Echtzeit-Geodaten unter Verwendung einer Kombination anderer Open-Source-Software wie Grafana und InfluxDB.

Minimale EKS-Berechtigungen

Dies sind die minimalen Berechtigungen, die erforderlich sind, um die volle Funktionalität des EKS-Treibers von Rancher zu nutzen. Diese Berechtigungen ermöglichen es Rancher, die Service-Rolle und die Ressourcen des Virtual Private Cloud (VPC) im Namen der Benutzer zu erstellen, falls erforderlich.

In EKS v1.23 und höher müssen Sie die Out-of-Tree-Treiber für EBS-unterstützte Volumes verwenden. Sie benötigen bestimmte Berechtigungen, um dieses Add-on zu aktivieren.

Ressource Beschreibung

EBS CSI-Treiber-Add-on

Stellt Berechtigungen bereit, die es Kubernetes ermöglichen, mit EBS zu interagieren und den Cluster zu konfigurieren, um das Add-on zu aktivieren (erforderlich für EKS v1.23 und höher). Rancher kann das Add-on mit den folgenden EBS CSI-Treiber-Add-on-Berechtigungen installieren.

Die Ressourcenzielvergabe verwendet *, da die ARN vieler der erstellten Ressourcen vor der Erstellung des EKS-Clusters in Rancher nicht bekannt sein kann.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "EC2Permissions",
      "Effect": "Allow",
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:CreateKeyPair",
        "ec2:CreateLaunchTemplate",
        "ec2:CreateLaunchTemplateVersion",
        "ec2:CreateSecurityGroup",
        "ec2:CreateTags",
        "ec2:DeleteKeyPair",
        "ec2:DeleteLaunchTemplate",
        "ec2:DeleteLaunchTemplateVersions",
        "ec2:DeleteSecurityGroup",
        "ec2:DeleteTags",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeImages",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeInstanceTypes",
        "ec2:DescribeKeyPairs",
        "ec2:DescribeLaunchTemplateVersions",
        "ec2:DescribeLaunchTemplates",
        "ec2:DescribeRegions",
        "ec2:DescribeRouteTables",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeTags",
        "ec2:DescribeVpcs",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress",
        "ec2:RunInstances"
      ],
      "Resource": "*"
    },
    {
      "Sid": "CloudFormationPermissions",
      "Effect": "Allow",
      "Action": [
        "cloudformation:CreateStack",
        "cloudformation:CreateStackSet",
        "cloudformation:DeleteStack",
        "cloudformation:DescribeStackResource",
        "cloudformation:DescribeStackResources",
        "cloudformation:DescribeStacks",
        "cloudformation:ListStackResources",
        "cloudformation:ListStacks"
      ],
      "Resource": "*"
    },
    {
      "Sid": "IAMPermissions",
      "Effect": "Allow",
      "Action": [
        "iam:AddRoleToInstanceProfile",
        "iam:AttachRolePolicy",
        "iam:CreateInstanceProfile",
        "iam:CreateRole",
        "iam:CreateServiceLinkedRole",
        "iam:DeleteInstanceProfile",
        "iam:DeleteRole",
        "iam:DetachRolePolicy",
        "iam:GetInstanceProfile",
        "iam:GetRole",
        "iam:ListAttachedRolePolicies",
        "iam:ListInstanceProfiles",
        "iam:ListInstanceProfilesForRole",
        "iam:ListRoles",
        "iam:ListRoleTags",
        "iam:PassRole",
        "iam:RemoveRoleFromInstanceProfile",
        "iam:TagRole"
      ],
      "Resource": "*"
    },
    {
      "Sid": "KMSPermissions",
      "Effect": "Allow",
      "Action": "kms:ListKeys",
      "Resource": "*"
    },
    {
      "Sid": "EKSPermissions",
      "Effect": "Allow",
      "Action": [
        "eks:CreateCluster",
        "eks:CreateFargateProfile",
        "eks:CreateNodegroup",
        "eks:DeleteCluster",
        "eks:DeleteFargateProfile",
        "eks:DeleteNodegroup",
        "eks:DescribeAddon",
        "eks:DescribeCluster",
        "eks:DescribeFargateProfile",
        "eks:DescribeNodegroup",
        "eks:DescribeUpdate",
        "eks:ListClusters",
        "eks:ListFargateProfiles",
        "eks:ListNodegroups",
        "eks:ListTagsForResource",
        "eks:ListUpdates",
        "eks:TagResource",
        "eks:UntagResource",
        "eks:UpdateClusterConfig",
        "eks:UpdateClusterVersion",
        "eks:UpdateNodegroupConfig",
        "eks:UpdateNodegroupVersion"
      ],
      "Resource": "*"
    },
    {
      "Sid": "VPCPermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:AssociateRouteTable",
        "ec2:AttachInternetGateway",
        "ec2:CreateInternetGateway",
        "ec2:CreateRoute",
        "ec2:CreateRouteTable",
        "ec2:CreateSecurityGroup",
        "ec2:CreateSubnet",
        "ec2:CreateVpc",
        "ec2:DeleteInternetGateway",
        "ec2:DeleteRoute",
        "ec2:DeleteRouteTable",
        "ec2:DeleteSubnet",
        "ec2:DeleteTags",
        "ec2:DeleteVpc",
        "ec2:DescribeVpcs",
        "ec2:DetachInternetGateway",
        "ec2:DisassociateRouteTable",
        "ec2:ModifySubnetAttribute",
        "ec2:ModifyVpcAttribute",
        "ec2:ReplaceRoute"
      ],
      "Resource": "*"
    }
  ]
}

Wenn Sie einen EKS-Cluster erstellen, erstellt Rancher eine Service-Rolle mit der folgenden Vertrauensrichtlinie:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "eks.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}

Diese Rolle hat auch zwei Rollenrichtlinienanhänge mit den folgenden Richtlinien-ARNs:

arn:aws:iam::aws:policy/AmazonEKSClusterPolicy
arn:aws:iam::aws:policy/AmazonEKSServicePolicy

EBS CSI-Treiber-Add-on-Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um das Amazon EBS CSI-Treiber-Add-on zu installieren.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "eks:AssociateIdentityProviderConfig",
        "eks:CreateAddon",
        "eks:DeleteAddon",
        "eks:DescribeAddonConfiguration",
        "eks:DescribeAddonVersions",
        "eks:DescribeIdentityProviderConfig",
        "eks:ListAddons",
        "eks:ListIdentityProviderConfigs",
        "eks:UpdateAddon",
        "iam:CreateOpenIDConnectProvider",
        "iam:ListOpenIDConnectProviders",
        "sts:AssumeRoleWithWebIdentity"
      ],
      "Resource": "*"
    }
  ]
}

IPv6 Dual-Stack-Netzwerkberechtigungen

Die folgenden zusätzlichen Berechtigungen sind erforderlich, um ein IPv6 EKS-Cluster von Rancher bereitzustellen.

Diese Berechtigungen sind nur erforderlich, wenn Rancher ein neues IPv6-Cluster erstellt. Während der Erstellung eines neuen Clusters benötigt Rancher diese Berechtigungen, um das Dual-Stack-VPC zu generieren, den IAM OIDC-Anbieter zu erstellen und eine Inline-Richtlinie (RancherManaged+_+AllowIPv6ForCNI) der Node Instance Role zuzuweisen.

Wenn Sie ein bestehendes EKS-Cluster registrieren (importieren), das bereits mit IPv6 konfiguriert ist, sind diese zusätzlichen Berechtigungen nicht erforderlich.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AssignIpv6Addresses",
        "ec2:UnassignIpv6Addresses",
        "ec2:AssignPrivateIpAddresses",
        "ec2:UnassignPrivateIpAddresses",
        "ec2:AssociateVpcCidrBlock",
        "ec2:DisassociateVpcCidrBlock",
        "iam:PutRolePolicy",
        "iam:CreateOpenIDConnectProvider",
        "iam:ListOpenIDConnectProviders",
        "eks:AssociateIdentityProviderConfig",
        "eks:DescribeIdentityProviderConfig",
        "eks:ListIdentityProviderConfigs",
        "sts:AssumeRoleWithWebIdentity"
      ],
      "Resource": "*"
    }
  ]
}

Synchronisierung

Der EKS-Provisionierer kann den Zustand eines EKS-Clusters zwischen Rancher und dem Anbieter synchronisieren. Für eine detaillierte technische Erklärung, wie dies funktioniert, siehe Synchronisierung.

Für Informationen zur Konfiguration der Bildwiederholrate siehe diesen Abschnitt.

Fehlerbehebung

Wenn Ihre Änderungen überschrieben wurden, könnte dies an der Art und Weise liegen, wie die Cluster-Daten mit EKS synchronisiert werden. Änderungen sollten nicht von einer anderen Quelle, wie z. B. in der EKS-Konsole, und in Rancher innerhalb eines Zeitraums von fünf Minuten am Cluster vorgenommen werden. Für Informationen darüber, wie dies funktioniert und wie die Bildwiederholrate konfiguriert wird, siehe Syncing.

Wenn ein nicht autorisierter Fehler zurückgegeben wird, während versucht wird, das Cluster zu ändern oder zu registrieren, und das Cluster nicht mit der Rolle oder dem Benutzer erstellt wurde, zu dem Ihre Anmeldeinformationen gehören, siehe Security and Compliance.

Für alle Probleme oder Details zur Fehlersuche für Ihr Amazon EKS Kubernetes-Cluster siehe bitte diese Dokumentation.

Programmgesteuertes Erstellen von EKS-Clustern

Der gebräuchlichste Weg, EKS-Cluster programmgesteuert über Rancher bereitzustellen, besteht darin, den Rancher2 Terraform-Anbieter zu verwenden. Die Dokumentation zum Erstellen von Clustern mit Terraform finden Sie hier.