Unterstützung für die Verbesserung dieser Seite beitragen
Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.
Konfiguration des Proxys für Hybridknoten
Wenn Sie in Ihrer On-Premises-Umgebung mithilfe eines Proxy-Servers den Datenverkehr steuern, der Ihr Rechenzentrum oder Ihre Edge-Umgebung verlässt, müssen Sie Ihre Knoten und Ihren Cluster separat für die Verwendung Ihres Proxy-Servers konfigurieren.
- Cluster
-
In Ihrem Cluster müssen Sie
kube-proxyso konfigurieren, dass Ihr Proxy-Server verwendet wird. Sie müssenkube-proxynach der Erstellung Ihres Amazon-EKS-Clusters konfigurieren. - Knoten
-
Auf Ihren Knoten müssen Sie das Betriebssystem,
containerd,kubeletund den Amazon SSM-Agenten so konfigurieren, dass sie Ihren Proxy-Server verwenden. Sie können diese Änderungen während des Entwicklungsprozesses für Ihre Betriebssystem-Images oder vor der Ausführung vonnodeadm initauf jedem Hybridknoten vornehmen.
Konfiguration auf Knotenebene
Sie müssen die folgenden Konfigurationen entweder in Ihren Betriebssystem-Images oder vor der Ausführung von nodeadm init auf jedem Hybridknoten anwenden.
containerd-Proxy-Konfiguration
containerd ist die standardmäßig Container-Management-Laufzeitumgebung für Kubernetes. Wenn Sie einen Proxy für den Internetzugriff verwenden, müssen Sie containerd so konfigurieren, dass es die von Kubernetes und Amazon EKS benötigten Container-Images abrufen kann.
Erstellen Sie auf jedem Hybridknoten eine /etc/systemd/system/containerd.service.d-Datei mit dem Namen http-proxy.conf im Verzeichnis mit dem folgenden Inhalt. Ersetzen Sie proxy-domain und port durch die Werte für Ihre Umgebung.
[Service] Environment="HTTP_PROXY=http://proxy-domain:port" Environment="HTTPS_PROXY=http://proxy-domain:port" Environment="NO_PROXY=localhost"
containerd-Konfiguration aus Benutzerdaten
Für diese Datei muss das containerd.service.d-Verzeichnis erstellt werden. Sie müssen systemd neu laden, um die Konfigurationsdatei ohne Neustart zu übernehmen. In AL2023 wird der Service wahrscheinlich bereits ausgeführt, wenn Ihr Skript ausgeführt wird, sodass Sie ihn auch neu starten müssen.
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
kubelet-Proxy-Konfiguration
kubelet ist der Kubernetes-Knotenagent, der auf jedem Kubernetes-Knoten ausgeführt wird und für die Verwaltung des Knotens und der darauf ausgeführten Pods verantwortlich ist. Wenn Sie in Ihrer On-Premises-Umgebung einen Proxy verwenden, müssen Sie kubelet so konfigurieren, dass es mit den öffentlichen oder privaten Endpunkten Ihres Amazon-EKS-Clusters kommunizieren kann.
Erstellen Sie auf jedem Hybridknoten eine Datei mit dem Namen http-proxy.conf im /etc/systemd/system/kubelet.service.d/-Verzeichnis mit dem folgenden Inhalt. Ersetzen Sie proxy-domain und port durch die Werte für Ihre Umgebung.
[Service] Environment="HTTP_PROXY=http://proxy-domain:port" Environment="HTTPS_PROXY=http://proxy-domain:port" Environment="NO_PROXY=localhost"
kubelet-Konfiguration aus Benutzerdaten
Für diese Datei muss das kubelet.service.d-Verzeichnis erstellt werden. Sie müssen systemd neu laden, um die Konfigurationsdatei ohne Neustart zu übernehmen. In AL2023 wird der Service wahrscheinlich bereits ausgeführt, wenn Ihr Skript ausgeführt wird, sodass Sie ihn auch neu starten müssen.
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
ssm-Proxy-Konfiguration
ssm ist einer der Anmeldeinformationsanbieter, die zum Initialisieren eines Hybridknotens verwendet werden können. ssm ist für die Authentifizierung mit AWS und die Generierung temporärer Anmeldeinformationen verantwortlich, die von kubelet verwendet werden. Wenn Sie in Ihrer On-Premises-Umgebung einen Proxy verwenden und ssm als Anmeldeinformationsanbieter auf dem Knoten nutzen, müssen Sie ssm so konfigurieren, dass es mit Amazon-SSM-Service-Endpunkten kommunizieren kann.
Erstellen Sie auf jedem Hybridknoten eine Datei mit dem Namen http-proxy.conf im nachfolgenden Pfad, abhängig vom Betriebssystem
-
Ubuntu –
/etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d/http-proxy.conf -
Amazon Linux 2023 und Red Hat Enterprise Linux –
/etc/systemd/system/amazon-ssm-agent.service.d/http-proxy.conf
Füllen Sie die Datei mit dem folgenden Inhalt. Ersetzen Sie proxy-domain und port durch die Werte für Ihre Umgebung.
[Service] Environment="HTTP_PROXY=http://proxy-domain:port" Environment="HTTPS_PROXY=http://proxy-domain:port" Environment="NO_PROXY=localhost"
ssm-Konfiguration aus Benutzerdaten
Für diese Datei muss das ssm-systemd-Service-Dateiverzeichnis erstellt werden. Der Verzeichnispfad hängt vom verwendeten Betriebssystem des Knotens ab.
-
Ubuntu –
/etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d -
Amazon Linux 2023 und Red Hat Enterprise Linux –
/etc/systemd/system/amazon-ssm-agent.service.d
systemd-Servicenamen im folgenden Neustartbefehl je nach dem auf dem Knoten verwendeten Betriebssystem ersetzen
-
Ubuntu –
snap.amazon-ssm-agent.amazon-ssm-agent -
Amazon Linux 2023 und 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
Proxy-Konfiguration des Betriebssystems
Wenn Sie einen Proxy für den Internetzugang verwenden, müssen Sie Ihr Betriebssystem so konfigurieren, dass es die Abhängigkeiten der Hybridknoten aus dem Paket-Manager Ihres Betriebssystems abrufen kann.
Ubuntu
-
Konfigurieren Sie
snapmit den folgenden Befehlen für die Verwendung Ihres Proxys:sudo snap set system proxy.https=http://proxy-domain:portsudo snap set system proxy.http=http://proxy-domain:port -
Um den Proxy für
aptzu aktivieren, erstellen Sie im/etc/apt/-Verzeichnis eine Datei mit dem Namenapt.conf. Ersetzen Sie Proxy-Domain und Port durch die entsprechenden Werte für Ihre Umgebung.Acquire::http::Proxy "http://proxy-domain:port"; Acquire::https::Proxy "http://proxy-domain:port";
Amazon Linux 2023
-
Konfigurieren Sie
dnffür die Verwendung Ihres Proxys. Erstellen Sie eine Datei/etc/dnf/dnf.confmit den Werten für die Proxy-Domain und den Port für Ihre Umgebung.proxy=http://proxy-domain:port
Red Hat Enterprise Linux
-
Konfigurieren Sie
yumfür die Verwendung Ihres Proxys. Erstellen Sie eine Datei/etc/yum.confmit den Werten für die Proxy-Domain und den Port für Ihre Umgebung.proxy=http://proxy-domain:port
Proxy-Konfiguration von IAM Roles Anywhere
Der Service des Anmeldeinformationsanbieters für IAM Roles Anywhere ist für die Aktualisierung der Anmeldeinformationen verantwortlich, wenn IAM Roles Anywhere mit dem enableCredentialsFile-Flag verwendet wird (siehe EKS Pod Identity Agent). Wenn Sie in Ihrer On-Premises-Umgebung einen Proxy verwenden, müssen Sie den Service so konfigurieren, dass er mit den Endpunkten von IAM Roles Anywhere kommunizieren kann.
Erstellen Sie im /etc/systemd/system/aws_signing_helper_update.service.d/-Verzeichnis eine Datei mit dem Namen http-proxy.conf mit folgendem Inhalt. Ersetzen Sie proxy-domain und port durch die Werte für Ihre Umgebung.
[Service] Environment="HTTP_PROXY=http://proxy-domain:port" Environment="HTTPS_PROXY=http://proxy-domain:port" Environment="NO_PROXY=localhost"
Cluster-weite Konfiguration
Die Konfigurationen in diesem Abschnitt müssen angewendet werden, nachdem Sie Ihren Amazon-EKS-Cluster erstellt haben und bevor Sie nodeadm init auf jedem Hybridknoten ausführen.
kube-proxy-Proxy-Konfiguration
Amazon EKS installiert kube-proxy automatisch als DaemonSet auf jedem Hybridknoten, wenn Ihre Hybridknoten dem Cluster beitreten. kube-proxy ermöglicht das Routing über Services, die von Pods auf Amazon-EKS-Clustern unterstützt werden. Um jeden Host zu konfigurieren, erfordert kube-proxy eine DNS-Auflösung für Ihren Amazon-EKS-Cluster-Endpunkt.
-
kube-proxyDaemonSet mit dem folgenden Befehl bearbeitenkubectl -n kube-system edit ds kube-proxyDadurch wird die
kube-proxy-DaemonSet-Definition in Ihrem konfigurierten Editor geöffnet. -
Fügen Sie die Umgebungsvariablen für
HTTP_PROXYundHTTPS_PROXYhinzu. Beachten Sie, dass dieNODE_NAME-Umgebungsvariable bereits in Ihrer Konfiguration vorhanden sein sollte. Ersetzen Sieproxy-domainundportdurch Werte für Ihre Umgebung.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