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

robotsnoindex

ここでは、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 構成をセットアップします。


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 をデプロイする方法について詳細を確認できます。


最終更新日 2020 年 6 月 24 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.