Crea EKS cluster Amazon locali su AWS Outposts per un'elevata disponibilità - Amazon EKS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea EKS cluster Amazon locali su AWS Outposts per un'elevata disponibilità

Puoi utilizzare i cluster locali per eseguire l'intero EKS cluster Amazon localmente su AWS Outposts. Ciò consente di ridurre il rischio di tempi di inattività delle applicazioni che possono derivare da disconnessioni temporanee del cloud dalla rete. Queste disconnessioni di rete possono essere causate da interruzioni della fibra o da eventi meteorologici. Perché l'intero Kubernetes il cluster viene eseguito localmente su Outposts, le applicazioni rimangono disponibili. Durante le disconnessioni del cloud dalla rete è possibile eseguire operazioni del cluster. Per ulteriori informazioni, consulta Prepara EKS i cluster Amazon locali su AWS Outposts per le disconnessioni di rete. Il diagramma seguente mostra un'implementazione di un cluster locale.

Cluster locale su Outpost

I cluster locali sono generalmente disponibili per l'uso con i rack di Outposts.

Regioni supportate AWS

Puoi creare cluster locali AWS nelle seguenti regioni: Stati Uniti orientali (Ohio), Stati Uniti orientali (Virginia settentrionale), Stati Uniti occidentali (California settentrionale), Stati Uniti occidentali (Oregon), Asia Pacifico (Seoul), Asia Pacifico (Singapore), Asia Pacifico (Sydney), Asia Pacifico (Tokyo), Canada (Centrale), Europa (Francoforte), Europa (Irlanda), Europa (Londra), Medio Oriente (Bahrein) Bahrein) e Sud America (San Paolo). Per informazioni dettagliate sulle funzionalità supportate, consulta la sezione Confronto tra le opzioni di implementazione.

Argomenti

    Crea un cluster EKS locale Amazon

    Puoi creare un cluster locale con i seguenti strumenti descritti in questa pagina:

    Puoi anche usare Amazon AWS CLIEKSAPIAWS SDKs, the AWS CloudFormationo Terraform per creare cluster su Outposts.

    eksctl

    Per creare un cluster locale con eksctl

    1. Installa la versione 0.194.0 o successiva dello strumento da riga di eksctl comando sul tuo dispositivo o AWS CloudShell. Per l'installazione o l'aggiornamento di eksctl, consulta la sezione Installation nella documentazione di eksctl.

    2. Copia i seguenti contenuti sul tuo dispositivo. Sostituisci i valori seguenti, quindi esegui il comando modificato per creare il file outpost-control-plane.yaml:

      • Replace (Sostituisci) region-code con la AWS regione supportata in cui desideri creare il cluster.

      • Replace (Sostituisci) my-cluster con un nome per il tuo cluster. Il nome può contenere solo caratteri alfanumerici (con distinzione tra lettere maiuscole e minuscole) e trattini. Deve iniziare con un carattere alfanumerico e non può superare i 100 caratteri. Il nome deve essere univoco all'interno della AWS regione e AWS dell'account in cui stai creando il cluster. Il nome deve essere univoco all'interno AWS della regione e AWS dell'account in cui stai creando il cluster.

      • Replace (Sostituisci) vpc-ExampleID1 e subnet-ExampleID1 con la IDs tua sottorete esistente VPC e quella esistente. La sottorete VPC and deve soddisfare i requisiti in Create a VPC e subnet for Amazon EKS clusters on Outposts. AWS

      • Replace (Sostituisci) uniqueid con l'ID del tuo Outpost.

      • Replace (Sostituisci) m5.large con un tipo di istanza disponibile sul tuo Outpost. Prima di scegliere un tipo di istanza, consulta la sezione Seleziona i tipi di istanze e i gruppi di posizionamento per EKS i cluster Amazon su AWS Outposts in base a considerazioni sulla capacità. Vengono implementate tre istanze del piano di controllo. Non puoi modificare questo numero.

        cat >outpost-control-plane.yaml <<EOF apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: "1.24" vpc: clusterEndpoints: privateAccess: true id: "vpc-vpc-ExampleID1" subnets: private: outpost-subnet-1: id: "subnet-subnet-ExampleID1" outpost: controlPlaneOutpostARN: arn:aws: outposts:region-code:111122223333:outpost/op-uniqueid controlPlaneInstanceType: m5.large EOF

        Per un elenco completo di tutte le opzioni e le impostazioni predefinite disponibili, consulta lo schema del file Outposts AWS Support and Config nella documentazione. eksctl

    3. Crea il cluster utilizzando il file di configurazione creato nel passaggio precedente. eksctlcrea una sottorete VPC e una su Outpost in cui distribuire il cluster.

      eksctl create cluster -f outpost-control-plane.yaml

      Il provisioning del cluster richiede diversi minuti. Durante la creazione del cluster, vengono visualizzate diverse righe di output. L'ultima riga di output è simile alla seguente riga di esempio.

      [✓] EKS cluster "my-cluster" in "region-code" region is ready
      Suggerimento

      Per visualizzare la maggior parte delle opzioni che è possibile specificare durante la creazione di un cluster con eksctl, utilizza il comando eksctl create cluster --help. Per visualizzare tutte le opzioni disponibili, puoi utilizzare un file config. Per ulteriori informazioni, consulta Uso dei file config e lo Schema dei file config nella documentazione di eksctl. Puoi trovare esempi di file di configurazione su GitHub.

      Il eksctl comando ha creato automaticamente una voce di accesso per il IAM principale (utente o ruolo) che ha creato il cluster e ha concesso all'amministratore principale le autorizzazioni dell'amministratore IAM principale per Kubernetes oggetti sul cluster. Se non si desidera che il creatore del cluster disponga dell'accesso come amministratore a Kubernetes oggetti sul cluster, aggiungi il testo seguente al file di configurazione precedente: bootstrapClusterCreatorAdminPermissions: false (allo stesso livello di metadatavpc, eoutpost). Se hai aggiunto l'opzione, dopo la creazione del cluster, devi creare una voce di accesso per almeno un IAM principale, altrimenti nessun IAM principale avrà accesso a Kubernetes oggetti sul cluster.

    AWS Management Console

    Per creare il tuo cluster con AWS Management Console

    1. È necessaria una sottorete esistente VPC e che soddisfi EKS i requisiti di Amazon. Per ulteriori informazioni, consulta Crea sottoreti VPC e sottoreti per i EKS cluster Amazon su Outposts AWS.

    2. Se hai già un IAM ruolo di cluster locale o intendi creare il tuo cluster coneksctl, puoi saltare questo passaggio. Per impostazione predefinita, eksctl crea un ruolo per te.

      1. Esegui il comando seguente per creare un JSON file di policy di IAM fiducia.

        cat >eks-local-cluster-role-trust-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF
      2. Crea il IAM ruolo del EKS cluster Amazon. Per creare un IAM ruolo, al IAMresponsabile che crea il ruolo deve essere assegnata l'iam:CreateRoleazione (autorizzazione).

        aws iam create-role --role-name myAmazonEKSLocalClusterRole --assume-role-policy-document file://"eks-local-cluster-role-trust-policy.json"
      3. Allega la policy EKS gestita di Amazon denominata mazonEKSLocalOutpostClusterPolicyA al ruolo. Per allegare una IAM politica a un IAMprincipale, al principale che allega la politica deve essere assegnata una delle seguenti IAM azioni (autorizzazioni): iam:AttachUserPolicy o. iam:AttachRolePolicy

        aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy --role-name myAmazonEKSLocalClusterRole
    3. Apri la EKSconsole Amazon.

    4. Nella parte superiore dello schermo della console, assicurati di aver selezionato una AWS regione supportata.

    5. Seleziona Aggiungi cluster e quindi Crea.

    6. Nella pagina Configure cluster (Configura cluster), inserisci o seleziona i valori per i campi seguenti:

      • Kubernetes posizione del piano di controllo: scegli AWS Outposts.

      • Outpost ID (ID Outpost): scegli l'ID dell'Outpost su cui vuoi creare il tuo piano di controllo.

      • Instance type (Tipo di istanza): seleziona un tipo di istanza. Vengono visualizzati solo i tipi di istanza disponibili nel tuo Outpost. Nell'elenco a discesa, ogni tipo di istanza descrive per quanti nodi è consigliato il tipo di istanza. Prima di scegliere un tipo di istanza, consulta la sezione Seleziona i tipi di istanze e i gruppi di posizionamento per EKS i cluster Amazon su AWS Outposts in base a considerazioni sulla capacità. Tutte le repliche vengono implementate utilizzando lo stesso tipo di istanza. Non è possibile modificare il tipo di istanza dopo la creazione del cluster. Vengono implementate tre istanze del piano di controllo. Non puoi modificare questo numero.

      • Nome: un nome per il cluster. Deve essere unico nel tuo AWS account. Il nome può contenere solo caratteri alfanumerici (con distinzione tra lettere maiuscole e minuscole) e trattini. Deve iniziare con un carattere alfanumerico e non può superare i 100 caratteri. Il nome deve essere univoco all'interno della AWS regione e AWS dell'account in cui stai creando il cluster. Il nome deve essere univoco all'interno AWS della regione e AWS dell'account in cui stai creando il cluster.

      • Kubernetes versione: scegli la Kubernetes versione che desideri utilizzare per il tuo cluster. È preferibile selezionare la versione più recente, a meno che non occorra utilizzare una versione precedente.

      • Ruolo del servizio cluster: scegli il IAM ruolo del EKS cluster Amazon che hai creato in un passaggio precedente per consentire Kubernetes piano di controllo per gestire AWS le risorse.

      • Kubernetes accesso da amministratore del cluster: se si desidera IAM che il responsabile (ruolo o utente) che crea il cluster disponga dell'accesso come amministratore al Kubernetes oggetti sul cluster, accetta l'impostazione predefinita (consenti). Amazon EKS crea una voce di accesso per il IAM principale e concede le autorizzazioni di amministratore del cluster per la voce di accesso. Per ulteriori informazioni sulle voci di accesso, consulta la sezione Grant IAM accesso degli utenti a Kubernetes con voci di EKS accesso.

        Se desideri che un IAM principale diverso da quello principale che crea il cluster abbia accesso come amministratore a Kubernetes oggetti del cluster, scegli l'opzione non consentire. Dopo la creazione del cluster, qualsiasi IAM principale che disponga IAM delle autorizzazioni per creare voci di accesso può aggiungere una voce di accesso per tutti IAM i principali a cui è necessario accedere Kubernetes oggetti del cluster. Per ulteriori informazioni sulle IAM autorizzazioni richieste, consulta Actions defined by Amazon Elastic Kubernetes Service nel Service Authorization Reference. Se scegli l'opzione non allow e non crei alcuna voce di accesso, nessun IAM mandante avrà accesso a Kubernetes oggetti sul cluster.

      • Tag (Facoltativo): aggiunge eventuali tag al cluster. Per ulteriori informazioni, consulta Organizza EKS le risorse Amazon con i tag. Quando hai finito con questa pagina, seleziona Avanti.

    7. Nella pagina Specifica reti, seleziona i valori dei campi riportati di seguito:

      • VPC— Scegli un esistenteVPC. VPCDeve avere un numero sufficiente di indirizzi IP disponibili per il cluster, tutti i nodi e altro Kubernetes risorse che si desidera creare. VPCÈ necessario soddisfare i requisiti indicati in VPCRequisiti e considerazioni.

      • Sottoreti: per impostazione predefinita, tutte le sottoreti disponibili nel campo VPC specificato nel campo precedente sono preselezionate. Le sottoreti scelte devono soddisfare i requisiti indicati in Requisiti e considerazioni sulla sottorete.

      • Gruppi di sicurezza: (Facoltativo) Specificate uno o più gruppi di sicurezza che desiderate che Amazon associ EKS alle interfacce di rete che crea. Amazon crea EKS automaticamente un gruppo di sicurezza che consente la comunicazione tra il tuo cluster e il tuoVPC. Amazon EKS associa questo gruppo di sicurezza, e tutti quelli che scegli, alle interfacce di rete che crea. Per ulteriori informazioni sul gruppo di sicurezza del cluster EKS creato da Amazon, consultaVisualizza i requisiti EKS dei gruppi di sicurezza Amazon per i cluster. Puoi modificare le regole nel gruppo di sicurezza del cluster EKS creato da Amazon. Se scegli di aggiungere i tuoi gruppi di sicurezza, non puoi modificare quelli che scegli dopo la creazione del cluster. Per consentire agli host on-premise di comunicare con l'endpoint del cluster, è necessario consentire il traffico in entrata dal gruppo di sicurezza del cluster. Per i cluster che non dispongono di una connessione Internet in ingresso e in uscita (noti anche come cluster privati), devi eseguire una delle seguenti operazioni:

        • Aggiungi il gruppo di sicurezza associato agli endpoint richiesti. VPC Per ulteriori informazioni sugli endpoint richiesti, vedere VPCUtilizzo degli endpoint dell'interfaccia in Accesso tramite sottorete ai servizi. AWS

        • Modifica il gruppo di sicurezza EKS creato da Amazon per consentire il traffico proveniente dal gruppo di sicurezza associato agli VPC endpoint. Quando hai finito con questa pagina, seleziona Avanti.

    8. Nella pagina Configura osservabilità, puoi scegliere facoltativamente le opzioni Parametri e Registrazione del piano di controllo che desideri attivare. Per impostazione predefinita, i tipi di log sono disattivati.

    9. Nella pagina Rivedi e crea, controlla le informazioni che hai inserito o selezionato nelle pagine precedenti. Se devi apportare modifiche, seleziona Edit (Modifica). Quando sei soddisfatto, scegli Crea. Il campo Stato mostra CREATINGmentre viene eseguito il provisioning del cluster.

      Il provisioning del cluster richiede diversi minuti.

    Visualizza il tuo cluster EKS locale Amazon

    1. Dopo aver creato il cluster, puoi visualizzare le istanze del piano EC2 di controllo Amazon che sono state create.

      aws ec2 describe-instances --query 'Reservations[*].Instances[*].{Name:Tags[?Key==`Name`]|[0].Value}' | grep my-cluster-control-plane

      Di seguito viene riportato un output di esempio:

      "Name": "my-cluster-control-plane-id1" "Name": "my-cluster-control-plane-id2" "Name": "my-cluster-control-plane-id3"

      Ogni istanza è contaminata dal taint node-role.eks-local.amazonaws.com/control-plane per evitare che i carichi di lavoro vengano pianificati sulle istanze del piano di controllo. Per ulteriori informazioni sulle macchie, consulta Taints and Tolerations nel Kubernetes documentazione. Amazon monitora EKS continuamente lo stato dei cluster locali. Eseguiamo operazioni di gestione automatiche, come applicazioni di patch di sicurezza e riparazioni di istanze non integre. Quando i cluster locali vengono disconnessi dal cloud, eseguiamo una serie di operazioni per garantire che il cluster venga ripristinato a uno stato di integrità al momento della riconnessione.

    2. Se hai creato il cluster utilizzando eksctl, puoi ignorare questo passaggio. eksctl lo completerà automaticamente per tuo conto. Abilita kubectl per consentire la comunicazione con il cluster aggiungendo un nuovo contesto al file config kubectl. Per istruzioni su come creare e aggiornare il file, consulta Connect kubectl a un EKS cluster creando un file kubeconfig.

      aws eks update-kubeconfig --region region-code --name my-cluster

      Di seguito viene riportato un output di esempio:

      Added new context arn:aws: eks:region-code:111122223333:cluster/my-cluster to /home/username/.kube/config
    3. Per connetterti ai tuoi cluster locali Kubernetes APIserver, accedi al gateway locale per la sottorete o connettiti dall'VPCinterno di. Per ulteriori informazioni sulla connessione di un rack Outpost alla rete locale, consulta Come funzionano i gateway locali per i rack nella Guida per l'utente di Outposts AWS . Se utilizzi Direct VPC Routing e la sottorete Outpost dispone di un percorso verso il gateway locale, gli indirizzi IP privati di Kubernetes le istanze del piano di controllo vengono trasmesse automaticamente sulla rete locale. Il cluster locale Kubernetes APIl'endpoint del server è ospitato in Amazon Route 53 (Route 53). L'endpoint del API servizio può essere risolto dai DNS server pubblici negli indirizzi IP privati dei server Kubernetes. API

      Cluster locali» Kubernetes le istanze del piano di controllo sono configurate con interfacce di rete elastiche statiche con indirizzi IP privati fissi che non cambiano durante il ciclo di vita del cluster. Macchine che interagiscono con Kubernetes APIil server potrebbe non avere connettività alla Route 53 durante le disconnessioni di rete. In tal caso, si consiglia di configurare /etc/hosts con gli indirizzi IP privati statici per continuare le operazioni. Ti consigliamo inoltre di configurare DNS i server locali e di collegarli a Outpost. Per ulteriori informazioni, consulta la documentazione di AWS Outposts. Esegui il comando seguente per confermare che la comunicazione sia stata stabilita con il tuo cluster.

      kubectl get svc

      Di seguito viene riportato un output di esempio:

      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 28h
    4. (Facoltativo) Verifica l'autenticazione del cluster locale quando si trova in uno stato disconnesso dal AWS cloud. Per istruzioni, consulta Prepara EKS i cluster Amazon locali su AWS Outposts per le disconnessioni di rete.

    Risorse interne

    Amazon EKS crea le seguenti risorse sul tuo cluster. Le risorse sono per uso EKS interno di Amazon. Per il corretto funzionamento del cluster, non modificare o modificare queste risorse.

    • I seguenti mirror Pod:

      • aws-iam-authenticator-node-hostname

      • eks-certificates-controller-node-hostname

      • etcd-node-hostname

      • kube-apiserver-node-hostname

      • kube-controller-manager-node-hostname

      • kube-scheduler-node-hostname

    • I seguenti componenti aggiuntivi autogestiti:

      • kube-system/coredns

      • kube-system/kube-proxy(non creato finché non aggiungi il tuo primo nodo)

      • kube-system/aws-node (non viene creato finché non si aggiunge il primo nodo). I cluster locali utilizzano Amazon VPC CNI plugin for Kubernetes plugin per reti di cluster. Non modificare la configurazione per le istanze del piano di controllo (pod denominati aws-node-controlplane-*). Ci sono variabili di configurazione che consentono di modificare il valore predefinito quando il plugin crea nuove interfacce di rete. Per ulteriori informazioni, consulta la documentazione su GitHub.

    • I seguenti servizi:

      • default/kubernetes

      • kube-system/kube-dns

    • Una PodSecurityPolicy denominata eks.system

    • Una ClusterRole denominata eks:system:podsecuritypolicy

    • Una ClusterRoleBinding denominata eks:system

    • Un valore predefinito PodSecurityPolicy

    • Oltre al gruppo di sicurezza del cluster, Amazon EKS crea un gruppo di sicurezza denominato nel tuo AWS accounteks-local-internal-do-not-use-or-edit-cluster-name-uniqueid . Questo gruppo di sicurezza consente al traffico di fluire liberamente tra Kubernetes componenti in esecuzione sulle istanze del piano di controllo.

    Fasi successive consigliate: