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.
Configurare il proxy per i nodi ibridi
Se utilizzi un server proxy nell’ambiente on-premises per il traffico in uscita dal data center o dall’ambiente periferico, devi configurare separatamente i nodi e il cluster per usare il server proxy.
- Cluster
-
Sul cluster, devi configurare
kube-proxyper utilizzare il server proxy. Devi configurarekube-proxydopo aver creato il cluster Amazon EKS. - Nodi
-
Sui tuoi nodi, devi configurare il sistema operativo,
containerd,kubelete l’agente Amazon SSM per utilizzare il tuo server proxy. Puoi apportare queste modifiche durante il processo di creazione delle immagini del sistema operativo o prima di eseguirenodeadm initsu ciascun nodo ibrido.
Configurazione a livello di nodo
Devi applicare le seguenti configurazioni nelle immagini del sistema operativo o prima di eseguire nodeadm init su ciascun nodo ibrido.
Configurazione del proxy containerd
containerd è il runtime di gestione dei container predefinito per Kubernetes. Se utilizzi un proxy per l’accesso a Internet, devi configurare containerd in modo che possa estrarre le immagini dei container richieste da Kubernetes e Amazon EKS.
Crea un file su ogni nodo ibrido chiamato http-proxy.conf nella directory /etc/systemd/system/containerd.service.d con i seguenti contenuti. Sostituisci proxy-domain e port con i valori per il tuo ambiente.
[Service] Environment="HTTP_PROXY=http://proxy-domain:port" Environment="HTTPS_PROXY=http://proxy-domain:port" Environment="NO_PROXY=localhost"
Configurazione di containerd a partire dai dati dell’utente
La directory containerd.service.d dovrà essere creata per questo file. Dovrai ricaricare systemd per recuperare il file di configurazione senza dover riavviare il sistema. In AL2023, il servizio sarà probabilmente già in esecuzione al momento dell’esecuzione dello script, quindi sarà necessario riavviarlo.
mkdir -p /etc/systemd/system/containerd.service.d echo '[Service]' > /etc/systemd/system/containerd.service.d/http-proxy.conf echo 'Environment="HTTP_PROXY=http://proxy-domain:port"' >> /etc/systemd/system/containerd.service.d/http-proxy.conf echo 'Environment="HTTPS_PROXY=http://proxy-domain:port"' >> /etc/systemd/system/containerd.service.d/http-proxy.conf echo 'Environment="NO_PROXY=localhost"' >> /etc/systemd/system/containerd.service.d/http-proxy.conf systemctl daemon-reload systemctl restart containerd
Configurazione del proxy kubelet
kubelet è l’agente del nodo Kubernetes che viene eseguito su ogni nodo Kubernetes ed è responsabile della gestione del nodo e dei pod in esecuzione su di esso. Se utilizzi un proxy nel tuo ambiente on-premises, devi configurare kubelet in modo che possa comunicare con gli endpoint pubblici o privati del cluster Amazon EKS.
Crea un file su ogni nodo ibrido chiamato http-proxy.conf nella directory /etc/systemd/system/kubelet.service.d/ col seguente contenuto. Sostituisci proxy-domain e port con i valori per il tuo ambiente.
[Service] Environment="HTTP_PROXY=http://proxy-domain:port" Environment="HTTPS_PROXY=http://proxy-domain:port" Environment="NO_PROXY=localhost"
Configurazione di kubelet a partire dai dati dell’utente
La directory kubelet.service.d deve essere creata per questo file. Dovrai ricaricare systemd per recuperare il file di configurazione senza dover riavviare il sistema. In AL2023, il servizio sarà probabilmente già in esecuzione al momento dell’esecuzione dello script, quindi sarà necessario riavviarlo.
mkdir -p /etc/systemd/system/kubelet.service.d echo '[Service]' > /etc/systemd/system/kubelet.service.d/http-proxy.conf echo 'Environment="HTTP_PROXY=http://proxy-domain:port"' >> /etc/systemd/system/kubelet.service.d/http-proxy.conf echo 'Environment="HTTPS_PROXY=http://proxy-domain:port"' >> /etc/systemd/system/kubelet.service.d/http-proxy.conf echo 'Environment="NO_PROXY=localhost"' >> /etc/systemd/system/kubelet.service.d/http-proxy.conf systemctl daemon-reload systemctl restart kubelet
Configurazione del proxy ssm
ssm è uno dei provider di credenziali che possono essere utilizzati per inizializzare un nodo ibrido. ssm è responsabile dell’autenticazione con AWS e della generazione di credenziali temporanee utilizzate da kubelet. Se utilizzi un proxy nel tuo ambiente on-premises e usi ssm come fornitore di credenziali sul nodo, devi configurare ssm in modo che possa comunicare con gli endpoint del servizio Amazon SSM.
Crea un file su ogni nodo ibrido chiamato http-proxy.conf nel percorso seguente, a seconda del sistema operativo
-
Ubuntu:
/etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d/http-proxy.conf -
Amazon Linux 2023 e Red Hat Enterprise Linux:
/etc/systemd/system/amazon-ssm-agent.service.d/http-proxy.conf
Popola il file con i seguenti contenuti. Sostituisci proxy-domain e port con i valori per il tuo ambiente.
[Service] Environment="HTTP_PROXY=http://proxy-domain:port" Environment="HTTPS_PROXY=http://proxy-domain:port" Environment="NO_PROXY=localhost"
Configurazione di ssm a partire dai dati dell’utente
La directory ssm del file di servizio systemd deve essere creata per questo file. Il percorso della directory dipende dal sistema operativo utilizzato nel nodo.
-
Ubuntu:
/etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d -
Amazon Linux 2023 e Red Hat Enterprise Linux:
/etc/systemd/system/amazon-ssm-agent.service.d
Sostituisci il nome del servizio systemd nel comando riavvio riportato di seguito a seconda del sistema operativo utilizzato nel nodo
-
Ubuntu:
snap.amazon-ssm-agent.amazon-ssm-agent -
Amazon Linux 2023 e Red Hat Enterprise Linux:
amazon-ssm-agent
mkdir -psystemd-service-file-directory echo '[Service]' > [.replaceable]#systemd-service-file-directory/http-proxy.conf echo 'Environment="HTTP_PROXY=http://[.replaceable]#proxy-domain:port"' >>systemd-service-file-directory/http-proxy.conf echo 'Environment="HTTPS_PROXY=http://[.replaceable]#proxy-domain:port"' >> [.replaceable]#systemd-service-file-directory/http-proxy.conf echo 'Environment="NO_PROXY=localhost"' >> [.replaceable]#systemd-service-file-directory/http-proxy.conf systemctl daemon-reload systemctl restart [.replaceable]#systemd-service-name
Configurazione del proxy del sistema operativo
Se utilizzi un proxy per l’accesso a Internet, devi configurare il sistema operativo in modo da poter estrarre le dipendenze dei nodi ibridi dal gestore di pacchetti dei sistemi operativi.
Ubuntu
-
Configura
snapper utilizzare il proxy con i seguenti comandi:sudo snap set system proxy.https=http://proxy-domain:portsudo snap set system proxy.http=http://proxy-domain:port -
Per abilitare il proxy per
apt, crea un file chiamatoapt.confnella directory/etc/apt/. Sostituisci proxy-domain e port con i valori per il tuo ambiente.Acquire::http::Proxy "http://proxy-domain:port"; Acquire::https::Proxy "http://proxy-domain:port";
Amazon Linux 2023
-
Configura
dnfper l’utilizzo del proxy. Crea un file/etc/dnf/dnf.confcon i valori proxy-domain e port per il tuo ambiente.proxy=http://proxy-domain:port
Red Hat Enterprise Linux
-
Configura
yumper l’utilizzo del proxy. Crea un file/etc/yum.confcon i valori proxy-domain e port per il tuo ambiente.proxy=http://proxy-domain:port
Configurazione del proxy di IAM Roles Anywhere
Il servizio del fornitore di credenziali IAM Roles Anywhere è responsabile dell’aggiornamento delle credenziali quando si utilizza IAM Roles Anywhere con il flag enableCredentialsFile (consulta Agente EKS Pod Identity). Se utilizzi un proxy nel tuo ambiente on-premises, devi configurare il servizio in modo che possa comunicare con gli endpoint di IAM Roles Anywhere.
Crea un file denominato http-proxy.conf nella directory /etc/systemd/system/aws_signing_helper_update.service.d/ con i seguenti contenuti. Sostituisci proxy-domain e port con i valori per il tuo ambiente.
[Service] Environment="HTTP_PROXY=http://proxy-domain:port" Environment="HTTPS_PROXY=http://proxy-domain:port" Environment="NO_PROXY=localhost"
Configurazione a livello di cluster
Le configurazioni in questa sezione devono essere applicate dopo aver creato il cluster Amazon EKS e prima di eseguire nodeadm init su ogni nodo ibrido.
Configurazione di un proxy kube-proxy
Amazon EKS installa automaticamente kube-proxy su ogni nodo ibrido come DaemonSet quando i nodi entrano a far parte del cluster. kube-proxy abilita il routing tra servizi supportati da pod su cluster Amazon EKS. Per configurare ogni host, kube-proxy necessita della risoluzione DNS per l’endpoint del cluster Amazon EKS.
-
Modifica il DaemonSet
kube-proxymediante il comando seguentekubectl -n kube-system edit ds kube-proxyVerrà aperta la definizione del DaemonSet
kube-proxysull’editor configurato. -
Aggiungi le variabili di ambiente per
HTTP_PROXYeHTTPS_PROXY. Nota che la variabile di ambienteNODE_NAMEdovrebbe già esistere nella configurazione. Sostituisciproxy-domaineportcon valori per il tuo ambiente.containers: - command: - kube-proxy - --v=2 - --config=/var/lib/kube-proxy-config/config - --hostname-override=$(NODE_NAME) env: - name: HTTP_PROXY value: http://proxy-domain:port- name: HTTPS_PROXY value: http://proxy-domain:port- name: NODE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: spec.nodeName