このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
ハイブリッドノードのプロキシを設定する
オンプレミス環境でデータセンターまたはエッジ環境から出るトラフィックにプロキシサーバーを使用している場合は、プロキシサーバーを使用するようにオペレーティングシステムや、containerd
、kubelet
、kube-proxy
を設定する必要があります。Amazon EKS クラスターの作成後に kube-proxy
を設定する必要があります。オペレーティングシステムイメージのビルドプロセス中、または各ハイブリッドノードで nodeadm init
を実行する前に、オペレーティングシステム、containerd
、および kubelet
を変更することができます。
ノードレベルの設定
このセクションの設定は、オペレーティングシステムイメージで、または各ハイブリッドノードで nodeadm init
を実行する前に、適用する必要があります。
containerd
プロキシ設定
containerd
は、Kubernetes のデフォルトのコンテナ管理ランタイムです。インターネットアクセスにプロキシを使用している場合は、Kubernetes と Amazon EKS に必要なコンテナイメージをプルできるように containerd
を設定する必要があります。
次の内容で、各ハイブリッドノード上の /etc/systemd/system/containerd.service.d
ディレクトリに「http-proxy.conf
」という名前のファイルを作成します。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
ディレクトリを作成する必要があります。systemd を再ロードして設定ファイルを選択すると、再起動しなくても済むようになります。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 ノードエージェントであり、そのノードで実行されているノードとポッドの管理を担当します。オンプレミス環境でプロキシを使用している場合は、Amazon EKS クラスターのパブリックエンドポイントまたはプライベートエンドポイントと通信できるように kubelet
を設定する必要があります。
次の内容で、各ハイブリッドノードの /etc/systemd/system/kubelet.service.d/
ディレクトリに「http-proxy.conf
」という名前のファイルを作成します。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
ディレクトリを作成する必要があります。systemd を再ロードして設定ファイルを選択すると、再起動しなくても済むようになります。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
のプロキシを有効にするには、/etc/apt/
ディレクトリにapt.conf
という名前のファイルを作成します。proxy-domain と port を環境の値に置き換えます。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 は、ハイブリッドノードがクラスターに参加すると、各ハイブリッドノードに DaemonSet として自動的に kube-proxy
をインストールします。kube-proxy
は、Amazon EKS クラスターのポッドによってバックアップされるサービス間のルーティングを有効にします。各ホストを設定するために、kube-proxy
には Amazon EKS クラスターエンドポイントの DNS 解決が必要です。
-
次のコマンドを使用して
kube-proxy
DaemonSet を編集するkubectl -n kube-system edit ds kube-proxy
これにより、設定されたエディタで
kube-proxy
DaemonSet 定義が開きます。 -
HTTP_PROXY
およびHTTPS_PROXY
の環境変数を追加します。NODE_NAME
環境変数は設定に既に存在している必要があります。proxy-domain
とport
を環境の値に置き換えます。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