{"meta":{"title":"Azure Kubernetes Serviceへのデプロイ","intro":"継続的デプロイ（CD）ワークフローの一環として、プロジェクトを Azure Kubernetes Service (AKS) にデプロイする方法を学びましょう。","product":"GitHub Actions","breadcrumbs":[{"href":"/ja/actions","title":"GitHub Actions"},{"href":"/ja/actions/how-tos","title":"方法"},{"href":"/ja/actions/how-tos/deploy","title":"デプロイ"},{"href":"/ja/actions/how-tos/deploy/deploy-to-third-party-platforms","title":"サード パーティのプラットフォームへのデプロイ"},{"href":"/ja/actions/how-tos/deploy/deploy-to-third-party-platforms/azure-kubernetes-service","title":"Azure Kubernetes Service"}],"documentType":"article"},"body":"# Azure Kubernetes Serviceへのデプロイ\n\n継続的デプロイ（CD）ワークフローの一環として、プロジェクトを Azure Kubernetes Service (AKS) にデプロイする方法を学びましょう。\n\n## 前提条件\n\nGitHub Actionsワークフローを作成する前に、まず以下のセットアップのステップを完了しておかなければなりません。\n\n1. ターゲット AKS クラスターと Azure Container Registry (ACR) を作成します。 詳細については、Azure ドキュメントの「[クイック スタート: Azure ポータルを使用して AKS クラスターをデプロイする - Azure Kubernetes Service](https://docs.microsoft.com/azure/aks/kubernetes-walkthrough-portal)」および「[クイック スタート - ポータルでレジストリを作成する - Azure コンテナー レジストリ](https://docs.microsoft.com/azure/container-registry/container-registry-get-started-portal)」を参照してください。\n\n1. Azure資格情報を格納するために、`AZURE_CREDENTIALS` という名前のシークレットを作成します。 この情報を検索してシークレットを構成する方法の詳細については、[`Azure/login` アクションドキュメント](https://github.com/Azure/login#configure-a-service-principal-with-a-secret)を参照してください。\n\n## ワークフローの作成\n\n必要な環境を整えたら、ワークフローの作成に進むことができます。\n\n次のワークフロー例は、コードがリポジトリにプッシュされたときにAzure Kubernetes Serviceするプロジェクトをビルドしてデプロイする方法を示しています。\n\nワークフロー `env` キーで、次の値を変更します。\n* `AZURE_CONTAINER_REGISTRY` をコンテナー レジストリの名前に\n* `PROJECT_NAME` をプロジェクトの名前に\n* `RESOURCE_GROUP` を AKS クラスターを含むリソース グループに\n* AKS クラスターの名前として `CLUSTER_NAME` を設定する\n\nこのワークフローでは、`helm`に対して `azure/k8s-bake` レンダー エンジンを使用します。 \n`helm` レンダリング エンジンを使用する場合は、`CHART_PATH` の値を helm ファイルへのパスに変更します。 \n`CHART_OVERRIDE_PATH` をオーバーライド ファイル パスの配列に変更します。 別のレンダリング エンジンを使用する場合は、`azure/k8s-bake` アクションに送信される入力パラメーターを更新します。\n\n```yaml copy\n# このワークフローはGitHubによって認定されていないアクションを使用します。\n# それらはサードパーティによって提供され、\n# 別個の利用規約、プライバシーポリシー、\n# ドキュメントを参照してください。\n\n# GitHub では、コミット SHA にアクションをピン留めすることが推奨されます。\n# 新しいバージョンを取得するには、SHA を更新する必要があります。\n# タグまたはブランチを参照することもできますが、アクションは警告なしに変更される可能性があります。\n\nname: Build and deploy to Azure Kubernetes Service\n\nenv:\n  AZURE_CONTAINER_REGISTRY: MY_REGISTRY_NAME # set this to the name of your container registry\n  PROJECT_NAME: MY_PROJECT_NAME              # set this to your project's name\n  RESOURCE_GROUP: MY_RESOURCE_GROUP          # set this to the resource group containing your AKS cluster\n  CLUSTER_NAME: MY_CLUSTER_NAME              # set this to the name of your AKS cluster\n  REGISTRY_URL: MY_REGISTRY_URL              # set this to the URL of your registry\n  # If you bake using helm:\n  CHART_PATH: MY_HELM_FILE                   # set this to the path to your helm file\n  CHART_OVERRIDE_PATH: MY_OVERRIDE_FILES     # set this to an array of override file paths\n\non: [push]\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v6\n\n    - name: Azure Login\n      uses: azure/login@14a755a4e2fd6dff25794233def4f2cf3f866955\n      with:\n        creds: ${{ secrets.AZURE_CREDENTIALS }}\n\n    - name: Build image on ACR\n      uses: azure/CLI@61bb69d64d613b52663984bf12d6bac8fd7b3cc8\n      with:\n        azcliversion: 2.29.1\n        inlineScript: |\n          az configure --defaults acr=${{ env.AZURE_CONTAINER_REGISTRY }}\n          az acr build -t -t ${{ env.REGISTRY_URL }}/${{ env.PROJECT_NAME }}:${{ github.sha }}\n\n    - name: Gets K8s context\n      uses: azure/aks-set-context@94ccc775c1997a3fcfbfbce3c459fec87e0ab188\n      with:\n          creds: ${{ secrets.AZURE_CREDENTIALS }}\n          resource-group: ${{ env.RESOURCE_GROUP }}\n          cluster-name: ${{ env.CLUSTER_NAME }}\n      id: login\n\n    - name: Configure deployment\n      uses: azure/k8s-bake@61041e8c2f75c1f01186c8f05fb8b24e1fc507d8\n      with:\n        renderEngine: 'helm'\n        helmChart: ${{ env.CHART_PATH }}\n        overrideFiles: ${{ env.CHART_OVERRIDE_PATH }}\n        overrides: |\n          replicas:2\n        helm-version: 'latest'\n      id: bake\n\n    - name: Deploys application\n      uses: Azure/k8s-deploy@dd4bbd13a5abd2fc9ca8bdcb8aee152bb718fa78\n      with:\n        manifests: ${{ steps.bake.outputs.manifestsBundle }}\n        images: |\n          ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.PROJECT_NAME }}:${{ github.sha }}\n        imagepullsecrets: |\n          ${{ env.PROJECT_NAME }}\n```\n\n## 参考資料\n\n* 元のワークフロー テンプレートについては、[`azure-kubernetes-service.yml`](https://github.com/actions/starter-workflows/blob/main/deployments/azure-kubernetes-service.yml) を GitHub Actions `starter-workflows` リポジトリで参照してください。\n* このワークフローで使用されるアクションは、公式の Azure [`Azure/login`](https://github.com/Azure/login),[`Azure/aks-set-context`](https://github.com/Azure/aks-set-context) です。 [`Azure/CLI`](https://github.com/Azure/CLI)、[`Azure/k8s-bake`](https://github.com/Azure/k8s-bake)、および [`Azure/k8s-deploy`](https://github.com/Azure/k8s-deploy)actions。\n* AzureにデプロイGitHubアクション ワークフローのその他の例については、[actions-workflow-samples](https://github.com/Azure/actions-workflow-samples) リポジトリを参照してください。"}