この記事では、 Amazon EKSを使用してAWSにKubernetesクラスターをデプロイする方法について学習します。 LinuxのコマンドラインからEKSクラスターと対話するようにAWSCLIとKubectlをインストールして設定する方法。
Amazon Elastic Kubernetes Serviceを使用してAWSクラウドにKubernetesクラスターをデプロイする前に、AWSアカウントを持っていることを確認してください。 AWSアカウントをお持ちでない場合は、アマゾンウェブサービス(AWS)の概要を確認してください。 作成方法を知るための記事。
1。 EKSクラスターのセットアップ(マスターノード)
AWSでEKSクラスターを作成するには、IAMロールを手元に作成する必要があります。
1.1。 IAMロールを作成する
Amazon EKSが管理するKubernetesクラスターは、ユーザーに代わって他のAWSサービスを呼び出し、サービスで利用するリソースを管理します。
Amazon EKSクラスターを構築する前に、まず次のIAMポリシーを使用してIAMロールを作成する必要があります。
AmazonEKSClusterPolicy
AWSコンソールにログインし、「IAM」を検索します。 IAMサービスを選択してIAMコンソールにアクセスします。

左側のオプションで[役割]を選択し、[役割の作成]をクリックします。

AWSサービスを選択し、[ユースケース]オプションで[EKS –クラスター]を選択します。選択したら、[次へ]をクリックして続行します。

'AmazonEKSClusterPolicy'が追加されていることを確認してください。デフォルトでは、ユースケースでEKS-Clusterを選択したときに追加されます。 [次へ]をクリックして先に進みます。

次のステップで、ロール名を設定します。ここでは、ロールに「ostechnix_eks」という名前を付けています。すべてのパラメーターを確認し、最後に「作成」をクリックして役割を作成します。

ここでは、この役割のタグを追加していません。複数のリソースを扱っている場合は、リソースを管理、識別、フィルタリングするためのタグがあると便利です。

'ostechnix_eks'という名前の新しいロールが作成されました。

1.2。 EKSクラスターを作成する
AWSコンソールに移動し、「EKS」で検索します。 [Elastic Kubernetes Service]を選択して、EKSコンソールにアクセスします。

[クラスターの追加]ドロップダウンボックスから、[クラスターの作成]オプションを選択します。

クラスターに名前を付け、Kubernetesバージョンを選択し、前の手順で作成したクラスターサービスの役割を選択できる[クラスターの構成]ページが表示されます。
ここでは、クラスターに「ostechnix」という名前を付け、Kubernetesバージョン1.21を選択しました。

ロールが見つからなかった場合は、ロールを更新してください。役割を選択し、[次へ]をクリックして続行します。

この「ネットワークの指定」では、ネットワークを構成する必要があります。ここでは、デフォルトのオプションを使用しています。
既存のVPCを選択します。VPCは仮想プライベートクラウドであり、定義した仮想ネットワークにAWSリソースを作成できます。デフォルトのVPCで使用可能なデフォルトのサブネットを続行します。
クラスタIPアドレスファミリとしてIPv4を選択します。デフォルトです。

クラスタへのパブリックアクセスのみを有効にするクラスタエンドポイントアクセスには、[パブリック]を選択します。 「プライベート」を選択すると、クラスターへのプライベートアクセスのみが有効になります。ここでは、デフォルトのパブリックを使用しています。
デフォルトの「ネットワークアドオン」を続行して、「次へ」をクリックできます。

有効にするログの種類を選択できる[ログの構成]ページが表示されます。デフォルトでは、すべてのタイプが無効になっています。 [次へ]をクリックして続行します。

「レビューと作成」ページが表示されます。構成したすべての詳細を確認し、下部にある[作成]をクリックします。

クラスターの作成が進行中です。作成されるまでに数分かかります。

'ostechnix'という名前の新しいEKSクラスターが作成されます。 AWSコンソール🡪AmazonEKS🡪クラスターで確認できます。

次に、コマンドラインからEKSクラスターとやり取りするためにAWSCLIとKubectlをインストールして設定する必要があります。
AWS CLIクレデンシャルを設定するには、AWSIAMでセキュリティクレデンシャルを作成する必要があります。
2。セキュリティクレデンシャルを作成する
AWSコンソールにログインし、IAMで検索します。 IAMを選択して、IAMコンソールにアクセスします。

右側にある[マイセキュリティクレデンシャル]オプションを選択して、セキュリティクレデンシャルを作成および管理します。

[アクセスキー]ドロップダウンボックスをクリックし、[新しいアクセスキーの作成]オプションをクリックします。

[新しいアクセスキーの作成]オプションをクリックすると、キーが作成されます。 LinuxマシンでAWSCLIを設定するためのキーをダウンロードします。 [アクセスキーを表示]をオンにすると、キーを表示できます。

このデモンストレーションで重要なのは、
- アクセスキーID: AKIAV7XU2AIJBX4EYKUO
- シークレットアクセスキー: jicg / UZyZfb92zuYNnEAE0MVSJisHb0Mlgac2Doe
3。 AWSCLIをインストールする
AWS CLIは、すべてのAWSサービスを単一のターミナルにまとめるコマンドラインインターフェースであり、単一のツールで多数のAWSサービスを運用できます。
以下のcurl
を使用してください インストールファイルをダウンロードするコマンド。ここでは、「CentOSStream」を使用してAWSCLIをインストールおよび設定しています。
[[email protected] ~]# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
以下のコマンドを使用して、インストーラーファイルを解凍します。
[[email protected] ~]# unzip awscliv2.zip
以下のコマンドを使用してAWSCLIをインストールします。
[[email protected] ~]# ./aws/installを実行できます。
You can now run: /usr/local/bin/aws --version
上記のコマンドを使用してバージョンを確認します。
[[email protected] ~]# /usr/local/bin/aws --version
aws-cli/2.4.17 Python/3.8.8 Linux/4.18.0-358.el8.x86_64 exe/x86_64.centos.8 prompt/off

4。 AWSCLIを設定する
以下のコマンドを使用して、AWSCLIを設定します。セクション2で生成したアクセスキーIDとシークレットアクセスキーを要求されます。
[[email protected] ~]# /usr/local/bin/aws configure AWS Access Key ID [None]: AKIAV7XU2AIJBX4EYKUO AWS Secret Access Key [None]: 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 Default region name [None]: Default output format [None]: [[email protected] ~]#

5。 Kubectlをインストールします
Kubernetesは、kubectlコマンドラインユーティリティを介してクラスタAPIサーバーと通信します。
以下のcurlコマンドを使用して、AmazonS3からAmazonEKSvendedkubectlバイナリをダウンロードします。
[[email protected] ~]# curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/kubectl
以下のコマンドを使用して、バイナリに実行権限を追加します。
[[email protected] ~]# chmod +x ./kubectl
このバイナリをパス内のフォルダにコピーし、$PATH
をエクスポートします 。
[[email protected] ~]# mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
PATHを~/.bashrc
にエクスポートします :
[[email protected] ~]# echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
Kubectlがインストールされているので、以下のコマンドを使用してバージョンを確認できます。
[[email protected] ~]# kubectl version --short --client
Client Version: v1.21.2-13+d2965f0db10712

6。 Kubectlを構成する
現在、kubectlはEKSマスターノードがAWSのどこにあるかを認識していません。 リージョンに言及して、マスターサーバーがどこにあるかをkubectlに知らせる必要があります。 名前とクラスト r名前。
以下のコマンドを使用して、EKSクラスターのステータスを確認します。
[[email protected] ~]# /usr/local/bin/aws eks --region ap-south-1 describe-cluster --name ostechnix --query cluster.status "ACTIVE"

kubeconfigファイルを更新して、kubectlを使用してEKSクラスターと対話します。マスターノードからkubeconfigファイルにすべての構成をフェッチします。
[[email protected] ~]# /usr/local/bin/aws eks --region ap-south-1 update-kubeconfig --name ostechnix Added new context arn:aws:eks:ap-south-1:411756528146:cluster/ostechnix to /root/.kube/config
以下のコマンドを使用してサービスをチェックし、kubectlを確認します。 KubectlがEKSクラスターに接続できることを確認できます。
[[email protected] ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 105m

結論
この記事では、Amazon EKSクラスターをプロビジョニングする方法と、LinuxプラットフォームでEKSクラスター用にAWSCLIとKubectlをセットアップする方法を学習しました。
AWSクラウドにKubernetesクラスターを正常にデプロイしました。不思議に思うかもしれません。ノードグループを追加し、AWSEKSクラスターでワーカーノードを設定する方法については、次のガイドを確認してください。
- AmazonEKSクラスターにワーカーノードを追加する方法