AWS EKS (Kubernetes) にデプロイする

ここでは、aws-eks-kubectl-run パイプと Bitbucket Pipelines を使用して、AWS Elastic Kubernetes Service (EKS) クラスタにアプリケーションをデプロイする方法について説明します。

Bitbucket Pipelines を使用して、Docker イメージを作成し、コンテナ レジストリ (Docker Hub) にプッシュします。また、Kubernetes へのデプロイを自動化する設定の方法についても説明します。

前提条件

aws-eks-kubectl-run パイプを使用してアプリケーションをデプロイするには、以下が必要です。

  • アプリケーションへのデプロイや AWS EKS クラスタへの更新のアップロードをパイプに許可するための十分な権限が構成されている IAM ユーザー。

  • アプリケーションに合わせて構成されている AWS EKS クラスタ: 「eksctl の開始方法

  • ワーカー ノード グループが構成済みであること。AWS の簡単なチュートリアルをご確認ください: 「Amazon EKS ワーカー ノード IAM ロールの作成

  • イメージのプッシュおよびプルが可能な DockerHub アカウント。

手順

1. Bitbucket リポジトリを構成します。

2. Bitbucket の資格情報と構成設定を変数として追加します。「Pipelines 変数の設定方法」を参照してください。

変数名

DOCKERHUB_USERNAME

Dockerhub ユーザー名

DOCKERHUB_PASSWORD

DockerHub パスワード

AWS_ACCESS_KEY_ID

AWS アクセス キー

AWS_SECRET_ACCESS_KEY

AWS 秘密アクセス キー。セキュアな変数として保存されている必要があります。

AWS_DEFAULT_REGION

AWS リソースを含むリージョンの AWS リージョン コード (us-east-1、us-west-2 など)。詳細については「リージョンとエンドポイント」を確認してください。

 

3. bitbucket-pipelines.yml ファイルを編集して、CI/CD 構成をセットアップします

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 image: atlassian/default-image:2 pipelines: default: - step: name: "Build and push" services: - docker script: - IMAGE="bitbucketpipelines/hello-app-eks" - VERSION="${BITBUCKET_BUILD_NUMBER}" - echo ${DOCKERHUB_PASSWORD} | docker login --username "${DOCKERHUB_USERNAME}" --password-stdin - docker build -t ${IMAGE} . - docker tag ${IMAGE} ${IMAGE}:${VERSION} - docker push ${IMAGE} - step: name: "Deploy to PROD" deployment: production script: - envsubst < helloweb-deployment.tpl.yaml > helloweb-deployment.yaml - pipe: atlassian/aws-eks-kubectl-run:1.2.0 variables: AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} AWS_DEFAULT_REGION: "us-east-2" CLUSTER_NAME: "hello-cluster" KUBECTL_COMMAND: "apply" RESOURCE_PATH: "helloweb-deployment.yaml" DEBUG: "true"

この構成では、イメージを作成して Docker Hub にプッシュし、Kubernetes へのデプロイを自動化するために aws-eks-kubectl-run パイプでデプロイを使用することができます。「Bitbucket Pipelines 設定を編集および設定する方法」の詳細をご覧ください。

4. アプリケーションを本番環境にデプロイします。アプリケーションのコードを Bitbucket リポジトリにプッシュし、それによってパイプラインをトリガーします。[Pipelines] を選択してパイプラインの進行状況をチェックし、アプリケーションが正常にデプロイされたことを確認できます。

aws-eks-kubectl-run パイプほかのパイプと併用して、CI/CD パイプラインを作成することができます。

このサンプル リポジトリで、完全なエンドツーエンドのサンプルを利用でき、パイプラインやパイプを使用して AWS EKS をデプロイする方法について詳細を確認できます。

その他のヘルプ