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.
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
eksctl
Per creare un cluster locale con eksctl
-
Installa la versione
0.194.0
o successiva dello strumento da riga dieksctl
comando sul tuo dispositivo o AWS CloudShell. Per l'installazione o l'aggiornamento dieksctl
, consulta la sezione Installationnella documentazione di eksctl
. -
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
esubnet-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
-
-
Crea il cluster utilizzando il file di configurazione creato nel passaggio precedente.
eksctl
crea 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 comandoeksctl create cluster --help
. Per visualizzare tutte le opzioni disponibili, puoi utilizzare un fileconfig
. Per ulteriori informazioni, consulta Uso dei file confige lo Schema dei file config nella documentazione di eksctl
. Puoi trovare esempi di file di configurazionesu 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 dimetadata
vpc
, 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
-
È 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.
-
Se hai già un IAM ruolo di cluster locale o intendi creare il tuo cluster con
eksctl
, puoi saltare questo passaggio. Per impostazione predefinita,eksctl
crea un ruolo per te.-
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
-
Crea il IAM ruolo del EKS cluster Amazon. Per creare un IAM ruolo, al IAMresponsabile che crea il ruolo deve essere assegnata l'
iam:CreateRole
azione (autorizzazione).aws iam create-role --role-name myAmazonEKSLocalClusterRole --assume-role-policy-document file://"eks-local-cluster-role-trust-policy.json"
-
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
-
-
Apri la EKSconsole Amazon
. -
Nella parte superiore dello schermo della console, assicurati di aver selezionato una AWS regione supportata.
-
Seleziona Aggiungi cluster e quindi Crea.
-
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.
-
-
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.
-
-
-
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.
-
Per ulteriori informazioni su Prometheus opzione metriche, vediFase 1: accendere Prometheus metriche.
-
Per ulteriori informazioni sulle opzioni Registrazione del piano di controllo, consulta Invia i registri del piano di controllo ai CloudWatch registri. Quando hai finito con questa pagina, seleziona Avanti.
-
-
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
-
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 andTolerations 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. -
Se hai creato il cluster utilizzando
eksctl
, puoi ignorare questo passaggio.eksctl
lo completerà automaticamente per tuo conto. Abilitakubectl
per consentire la comunicazione con il cluster aggiungendo un nuovo contesto al fileconfig
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
-
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
-
(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 denominatiaws-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 documentazionesu GitHub.
-
-
I seguenti servizi:
-
default/kubernetes
-
kube-system/kube-dns
-
-
Una
PodSecurityPolicy
denominataeks.system
-
Una
ClusterRole
denominataeks:system:podsecuritypolicy
-
Una
ClusterRoleBinding
denominataeks:system
-
Un valore predefinito PodSecurityPolicy
-
Oltre al gruppo di sicurezza del cluster, Amazon EKS crea un gruppo di sicurezza denominato nel tuo AWS account
eks-local-internal-do-not-use-or-edit-
. Questo gruppo di sicurezza consente al traffico di fluire liberamente tra Kubernetes componenti in esecuzione sulle istanze del piano di controllo.cluster-name
-uniqueid
Fasi successive consigliate:
-
Concedi alle IAM entità l'accesso al tuo cluster. Se desideri che le entità vengano visualizzate Kubernetes risorse nella EKS console Amazon, concedi le autorizzazioni richieste alle entità.
-
Acquisisci familiarità con ciò che accade durante le disconnessioni dalla rete.
-
Prendi in considerazione la possibilità di impostare un piano di backup per
etcd
. Amazon EKS non supporta il backup e il ripristino automatizzatietcd
per i cluster locali. Per ulteriori informazioni, consulta Backup di un cluster etcdnel Kubernetes documentazione. Le due opzioni principali sono l'utilizzo etcdctl
per automatizzare l'acquisizione di istantanee o l'utilizzo del backup del volume di EBS storage di Amazon.