Endpoint del server API del cluster - Amazon EKS

Contribuisci a migliorare questa pagina

Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.

Endpoint del server API del cluster

Questo argomento consente di abilitare l’accesso privato per l’endpoint del server API Kubernetes del cluster Amazon EKS e limitare, o disabilitare completamente, l’accesso pubblico in modo che non sia accessibile da Internet.

Quando si crea un nuovo cluster, Amazon EKS crea un endpoint per il server API Kubernetes gestito utilizzato per comunicare con il cluster (usando strumenti di gestione Kubernetes, ad esempio kubectl). Per impostazione predefinita, questo endpoint del server API è pubblico in Internet e l’accesso al server API è protetto utilizzando una combinazione di AWS Identity and Access Management (AWS IAM) e dal controllo degli accessi basato sul ruolo (RBAC) Kubernetes nativo. Questo endpoint è noto come l’endpoint pubblico del cluster. Esiste anche un endpoint privato del cluster. Per maggiori informazioni sull’endpoint privato del cluster, consulta la sezione Endpoint privato del cluster seguente.

formato dell’endpoint del cluster IPv6

EKS crea un endpoint dual-stack unico nel seguente formato per i nuovi cluster IPv6 creati dopo ottobre 2024. Un cluster IPv6 è un cluster in cui si seleziona IPv6 nell’impostazione della famiglia IP (ipFamily) del cluster.

AWS

Endpoint pubblico/privato del cluster EKS: eks-cluster.region.api.aws

AWS GovCloud (US)

Endpoint pubblico/privato del cluster EKS: eks-cluster.region.api.aws

Amazon Web Services in China

Endpoint pubblico/privato del cluster EKS: eks-cluster.region.api.amazonwebservices.com.rproxy.govskope.ca.cn

Nota

L’endpoint del cluster dual-stack è stato introdotto nell’ottobre 2024. Per ulteriori informazioni sui cluster IPv6, consulta Informazioni sugli indirizzi IPv6 per cluster, pod e servizi. I cluster creati prima di ottobre 2024 usano invece il seguente formato di endpoint.

formato dell’endpoint del cluster IPv4

EKS crea un endpoint unico nel seguente formato per ogni cluster che seleziona IPv4 nell’impostazione della famiglia IP (ipFamily) del cluster:

AWS

Endpoint pubblico/privato del cluster EKS eks-cluster.region.eks.amazonaws.com

AWS GovCloud (US)

Endpoint pubblico/privato del cluster EKS eks-cluster.region.eks.amazonaws.com

Amazon Web Services in China

Endpoint pubblico/privato del cluster EKS eks-cluster.region.amazonwebservices.com.rproxy.govskope.ca.cn

Nota

Prima di ottobre 2024, anche i cluster IPv6 usavano questo formato di endpoint. Per questi cluster, sia l’endpoint pubblico che l’endpoint privato dispongono solo di indirizzi IPv4 risolti da questo endpoint.

Endpoint privato del cluster

Puoi abilitare l'accesso privato al server API Kubernetes in modo che tutte le comunicazioni tra i nodi di lavoro e il server API rimangano all'interno del VPC. È possibile limitare gli indirizzi IP che possono accedere al server API da Internet o disabilitare completamente l'accesso a Internet al server API.

Nota

Poiché questo endpoint è per il server API Kubernetes e non un endpoint PrivateLink AWS tradizionale per la comunicazione con un’API AWS , non viene visualizzato come un endpoint nella console Amazon VPC.

Quando si abilita l’accesso privato all’endpoint per il cluster, Amazon EKS crea una zona ospitata privata Route 53 per conto dell’utente e la associa al VPC del cluster. Questa zona ospitata privata è gestita da Amazon EKS e non viene visualizzata nelle risorse Route 53 dell’account. Affinché la zona ospitata privata instradi correttamente il traffico verso il tuo server API, il VPC deve avere enableDnsHostnames e enableDnsSupport impostati su true e le opzioni DHCP impostate per il VPC devono includere AmazonProvidedDNS nell'elenco dei server dei nomi di dominio. Per ulteriori informazioni, consultare Visualizzazione e aggiornamento del supporto DNS per il VPC nella Guida per l'utente di Amazon VPC.

È possibile definire i requisiti di accesso all'endpoint del server API quando si crea un nuovo cluster e aggiornare l'accesso endpoint del server API per un cluster in qualsiasi momento.

Modifica dell'accesso all'endpoint del cluster

Utilizza le procedure in questa sezione per modificare l'accesso all'endpoint per un cluster esistente. La tabella seguente mostra le combinazioni di accesso all'endpoint del server API supportate e il comportamento associato.

Accesso pubblico all'endpoint Accesso privato all'endpoint Comportamento

Abilitato

Disabilitato

  • Questo è il comportamento di default per nuovi cluster Amazon EKS.

  • Le richieste API Kubernetes provenienti dal VPC del cluster (ad esempio, comunicazione tra nodo e piano di controllo) lasciano il VPC ma non la rete Amazon.

  • Il server API del cluster è accessibile da Internet. È possibile, facoltativamente, limitare i blocchi CIDR che possono accedere all'endpoint pubblico. Se si limita l’accesso a specifici blocchi CIDR, è consigliabile abilitare anche l’endpoint privato o assicurarsi che i blocchi CIDR specificati includano gli indirizzi da cui i nodi di lavoro e i pod Fargate (se utilizzati) accedono all’endpoint pubblico.

Abilitato

Abilitato

  • Le richieste API Kubernetes all’interno del VPC del cluster (ad esempio, comunicazione tra nodo di lavoro e piano di controllo) utilizzano l’endpoint VPC privato.

  • Il server API del cluster è accessibile da Internet. È possibile, facoltativamente, limitare i blocchi CIDR che possono accedere all'endpoint pubblico.

  • Se usi nodi ibridi con il tuo cluster Amazon EKS, non è consigliabile abilitare l’accesso agli endpoint del cluster pubblico e privato. Dato che i nodi ibridi sono in esecuzione all’esterno del VPC, risolveranno l’endpoint del cluster negli indirizzi IP pubblici. Consigliamo di usare l’accesso agli endpoint del cluster pubblico o privato per i cluster con nodi ibridi.

Disabilitato

Abilitato

  • Tutto il traffico verso il server API del cluster deve provenire dal VPC del cluster o da una rete connessa.

  • Non esiste alcun accesso pubblico al server API da Internet. Tutti i comandi kubectl devono provenire dall'interno del VPC o da una rete connessa. Per le opzioni di connettività, consultare Accesso a un server API solo privato.

  • L’endpoint del server API del cluster viene risolto dai server DNS pubblici a un indirizzo IP privato dal VPC. In passato, l'endpoint poteva essere risolto solo dall'interno del VPC.

    Se l'endpoint non viene risolto in un indirizzo IP privato all'interno del VPC per un cluster esistente, è possibile:

    • Abilitare l'accesso pubblico e quindi disabilitarlo di nuovo. È necessario farlo solo una volta per un cluster e l'endpoint si risolverà in un indirizzo IP privato da quel punto in avanti.

    • Aggiornare il cluster.

Blocchi CIDR nell’endpoint pubblico (cluster IPv6)

Puoi aggiungere blocchi IPv6 e IPv4 CIDR all’endpoint pubblico di un cluster IPv6, in quanto l’endpoint pubblico è dual-stack. Questo vale solo per i nuovi cluster con ipFamily impostato su IPv6 creati a ottobre 2024 o successivamente. Puoi identificare questi cluster in base al nuovo nome di dominio dell’endpoint api.aws.

Blocchi CIDR nell’endpoint pubblico (cluster IPv4)

Puoi aggiungere blocchi CIDR IPv4 all’endpoint pubblico di un cluster IPv4. Non puoi aggiungere blocchi CIDR IPv6 all’endpoint pubblico di un cluster IPv4. Se provi a farlo, EKS restituirà il seguente messaggio di errore: The following CIDRs are invalid in publicAccessCidrs

Blocchi CIDR nell’endpoint pubblico (cluster IPv6 creato prima di ottobre 2024)

Puoi aggiungere blocchi CIDR IPv4 all’endpoint pubblico dei cluster IPv6 precedenti creati prima di ottobre 2024. Puoi identificare questi cluster in base all’endpoint eks.amazonaws.com. Non puoi aggiungere blocchi CIDR IPv6 all’endpoint pubblico dei cluster IPv6 precedenti creati prima di ottobre 2024. Se provi a farlo, EKS restituirà il seguente messaggio di errore: The following CIDRs are invalid in publicAccessCidrs

Accesso a un server API solo privato

Se è stato disabilitato l’accesso pubblico all’endpoint del server API Kubernetes del cluster, è possibile accedere al server di API solo dal VPC o da una rete connessa. Di seguito sono elencati alcuni possibili modi per accedere all'endpoint del server API Kubernetes:

Rete connessa

È possibile connettere la rete al VPC con un gateway di transito AWS o un'altra opzione di connettività e quindi utilizzare un computer nella rete connessa. Il gruppo di sicurezza del piano di controllo di Amazon EKS deve contenere le regole per consentire il traffico in ingresso sulla porta 443 dalla rete connessa.

Host bastion Amazon EC

È possibile avviare un’istanza Amazon EC2 in una sottorete pubblica nel VPC del cluster e quindi accedere tramite SSH a tale istanza per eseguire comandi kubectl. Per ulteriori informazioni, consultare Bastion host Linux in AWS. Il gruppo di sicurezza del piano di controllo di Amazon EKS deve contenere le regole per consentire il traffico in ingresso sulla porta 443 dal bastion host. Per ulteriori informazioni, consulta Visualizzazione dei requisiti relativi al gruppo di sicurezza Amazon EKS per cluster.

Quando configuri kubectl per l’host bastione, assicurati di utilizzare le credenziali AWS che sono già associate alla configurazione RBAC del cluster o aggiungere il principale IAM che verrà utilizzato dall’host bastione nella configurazione RBAC prima di rimuovere l’accesso pubblico per l’endpoint. Per ulteriori informazioni, consultare Concedere agli utenti e ai ruoli IAM l’accesso alle API Kubernetes e Accesso negato o non autorizzato (kubectl).

AWS Cloud9 IDE

AWS Cloud9 è un ambiente di sviluppo integrato (IDE) basato su cloud che consente di scrivere, eseguire ed effettuare il debug del codice utilizzando semplicemente un browser. È possibile creare un AWS Cloud9 IDE nel VPC del cluster e utilizzarlo per comunicare con il cluster. Per ulteriori informazioni, consultare Creazione di un ambiente in AWS Cloud9. È necessario assicurarsi che il gruppo di sicurezza del piano di controllo Amazon EKS contenga regole per consentire il traffico in ingresso sulla porta 443 dal gruppo di sicurezza IDE. Per ulteriori informazioni, consulta Visualizzazione dei requisiti relativi al gruppo di sicurezza Amazon EKS per cluster.

Quando si configura kubectl per l’IDE AWS Cloud9, assicurati di utilizzare le credenziali AWS che sono già associate alla configurazione RBAC del cluster o aggiungi il principale IAM che verrà utilizzato dall’IDE nella configurazione RBAC prima di rimuovere l’accesso pubblico per l’endpoint. Per ulteriori informazioni, consultare Concedere agli utenti e ai ruoli IAM l’accesso alle API Kubernetes e Accesso negato o non autorizzato (kubectl).

📝 Modifica la pagina su GitHub