Puncte:0

Nu pot acorda rolurilor AWS suplimentare capacitatea de a interacționa cu clusterul meu

drapel in

Încerc să învăț AWS EKS și următoarele Noțiuni introductive cu Amazon EKS â AWS Management Console și AWS CLI ghid pas cu pas cu excepția regiunii pe care am schimbat-o în us-east-1.

Pot să-mi creez clusterul - grupul-meu dar când încerc să-mi configurez computerul care este o instanță EC2 (T2.Micro) pentru a comunica cu clusterul, primesc eroare: trebuie să fiți conectat la server (neautorizat) eroare. La scufundări adânci, am descoperit că rolul EC2 (ARN - arn:aws:iam::123456789012:role/ec2-admin) trebuie să-și asume rolul care a creat clusterul (ARN - arn:aws:iam::123456789012:role /myAmazonEKSClusterRole). Am făcut aceste modificări și în definiția rolului, modificând Relația de încredere în myAmazonEKSClusterRole obtinerea arn:aws:sts::123456789012:assumed-role/myAmazonEKSClusterRole/test-session După aceasta, sunt capabil să execut aws eks comenzi dar kubectl comenzile încă mă ocolesc.

Pentru executare kubectl comenzi, încerc să urmez pașii din Gestionarea utilizatorilor sau a rolurilor IAM pentru clusterul dvs. Cu toate acestea, ei îmi cer să fac modificări aws-auth-cm.yaml configMap pe care nu îl pot face deoarece nu pot să îl execut se aplică kubectl comanda.

Ale mele kubeconfig fisier -

apiVersion: v1
clustere:
- cluster:
    certificate-authority-data: <cert>
  nume: arn:aws:eks:us-east-1:123456789012:cluster/my-cluster
contexte:
- context:
    cluster: arn:aws:eks:us-east-1:123456789012:cluster/my-cluster
    utilizator: arn:aws:eks:us-east-1:123456789012:cluster/my-cluster
  nume: arn:aws:eks:us-east-1:123456789012:cluster/my-cluster
context-actual: arn:aws:eks:us-east-1:123456789012:cluster/my-cluster
fel: Config
preferințe: {}
utilizatori:
- nume: arn:aws:eks:us-east-1:123456789012:cluster/my-cluster
  utilizator:
    executiv:
      apiVersion: client.authentication.k8s.io/v1alpha1
      argumente:
      - --regiune
      - noi-est-1
      - ex
      - get-token
      - --nume-cluster
      - grupul meu
      comanda: aws

Conținutul fișierului aws-auth-cm.yaml după ce am făcut modificările sunt

apiVersion: v1
fel: ConfigMap
metadate:
  nume: aws-auth
  spațiu de nume: kube-system
date:
  hartăRoluri: |
          # - rolearn: <ARN-ul rolului instanței (nu al profilului instanței)>
          # nume de utilizator: system:node:{{EC2PrivateDNSName}}
          # grupuri:
          # - system:bootstrappers
          # - sistem:noduri
    - rolearn: arn:aws:iam::375712918983:role/myAmazonEKSClusterRole
      nume de utilizator: myAmazonEKSClusterRole
      grupuri:
        - sistem:masteri

Vă rugăm să ne ajutați cu asta sau să dați câteva indicații?

Vă rog să-mi spuneți dacă aveți întrebări.

Puncte:1
drapel in

Veți dori unul dintre cele 3 lucruri; fie:

  • asumă arn:aws:iam::123456789012:role/myAmazonEKSClusterRole într-o sesiune de terminal astfel încât aws eks get-token conduse de kubectl se va comporta corect
  • creați un profil awscli care presupune arn:aws:iam::123456789012:role/myAmazonEKSClusterRole rol și actualizați argumente: a include [..., „--profil”, „orice-ai-numi-acel-profil”,...]
  • sau asumați rolul într-un terminal, alergați aws eks get-tokenși puneți acea acreditare statică în kubeconfig, deoarece se pare că nu aveți nevoie de acreditările pentru foarte mult timp doar pentru a actualiza acel ConfigMap

Pentru primul, vreau să spun aws sts assume-role --role-arn arn:aws:iam::123456789012:role/myAmazonEKSClusterRole ... | tee sts-creds.json și apoi exportați AWS_ACCESS_KEY_ID= AWS_SECRET_KEY= AWS_SESSION_TOKEN= pe baza conținutului acelui json

Pentru al doilea, vreau să spun:

$ cat >> $HOME/.aws/config <<FOO
[profilul meu-cluster]
assume_role = arn:aws:iam::123456789012:role/myAmazonEKSClusterRole
source_profile = orice
; sau credential_source = orice
FOO

conform această documentație

drapel in
Am încercat primul pas, dar în zadar. Pentru al treilea pas, unde ar trebui să înlocuiesc acreditările în kubeconfig?
drapel in
`kubectl config set-credential tmp --token "$here" && kubectl config set-context --current --user tmp`
drapel in
Am făcut aceste modificări și apoi am schimbat și fișierul aws-auth-cm.yaml (atașat în întrebare). S-a executat `kubectl apply -f aws-auth-cm.yaml` și a primit eroarea `error: Trebuie să fiți conectat la server (serverul a cerut clientului să furnizeze acreditări)`
drapel in
(a) **CU SIGUR** nu doriți să eliminați acea mapare a profilului de instanță sau Nodes nu se vor alătura clusterului dvs. (b) și chiar dacă ați făcut-o, nu utilizați astfel de indentare mixtă, deoarece yaml este foarte pretențios despre spații albe (c) ați verificat `kubectl get nodes` înainte de acea `aplicare` pentru a vă asigura că `aws eks get-token` a făcut așa cum ar trebui?
drapel in
Am verificat `kubectl get svc` și `get all`. Amandoi nu functionau. Deoarece nu am apucat să creez noduri (pentru că acel pas nu a fost acoperit în AWS Tutorial până acolo unde am ajuns), am comentat partea nodurilor arn în fișierul yaml.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.