ヤマムギ

growing hard days.

*

「Amazon EKS Workshop」の環境準備とクラスター作成

   

今はアーカイブになっている1つ前のEKS Workshopの環境準備記録です。
こちらのワークショップパターンがいろいろあるので好きです。
そのうちページがなくなるかもですので、残せるものは残しておきたいと思います。

Cloud9環境

以下の設定で構築しました。
* EC2
* Amazon Linux2023
* t3.small
* 接続: SSM

ツールのインストール

kubectlのインストール

awscliのアップデート

jq、envsubset、bash-completionのインストール

yqのインストール

パスの確認

正常な出力は以下です

kubectl in path
jq in path
envsubst in path
aws in path

kubectlのbash-completionによる自動補完の有効化

AWS Load Balancer Controllerのバージョン固定

Cloud9の認証設定

EC2向けのIAMロール作成と設定

Cloud9を実行しているEC2向けのIAMロールを作成しました。
手順に従ってAWS管理ポリシーのAdministratorAccessを許可ポリシーとして設定しました。
Cloud9のEC2に作成したIAMロールを設定しました。

Cloud9デフォルトのManaged Temporary Credentialsを無効化

Managed Temporary Credentialsを無効化して.aws/credentialsを削除しています。
Managed Temporary Credentialsは設定メニューからも無効化できます。

環境変数にアカウントID、リージョン、アベイラビリティゾーンを設定

手順はIMDSv1ですので、IMDSv2向けのコマンドに変えて実行しています。

確認コマンドの結果
リージョンコード(us-east-1はリージョンによって異なります。
AWS_REGION is us-east-1

bash_profileに保存しました。

リポジトリのクローン

KMSカスタマー管理キーの作成

暗号化キーを作成して環境変数にARNを設定して、bash_profileに保存しています。

eksctlのインストール

バージョンを確認するとバージョン番号だけが返ってきます。

補完を有効にします。

最初のクラスターの作成

クラスターの作成

eksworkshop.yamlを作成しました。
versionは最新にしています。
ノードでスポットインスタンスを使用したかったのでspot: trueにしています。
手順は3つのAZでしたが、2つにしています。

クラスターの作成を開始しました。

15分弱でクラスターとノードグループの作成が完了しました。

CloudFormationではクラスターとノードグループのスタック作成が完了していました。

EKSでもクラスターがアクティブになっていました。

Cloud9でコマンドで確認するとノードが2つ表示されました。

NAME STATUS ROLES AGE VERSION
ip-192-168-22-34.ec2.internal Ready 34m v1.30.0-eks-036c24b
ip-192-168-33-113.ec2.internal Ready 34m v1.30.0-eks-036c24b

kubeconfigの更新

kubeconfigを確認してみます。

i-032b2a62b94ab667bはCloud9のEC2インスタンスです。

次のコマンドでeksworkshop-eksctlというユーザーを追加してデフォルトにしました。

もう一度kubectl config viewで確認すると追加されていました。

ROLE_NAME環境変数の設定

AWS IAMユーザーへのクラスターへのアクセス権限追加

この時点ではマネジメントコンソールにサインインしているIAMユーザーやIAMロールにKubernetesクラスター内のオブジェクトへのアクセス権限がありません。

クラスターのアクセス設定をマネジメントコンソールで確認すると、「EKS APIとConfigMap」となっていました。

IAMアクセスエントリとConfigMapのaws-authの両方がKubernetesクラスターへのアクセスで有効になっています。

ワークショップの手順ではConfigMapとなっています。

ConfigMapで設定する場合

次のコマンドでCloud9環境を構築したIAMユーザー、またはIAMロールのARNをrolearn変数にセットします。

次のコマンドでaws-auth ConfigMapにIAMロールとKubernetes system:mastersグループ、adminユーザーとのマッピングをaws-auth ConfigMapに追加します。

IAMアクセスエントリで設定する場合

[IAMアクセスエントリの作成]を押下して、IAMプリンシパルARNにIAMユーザー、IAMロールのARNを入力してスタンダードを選択しました。

ユーザーとグループは指定していません。
ユーザーは自動で新規作成されます。

アクセス権限と範囲はアクセスポリシーとスコープで設定します。
今回はクラスター全体としました。

指定したIAMロールでマネジメントコンソールからオブジェクトを確認できるようになりました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

ad

ad

  関連記事

AWSアカウント内のLambda関数を削除するLambda(Python)

やりたいこと 特定のAWSアカウントの特定リージョンのAWS Lambda関数を …

AWS X-Ray SDK for PythonをOrganizations組織内にLambda Layersで共有しました

ローカルでパッケージ作成 インストールコマンドはこちらAWS X-Ray SDK …

EC2 Auto ScalingカスタムメトリクスのモニタリングにCloudWatch検索式が便利でした

EC2 Auto Scalingで起動したインスタンスのカスタムメトリクス この …

AWS Summit 2016 Tokyoに参加してきました (Day3)

飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …

Cloud9初回アクセス時にCodeCommitのリポジトリを自動でクローンする

CloudFormationからCloud9環境を作成する際に、Reposito …

Amazon SageMaker AIのクイックセットアップ

Amazon SageMaker AI のクイックセットアップを使用するに記載の …

AWS DeepLensセットアップの儀

AWS DeepLensのセットアップを開始します。 AWS DeepLensを …

AWS CloudWatch LogsエージェントでAmazon EC2上のNginxのaccess.log , error.log , php-fpm error.log , Linuxのmessages , secureログを収集する

参考ページ クイックスタート: 実行中の EC2 インスタンスに CloudWa …

Amazon Aurora Serverless 課金確認

Amazon Aurora Serverlessを使い始めてみましたの記事で書い …

CloudFront用のAWS管理プレフィックスリストを使用しました

このブログでは、CloudFrontのカスタムヘッダーとALBのルーティングを組 …