Come posso risolvere gli errori nel mio ambiente Amazon EKS dopo aver creato un cluster?

Ultimo aggiornamento: 24/08/2021

Dopo la creazione di un cluster, vengono visualizzati errori nell'ambiente Amazon Elastic Kubernetes Service (Amazon EKS).

Breve descrizione

Puoi utilizzare il flusso di lavoro di automazione AWSPremiumSupport-TroubleshootEKSCluster per risolvere gli errori più comuni con il tuo ambiente Amazon EKS. Il flusso di lavoro fornisce un report dettagliato che elenca errori, avvisi e collegamenti alle best practice consigliate da AWS.

Puoi utilizzare il flusso di lavoro di automazione AWSPremiumSupport-TroubleshootEKSCluster se si verificano i seguenti problemi:

  • Il cluster autoscaler Kubernetes non funziona.
  • Il bilanciatore del carico interno non viene creato in sottoreti private o pubbliche.
  • Non sai se i tuoi nodi (worker) utilizzano la versione più recente di Amazon Machine Image (AMI).
  • Ricevi errori di accesso negato nei tuoi pod aws-node.
  • Non è possibile estrarre le immagini di Amazon Elastic Container Registry (Amazon ECR).
  • I nodi gestiti non si stabilizzano o i nodi autogestiti non entrano a far parte di un cluster.

Il flusso di lavoro di automazione AWSPremiumSupport-TroubleshootEKSCluster esegue i seguenti controlli:

  • Controlla i gruppi Auto Scaling per i tag di sottorete del Cluster AutoScaler per i bilanciatori del carico interni e con connessione a Internet e i gruppi di sicurezza worker.
    Importante: se ai nodi (worker) sono associati più gruppi di sicurezza, è necessario applicare un tag a uno dei gruppi di sicurezza.  Imposta la chiave del tag su kubernetes.io/cluster/your-cluster-name. Imposta il valore su proprietario. Questo tag è facoltativo se è associato un solo gruppo di sicurezza ai nodi (worker).
  • Controlla la presenza della più recente AMI sui nodi (worker).
  • Controlla che siano presenti le impostazioni minime e consigliate sulle regole del gruppo di sicurezza. Ad esempio, il flusso di lavoro verifica l'ingresso e l'uscita dal gruppo di sicurezza del cluster (ovvero tutti i gruppi di sicurezza collegati al cluster) e dal gruppo di sicurezza worker.
  • Controlla le configurazioni personalizzate della lista di controllo accessi alla rete (lista di controllo degli accessi di rete).
  • Verifica le policy di AWS Identity and Access Management (IAM) sui nodi (worker), incluse le policy di AmazonEKSWorkerNodePolicy e AmazonEC2ContainerRegistryReadOnly.
  • Controlla se i nodi (worker) possono connettersi a Internet controllando le tabelle di routing delle sottoreti in cui si trovano.

Risoluzione

Rendi individuabili i nodi (worker)

Per rendere individuabili i nodi (worker), utilizza il flusso di lavoro di automazione AWSPremiumSupport-TroubleshootEKSCluster e il cluster Amazon EKS:

1.    Apri la console di Amazon EC2.

2.    Nel riquadro di navigazione, scegli Istanze.

3.    Seleziona le istanze Amazon Elastic Compute Cloud (Amazon EC2) per i tuoi nodi (worker), quindi scegli la scheda Tag.

4.    Scegli Aggiungi/Modifica tag.

5.    Per Chiave, inserisci kubernetes.io/cluster/nome-tuo-cluster. Per Valore, inserisci "owned" (proprietario)/"shared" (condiviso).

6.    Scegli Salva.

Il flusso di lavoro di automazione AWSPremiumSupport-TroubleshootEKSCluster viene eseguito con la seguente policy. Questa policy deve includere autorizzazioni minime per accedere al cluster. È possibile accedere al cluster tramite AutomationAssumeRole o può accedervi l'utente che esegue l'automazione.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AWSPremiumSupportTroubleshootEKSCluster",
            "Effect": "Allow",
            "Action": [
                "eks:ListNodegroups",
                "eks:DescribeCluster",
                "eks:DescribeNodegroup",
                "iam:GetInstanceProfile",
                "iam:ListInstanceProfiles",
                "iam:ListAttachedRolePolicies",
                "autoscaling:DescribeAutoScalingGroups",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeInstances",
                "ec2:DescribeNatGateways",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeNetworkAcls",
                "ec2:DescribeRouteTables"
            ],
            "Resource": "*"
        },
        {
            "Sid": "GetPublicSSMParams",
            "Effect": "Allow",
            "Action": "ssm:GetParameter",
            "Resource": [
                "arn:aws:ssm:*:*:parameter/aws/service/eks/optimized-ami/*/amazon-linux-2/recommended/image_id",
                "arn:aws:ssm:*:*:parameter/aws/service/ami-windows-latest/Windows_Server-2019-English-Core-EKS_Optimized-*/image_id",
                "arn:aws:ssm:*:*:parameter/aws/service/ami-windows-latest/Windows_Server-2019-English-Full-EKS_Optimized-*/image_id",
                "arn:aws:ssm:*:*:parameter/aws/service/ami-windows-latest/Windows_Server-1909-English-Core-EKS_Optimized-*/image_id",
                "arn:aws:ssm:*:*:parameter/aws/service/eks/optimized-ami/*/amazon-linux-2-gpu/recommended/image_id"
            ]
        },
        {
            "Sid": "UploadObjectToS3",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketAcl",
                "s3:PutObject"
            ],
            "Resource": "YOUR_BUCKET_NAME>"
        }
    ]
}

Esegui il flusso di lavoro di automazione dalla console di AWS Systems Manager

1.    Apri la console di Systems Manager.

2.    Nel riquadro di navigazione, scegli Automazione.

Nota: se la home page di Systems Manager si apre per prima, scegli l'icona del menu per aprire il riquadro di navigazione, quindi scegli Automazione.

3.    Scegli Esegui automazione.

4.    Nella casella di ricerca del documento di automazione, inserisci AWSPremiumSupport-TroubleshootEKSCluster, quindi premi Invio.

5.    Dai risultati della ricerca, seleziona AWSPremiumSupport-TroubleshootEKSCluster.

Nota: il proprietario del documento è Amazon.

6.    Nella scheda Descrizione documento, verifica che la versione del documento sia impostata su Versione di default al momento dell'esecuzione.

7.    Scegli Avanti.

8.    Per Esegui l'automazione del documento, scegli Esecuzione semplice.

9.    Nella sezione Parametri di input, imposta i seguenti parametri:

Imposta ClusterName sul nome del cluster. Questo cluster deve essere in esecuzione nel tuo account AWS.
Imposta AutomationAssumeRole sul ruolo IAM che desideri utilizzare per il flusso di lavoro.
(Facoltativo) Se necessario, imposta BucketName sul bucket Amazon Simple Storage Service (Amazon S3) in cui desideri caricare il report.

10.    Scegli Esegui.

11.    Per monitorare l'avanzamento dell'esecuzione, scegli l'Automazione in esecuzione, quindi scegli la scheda Passaggi.

12.    Al termine dell'esecuzione, scegli la scheda Descrizioni, quindi scegli Visualizza output per visualizzare i risultati.

Nota: i risultati sono sotto forma di un report dettagliato che elenca tutti gli errori e gli avvisi per il cluster.

Esegui il flusso di lavoro di automazione dalla AWS CLI

Nota: se ricevi un messaggio di errore durante l’esecuzione dei comandi della AWS Command Line Interface (AWS CLI), assicurati di utilizzare la versione più recente della AWS CLI.

Se desideri che il report sia in un bucket S3, esegui il seguente comando:

aws ssm start-automation-execution --document-name "AWSPremiumSupport-TroubleshootEKSCluster" --document-version "\$DEFAULT" --parameters '{"ClusterName":["your-eks-cluster"],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/eks-troubleshooter-role"],"S3BucketName":["your_bucket"]}' --region your_region

Se non vuoi caricare il report su un bucket S3, esegui il seguente comando:

aws ssm start-automation-execution --document-name "AWSPremiumSupport-TroubleshootEKSCluster" --document-version "\$DEFAULT" --parameters '{"ClusterName":["your-eks-cluster"],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/eks-troubleshooter-role"]}' --region your_region

Questo articolo ti è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?