💻

プロキシ環境下の Windows 10 マシンから Amazon EKS を CLI で操作する

2021/07/21に公開

はじめに

プロキシ環境下でクラウドベースの開発をしているエンジニアさんはプロキシに泣かされるってこと多いんじゃないかなと思います。いや、ほんとプロキシ関連の調査で時間をとられるのつらいっす。ということで、今回は社内プロキシ環境などから eksctl コマンドや kubectl コマンドを使って Amazon EKS を操作するためのクライアント側の設定方法を記載していきたいと思います。

設定手順

まずは AWS CLI のセットアップをします

1. AWS CLI をインストールします

AWS 公式ドキュメントの通りに MSI インストーラをダウンロード&実行してください。

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-windows.html

2. AWS 認証情報を設定します

次のコマンドを実行して認証情報を設定します。

powershell
PS C:\> aws configure

3. AWS CLI のプロキシ設定をします

次のコマンドを実行してから設定を適用するために PowerShell アプリを起動しなおします。

powershell
PS C:\> setx HTTP_PROXY http://<proxy username>:<proxy password>@<proxy hostname or ip address>:<proxy port>
PS C:\> setx HTTPS_PROXY http://<proxy username>:<proxy password>@<proxy hostname or ip address>:<proxy port>

次に EKS CLI ツールのセットアップをします

次にパッケージマネージャの Chocolatey を使って eksctl や kubectl などをインストールしていきます。

1. Chocolatey をインストールします

公式サイトからインストールスクリプトをダウンロードし、PowerShell を管理者として起動して環境変数を設定した上でインストールスクリプトを実行します。

https://chocolatey.org/install.ps1

powershell(管理者)
PS C:\> $env:chocolateyProxyLocation = "<proxy hostname or ip address>:<proxy port>"
PS C:\> $env:chocolateyProxyUser = "<proxy username>"
PS C:\> $env:chocolateyProxyPassword = "<proxy password>"
PS C:\> Set-ExecutionPolicy RemoteSigned
PS C:\> .\$downloadPath\install.ps1

2. Chocolatey のプロキシ設定をします

次のコマンドを実行してプロキシ設定をします。

powershell
PS C:\> chocolatey config set proxy "<proxy hostname or ip address>:<proxy port>"
PS C:\> chocolatey config set proxyUser "<proxy username>"
PS C:\> chocolatey config set proxyPassword "<proxy password>"

3. eksctl などをインストールします

次のコマンドを実行して eksctl などをインストールしていきます。

powershell
PS C:\> chocolatey install -y eksctl aws-iam-authenticator kubernetes-cli

ということでここまででひとまずセットアップは終了です。

では既存の EKS クラスタへの接続確認をしましょう

1. まずは kubeconfig を作成します

次のコマンドを実行して kubeconfig(kubectl 接続設定ファイル)を作成します。

powershell
PS C:\> aws eks --region $region update-kubeconfig --name $cluster

注意:$region$clusterの部分は自分の環境に沿った値に変換して実行してください。

2. kubectl を実行してみよう

次のコマンドなどを実行して情報が取得できたら終わりです。

powershell
PS C:\> kubectl get svc
PS C:\> kubectl get pods

補足:kubectl が「error: You must be logged in to the server (Unauthorized)」でエラーになった場合は RABC ではじかれている可能性が高いです。スイッチロールするなりしてアクセスできる状態にした上で再実行してください。

https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/add-user-role.html

最後に

ということで、今回は Amazon EKS をプロキシ環境下の Windows10 マシンから CLI 操作する方法でした。プロキシ環境で戦うエンジニアさんの力に少しでもなれれば幸いです。

参考

Discussion