Wie man

Gewähren Sie Entwicklern Zugriff auf den EKS Kubernetes-Cluster

Gewähren Sie Entwicklern Zugriff auf den EKS Kubernetes-Cluster

Im vorherigen Artikel haben wir die Installationsschritte eines EKS-Clusters in der Amazon Cloud-Plattform behandelt. Amazon Elastic Kubernetes Service (Amazon EKS) ist ein vollständig verwalteter Kubernetes-Service, der die Kopfschmerzen bei der Verwaltung der Steuerungsebene einschließlich etcd von SysAdmins beseitigt. Das Aktualisieren eines Clusters kann ganz einfach mit einem Klick auf eine Schaltfläche durchgeführt werden. In dieser kurzen Anleitung führe ich Sie durch den Prozess, wie Sie Entwicklern mithilfe von IAM-Richtlinien und nativem Kubernetes-RBAC Zugriff auf den Kubernetes-Namespace gewähren.

Damit dieser Leitfaden Sie bevorzugt, sind einige Voraussetzungen, die angekreuzt werden sollten:

Bevor Sie beginnen

Bestätigen Sie, dass Sie Ihren Cluster von Ihrem lokalen Computer oder Bastion-Server auflisten können, der auf die EKS-Steuerungsebene zugreifen kann.

$ eksctl get Cluster NAME REGION prod-eks-cluster eu-west-1

Oder mit dem aws-Befehl.

$ aws eks list-cluster

Wenn Ihr Befehl keine Ausgabe zurückgibt, überprüfen Sie, ob Sie die richtigen Anmeldeinformationen und die richtige Region verwenden.

Von der Webkonsole:

Standardmäßig verfügt nur der Ersteller des Amazon EKS-Clusters über system:masters-Berechtigungen, wodurch alle Kubernetes-Cluster-Operationen entsperrt werden, die von kubectl ausgeführt werden. Um die Funktionalität zu erweitern, damit andere Benutzer auf den Cluster zugreifen können, aws-auth ConfigMap wird geändert.

Wir müssen eine IAM-Rolle erstellen mit AWS Sicherheitstokendienst (STS) Berechtigungen, die es Benutzern ermöglichen, temporäre Anmeldeinformationen mit eingeschränkten Rechten anzufordern.

Schritt 1: Erstellen Sie eine IAM-Rolle

Als nächstes erstellen Sie eine Rolle auf IAM > Rollen > Rolle erstellen.

Wählen "Ein weiteres AWS-Konto“ als Typ der vertrauenswürdigen Entität:

Hängen Sie keine Erlaubnis an

Passende Tags hinzufügen.

Geben Sie einer Rolle einen Namen und erstellen Sie sie mit dem „Rolle erstellen”-Knopf unten. Meiner wird gerufen k8s-devs-Rolle, Dies ist derselbe Name, der in der Richtlinienerstellung festgelegt wurde.

Schritt 2: Erstellen Sie eine IAM-Richtlinie mit STS übernehmen Rollenberechtigungen

Melden Sie sich bei Ihrer AWS-Webkonsole an und navigieren Sie zu IAM > Richtlinien > Richtlinie erstellen > JSON und fügen Sie unter den json-Inhalt ein, um ihn zu ersetzen mit Ihre AWS-Konto-ID und k8s-devs-Rolle mit dem Namen der Rolle, die Sie erstellt haben.

 "Version": "2012-10-17", "Statement": [  "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam:::role/k8s-devs-role" ,  "Effect": "Allow", "Action": [ "eks:DescribeCluster", "eks:ListClusters" ], "Resource": "*"  ] 

Beispiel für Konto-ID 293759796572

 "Version": "2012-10-17", "Statement": [  "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::293759796572 :role/k8s-devs-role" ,  "Effect": "Allow", "Action": [ "eks:DescribeCluster", "eks:ListClusters" ], "Resource": "*"  ] 

Geben Sie der Richtlinie einen Namen und klicken Sie auf die Schaltfläche "Erstellen".

Schritt 3: Erstellen Sie eine IAM-Benutzergruppe

Erstellen Sie eine IAM-Gruppe namens k8s-devs

Hängen Sie die in Schritt 2 erstellte Richtlinie an.

Überprüfen Sie die Richtlinie und schließen Sie den Erstellungsprozess ab.

Schritt 4: IAM-Benutzer zur Gruppe hinzufügen

Unser letzter Schritt ist das Hinzufügen von IAM-Benutzern, die Zugriff auf den Kubernetes-Cluster benötigen, zu der soeben erstellten Gruppe.

Gehe zu ICH BIN > Gruppen > k8s-devs > Benutzer zur Gruppe hinzufügen um Benutzer zur Gruppe hinzuzufügen.

Fügen Sie alle anderen Benutzer hinzu, denen Sie Zugriff gewähren möchten.

Schritt 5: Kubernetes-RBAC für Entwickler erstellen

Die rollenbasierte Zugriffssteuerung (RBAC) ist eine Methode zur Regulierung des Zugriffs auf Computer- oder Netzwerkressourcen basierend auf den Rollen einzelner Benutzer in Ihrem Unternehmen. Die RBAC-API deklariert vier Arten von Kubernetes-Objekten: Rolle, ClusterRolle, Rollenbindung und ClusterRoleBinding.

Ich beginne mit der Erstellung von drei Namespaces, auf die ich Entwicklern Zugriff gebe: prod, uat und Entwickler

$ kubectl create namespace prod namespace/prod erstellt $ kubectl create namespace uat namespace/uat erstellt $ kubectl create namespace dev namespace/dev erstellt

Listen Sie alle Namespaces auf, um die Erstellung zu bestätigen.

$ kubectl get ns NAME STATUS AGE default Active 25d dev Active 9s istio-operator Active 14d istio-system Active 14d kube-node-lease Active 25d kube-public Active 25d kube-system Active 25d Monitoring Active 17d prod Active 40s uat Active 26s

Clusterrolle erstellen

Ich erstelle eine Clusterrolle namens Entwickler-Vollzugriff deren Manifest-Datei sieht wie folgt aus:

kubectl apply -f - <

Erwartete Ausgabe:

Clusterrolle.rbac.Genehmigung.k8s.io/dev-full-access erstellt

Einstellungen bestätigen:

$ kubectl get clusterroles dev-full-access -o yaml

Wenn Metrics Server installiert ist, können Sie Zugriff auf die folgende API-Ressource hinzufügen:

- apiGroups: ["Metriken.k8s.io"] Ressourcen: ["*"] Verben: ["*"]

Rollenbindungen erstellen

Als nächstes wird eine Gruppenrollenbindung für unsere Entwickler erstellt.

$ vim k8s-Zugriff.Sch

Die Gruppe heißt k8s-devs

# Zugriff auf den Prod-Namespace NAMESPACE="prod" CLUSTERROLE="dev-full-access" kubectl apply -f - <

Übernehmen Sie die Konfiguration:

sh k8s-Zugriff.Sch

Eine ähnliche Konfiguration wird verwendet, um den Zugriff für andere Namespaces zu ermöglichen:

# Zugriff auf den UAT-Namespace NAMESPACE="uat" CLUSTERROLE="dev-full-access" kubectl apply -f - <

Schritt 6: Kubernetes aws-auth ConfigMap bearbeiten

Um zusätzlichen AWS-Benutzern oder -Rollen die Möglichkeit zu geben, mit Ihrem Cluster zu interagieren, müssen Sie die aws-auth ConfigMap in Kubernetes.

Überprüfen Sie, ob Sie die aws-auth ConfigMap bereits angewendet haben.

$ kubectl describe configmap -n kube-system aws-auth

Hinzufügen eines IAM-Benutzers oder einer IAM-Rolle zu einem Amazon EKS-Cluster

Wir fügen unsere IAM-Rolle hinzu, die in erstellt wurde Schritt 1 zu einem EKS-Cluster, indem Sie die aws-auth ConfigMap.

$ kubectl edit -n kube-system configmap/aws-auth

Aktualisieren Sie die Daten.KarteRollen Abschnitt, um den Zugriff mit der IAM-Rolle und der Kubernetes-RBAC-Gruppe zu autorisieren.

apiVersion: v1 Daten: mapRoles: | - Gruppen: - k8s-devs rolearn: arn:aws:iam:::role/k8s-devs-role Benutzername: Entwickler

Ersetzen:

Hier ein Screenshot meiner Konfiguration:

Wenn Sie einem bestimmten Benutzer Master-Admin-Zugriff gewähren möchten, fügen Sie wie folgt hinzu.

mapBenutzer: | - Gruppen: - system:masters userarn: arn:aws:iam:::Benutzer/ Benutzername: arn:aws:iam:::Benutzer/

Oder greifen Sie einfach auf bestimmte Namespaces zu, wie sie zuvor in den Rollenbindungen festgelegt wurden:

mapBenutzer: | - Gruppen: - k8s-devs-Benutzername: arn:aws:iam:::Benutzer/ Benutzername: arn:aws:iam:::Benutzer/

Schritt 7: Erstellen Sie eine kubeconfig für Amazon EKS (als Entwickler)

Entwickler müssen zuerst AWS CLI installieren und ihre Anmeldeinformationen konfigurieren.

$aws konfigurieren

Sobald die Anmeldeinformationen festgelegt sind, bestätigen Sie mit dem folgenden Befehl:

$ aws sts get-caller-identity

Erwartete Ausgabe:

 "Benutzeridentifikation": "", "Konto": "", "Arn": "arn:aws:iam:::Benutzer/"

Entwickler verwenden AWS CLI update-kubeconfig Befehl zum Erstellen oder Aktualisieren von kubeconfig für den Cluster:

aws eks --region  update-kubeconfig --name  --rolle-arn arn:aws:iam:::rolle/k8s-devs-rolle

Das folgende Beispiel ist für Cluster namens prod-eks-cluster erstellt in eu-west-1 Region auf Konto-ID 293759796572

$ aws eks --region eu-west-1 update-kubeconfig --name prod-eks-cluster --role-arn arn:aws:iam::293759796572:role/k8s-devs-role

Befehlsausgabe:

Neuer Kontext arn:aws:eks:eu-west-1:293759796572:cluster/prod-eks-cluster zu /var/root/ hinzugefügt.kube/config

Versuchen Sie, Ressourcen im Clusterbereich aufzulisten, die Sie erhalten sollten verboten Fehlermeldung:

$ kubectl get Nodes Fehler vom Server (Forbidden): Nodes ist verboten: Benutzer "developer" kann die Ressource "nodes" in der API-Gruppe "" im Clusterbereich nicht auflisten

Sie sollten jedoch in der Lage sein, Ressourcen für den Namespacebereich aufzulisten:

$ kubectl get all -n prod Keine Ressourcen im prod-Namespace gefunden. $ kubectl get all -n uat Keine Ressourcen im prod-Namespace gefunden. $ kubectl get all -n dev Keine Ressourcen im prod-Namespace gefunden.

Testanwendung bereitstellen:

$ kubectl run nginx-example --image=nginx --replicas=2 -n dev Bereitstellung.apps/nginx-example erstellt $ kubectl get pods -n dev NAME BEREIT STATUS RESTARTS ALTER nginx-example-79c476f965-jqm6f 1/1 Wird ausgeführt 0 29s nginx-example-79c476f965-lkzll 1/1 Wird 0 ausgeführt 29s $ kubectl- delete Beispiel -n dev-Bereitstellung.Apps "nginx-beispiel" gelöscht

Genießen Sie Ihre Entwicklung auf Kubernetes powered by Amazon EKS. Im Folgenden finden Sie einige Videoklassen, die Sie auf Kubernetes und Microservices ausprobieren können.Kubernetes für absolute Anfänger - Hands-onKubernetes für absolute Anfänger - Hands-on$12.06$156.75auf LagerJETZT KAUFENUdemy.comDocker und Kubernetes: Das komplette HandbuchDocker und Kubernetes: Das komplette Handbuch$12.06120 $.58auf LagerJETZT KAUFENUdemy.comZertifizierter Kubernetes Administrator (CKA) mit PraxistestsZertifizierter Kubernetes Administrator (CKA) mit Praxistests$12.06$156.75auf LagerJETZT KAUFENUdemy.comDevOps lernen: Der komplette Kubernetes-KursDevOps lernen: Der komplette Kubernetes-Kurs$12.06$48.22auf LagerJETZT KAUFENUdemy.comKubernetes Certified Application Developer (CKAD) mit TestsKubernetes Certified Application Developer (CKAD) mit Tests$12.06$156.75auf LagerJETZT KAUFENUdemy.com

Installieren Sie das Taiga-Projektmanagement-Tool auf CentOS 8
Taiga ist eine Open-Source-Plattform für agiles Projektmanagement für kleine und große Unternehmen. Seine Funktionen stehen im Einklang mit kommerziel...
So installieren Sie den AWS SSM-Agenten unter CentOS 8 | CentOS 7
Dieser Artikel bietet dem Benutzer eine Anleitung zur Installation des AWS SSM-Agenten auf einer CentOS 8- und CentOS 7 EC2-Linux-Instance.SSM steht f...
Installieren Sie die Taiga-Projektmanagementplattform auf Ubuntu 20.04
Im heutigen Artikel werden wir alle Schritte behandeln, die erforderlich sind, um eine funktionierende Taiga-Projektmanagementplattform auf Ubuntu 20 ...

Website für Gadgets, Betriebssysteme und moderne Technologie. Viele interessante Artikel und nützliche Tipps