GNU/Linux >> Linux の 問題 >  >> Linux

AmazonEKSを使用してAWSにKubernetesクラスターをデプロイする方法

この記事では、 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クラスターにワーカーノードを追加する方法

Linux
  1. CloudWatchを使用してAmazonEC2の空きディスク容量を監視する方法

  2. 最初のポッドをKubernetesクラスターにデプロイする方法

  3. ランチャーを使用してKubernetesクラスターをセットアップする

  1. Rancherを使用してKubernetesクラスターをセットアップする方法

  2. KubernetesにRedisクラスターをデプロイする方法

  3. KubernetesにRabbitMQをデプロイする方法

  1. KubernetesにPostgreSQLをデプロイする方法

  2. RHEL 8にKubernetes(k8s)クラスターをインストールする方法

  3. Kubeadmを使用してHAでKubernetes(k8s)クラスターをセットアップする方法