協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格中的 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定混合節點的代理
如果您在內部部署環境中為離開資料中心或邊緣環境的流量使用代理伺服器,則需要設定作業系統、kubelet
、 containerd
和 kube-proxy
,以使用您的代理伺服器。您必須在建立 Amazon EKS 叢集kube-proxy
後設定 。您可以在作業系統映像的建置程序kubelet
期間或在每個混合節點nodeadm init
上執行之前,對作業系統containerd
、 和 進行變更。
節點層級組態
本節中的組態必須套用在您的作業系統映像中,或在每個混合節點nodeadm init
上執行之前。
containerd
代理組態
containerd
是 Kubernetes 的預設容器管理執行期。如果您使用代理進行網際網路存取,則必須設定 ,containerd
以便它可以提取 Kubernetes 和 Amazon EKS 所需的容器映像。
在http-proxy.conf
/etc/systemd/system/containerd.service.d
目錄中名為 的每個混合節點上建立 檔案,其中包含下列內容。將 proxy-domain
和 port
取代為環境的值。
[Service] Environment="HTTP_PROXY=http://
proxy-domain:port
" Environment="HTTPS_PROXY=http://proxy-domain:port
" Environment="NO_PROXY=localhost"
containerd
來自使用者資料的組態
需要為此檔案建立containerd.service.d
目錄。您需要重新載入系統化,才能在不重新啟動的情況下取得組態檔案。在 AL2023 中,當您的指令碼執行時,服務可能已經在執行,因此您也需要重新啟動它。
mkdir -p /etc/systemd/system/containerd.service.d echo '[Service]' > /etc/systemd/system/containerd.service.d echo 'Environment="HTTP_PROXY=http://
proxy-domain:port
"' >> /etc/systemd/system/containerd.service.d echo 'Environment="HTTPS_PROXY=http://proxy-domain:port
"' >> /etc/systemd/system/containerd.service.d echo 'Environment="NO_PROXY=localhost"' >> /etc/systemd/system/containerd.service.d systemctl daemon-reload systemctl restart containerd
kubelet
代理組態
kubelet
是在每個 Kubernetes 節點上執行的 Kubernetes 節點代理程式,負責管理其上執行的節點和 Pod。如果您在內部部署環境中使用代理,則必須設定 ,kubelet
以便它可以與您 Amazon EKS 叢集的公有或私有端點通訊。
在http-proxy.conf
/etc/systemd/system/kubelet.service.d/
目錄中名為 的每個混合節點上建立檔案,內容如下。將 proxy-domain
和 port
取代為環境的值。
[Service] Environment="HTTP_PROXY=http://
proxy-domain:port
" Environment="HTTPS_PROXY=http://proxy-domain:port
" Environment="NO_PROXY=localhost"
kubelet
來自使用者資料的組態
必須為此檔案建立 kubelet.service.d
目錄。您需要重新載入系統化,才能在不重新啟動的情況下取得組態檔案。在 AL2023 中,當您的指令碼執行時,服務可能已經在執行,因此您也需要重新啟動它。
mkdir -p /etc/systemd/system/kubelet.service.d echo '[Service]' > /etc/systemd/system/kubelet.service.d echo 'Environment="HTTP_PROXY=http://
proxy-domain:port
"' >> /etc/systemd/system/kubelet.service.d echo 'Environment="HTTPS_PROXY=http://proxy-domain:port
"' >> /etc/systemd/system/kubelet.service.d echo 'Environment="NO_PROXY=localhost"' >> /etc/systemd/system/kubelet.service.d systemctl daemon-reload systemctl restart containerd
作業系統代理組態
如果您使用代理進行網際網路存取,則必須將作業系統設定為能夠從作業系統的套件管理員提取混合節點相依性。
Ubuntu
-
將
snap
設定為搭配下列命令使用代理:sudo snap set system proxy.https=http://
proxy-domain:port
sudo snap set system proxy.http=http://proxy-domain:port
-
若要啟用 的代理
apt
,apt.conf
請在/etc/apt/
目錄中建立名為 的檔案。將代理網域和連接埠取代為環境的值。Acquire::http::Proxy "http://
proxy-domain:port
"; Acquire::https::Proxy "http://proxy-domain:port
";
Amazon Linux 2023 和 Red Hat Enterprise Linux
-
設定
yum
以使用您的代理。為您的環境建立/etc/yum.conf
具有代理網域和連接埠值的檔案。proxy=http://
proxy-domain:port
全叢集組態
本節中的組態必須在您建立 Amazon EKS 叢集之後,以及在每個混合節點nodeadm init
上執行之前套用。
kube-proxy 代理組態
當您的混合節點加入叢集時,Amazon EKS 會自動在每個混合節點kube-proxy
上安裝 做為 DaemonSet。 kube-proxy
會啟用跨 Amazon EKS 叢集上由 Pod 支援的服務的路由。若要設定每個主機, kube-proxy
需要 Amazon EKS 叢集端點的 DNS 解析。
-
使用下列命令編輯
kube-proxy
DaemonSetkubectl -n kube-system edit ds kube-proxy
這會在您的設定編輯器上開啟
kube-proxy
DaemonSet 定義。 -
新增
HTTP_PROXY
和 的環境變數HTTPS_PROXY
。請注意,NODE_NAME
環境變數應該已存在於您的組態中。port
將proxy-domain
和 取代為您的環境的值。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