自動デプロイでは、GitHub アクションまたは Azure DevOps パイプラインを設定するプロセスが効率化され、アプリケーションの継続的デプロイ パイプラインを Azure Kubernetes Service (AKS) に簡単に作成できます。 接続されると、すべての新しいコミットによってパイプラインが自動的にトリガーされ、アプリケーションにシームレスに更新が配信されます。 独自のデプロイ ファイルを持ち込んでパイプラインをすばやく作成することも、Dockerfile と Kubernetes マニフェストを生成して、コンテナー化されていないアプリケーションを最小限の労力でコンテナー化してデプロイすることもできます。
前提条件
- GitHub アカウントまたは Azure DevOps 組織。
- AKS クラスター。 持っていない場合は、「Azure Kubernetes Service (AKS) クラスターのデプロイ」の手順を使用して作成できます。
- Azure Container Registry (ACR)。 持っていない場合は、「Azure Container Registry (ACR) と Azure Kubernetes Service (AKS) クラスターの統合」の手順を使用して作成できます。
- デプロイするアプリケーション。
ソース コード リポジトリに接続する
自動化されたデプロイ ワークフローを作成し、目的のソース コード リポジトリに接続することを承認します。
- Azure portal で、ご使用の AKS クラスター リソースに移動します。
- サービス メニューの [設定] で、[自動デプロイ]>[作成] を選択します。
- [ リポジトリの詳細] でワークフローの名前を入力し、リポジトリの場所として GitHub または ADO を選択します。
- 目的のリポジトリに接続するには、[ アクセスの承認] を選択します。
- [リポジトリとブランチ] を選択し、[次へ] を選択します。
コンテナー イメージの構成を選択する
Kubernetes 用のアプリケーションを準備するには、アプリケーションをコンテナー イメージにビルドし、コンテナー レジストリに格納する必要があります。 Dockerfile を使用して、コンテナー イメージをビルドする方法について説明します。 ソース コード リポジトリに Dockerfile がまだない場合は、自動デプロイで生成できます。 それ以外の場合は、既存の Dockerfile を使用できます。
自動デプロイを使用して、Go、C#、Node.js、Python、Java、Gradle、Clojure、PHP、Ruby、Erlang、Swift、Rust などの多くの言語とフレームワーク用の Dockerfile を生成します。 言語サポートは、draft.sh で利用できる内容に基づいて構築 されています。
- コンテナー構成の自動コンテナー化 (Dockerfile の生成) を選択します。
- 生成された Dockerfile をリポジトリに保存する場所を選択します。
- サポートされている言語とフレームワークの一覧から アプリケーション環境 を選択します。
- アプリケーション ポートを入力します。
- Dockerfile ビルド コンテキスト パスを指定します。
- 既存の Azure Container Registry を選択するか、新しく作成します。 このレジストリは、ビルドされたアプリケーション イメージを格納するために使用されます。
Kubernetes マニフェスト構成を選択する
注
[マニフェストの生成] オプションでは、Service Connector 統合、自動生成されたイングレス リソース、より詳細でカスタマイズ可能な Kubernetes マニフェスト ファイルなどの高度な機能もサポートされます。
Kubernetes で実行されているアプリケーションは、多くの Kubernetes プリミティブ コンポーネントで構成されます。 これらのコンポーネントは、使用するコンテナー イメージ、実行するレプリカの数、アプリケーションを公開するために必要なパブリック IP がある場合などについて説明します。詳細については、公式の [Kubernetes のドキュメント][kubernetes-documentation] を参照してください。 ソース コード リポジトリにデプロイする基本的な Kubernetes マニフェストがまだない場合は、自動デプロイで生成できます。 それ以外の場合は、既存のマニフェストのセットを使用できます。 既存の Helm グラフを選択することもできます。
コード リポジトリに既に Dockerfile がある場合は、アプリケーション イメージのビルドに使用するコード リポジトリを選択できます。
- 配置オプション として [既存の Kubernetes マニフェスト配置ファイルを使用 する] を選択します。
- リポジトリから Kubernetes マニフェスト ファイルまたはフォルダー を選択します。
- [次へ] を選択します。
(省略可能) マネージドイングレスおよび/またはサービスコネクタを使用する
自動デプロイを使用して Kubernetes マニフェストを生成する場合は、必要に応じてアプリ ルーティングを有効にして、アプリケーションのイングレス コントローラーを設定できます。 Service Connector を使用して新しい接続を作成したり、アプリを既存の Azure サービス バックエンドとシームレスに統合したりすることもできます。
アプリ ルーティングでは、フル マネージドの NGINX ベースのイングレス コントローラーがすぐに使用でき、Azure Key Vault に格納されている証明書を使用した SSL/TLS 暗号化と、Azure DNS を介した DNS ゾーン管理が組み込まれています。 自動デプロイを使用する場合、公開イングレス コマンドはアプリ ルーティングとシームレスに統合されるため、最小限の構成で、セキュリティで保護されたカスタム DNS 名でアプリケーションを外部トラフィックに簡単に公開できます。
- [ イングレスを公開 ] ボックスを選択します。
- 既存のイングレス コントローラーまたは新しいイングレス コントローラーを選択します。
- SSL/TLS を有効にするか、セキュリティで保護されていないイングレス コントローラーを使用するか選択します。
- (省略可能)SSL/TLS 対応イングレス コントローラーを選択する場合は、証明書の詳細を入力します。
- Azure DNS またはサード パーティプロバイダーを使用するかどうかを選択します。
- Azure DNS ゾーンとサブドメイン名を入力します。
(省略可能)環境変数を追加する
名前と値のペアを指定して、Kubernetes のコンテナーの環境変数を定義します。 環境変数は、設定の管理の容易化、機密情報の安全な処理、環境全体の柔軟性を実現するのに役立つため、重要です。
構成を確認してデプロイする
アプリケーションの構成と Kubernetes マニフェストを確認し、[配置] を選択 します。 選択したリポジトリに対してプル要求 (PR) が生成されるため、デプロイ ページから移動しないでください。
プル要求を確認してマージする
デプロイが成功したら、[ プル要求の表示 ] を選択して、コード リポジトリで生成されたプル要求の詳細を表示します。
- [変更されたファイル] で 変更を確認 し、必要な編集を行います。
- 変更をコード リポジトリにマージするには、[ プル要求 のマージ] を選択します。
変更をマージすると、アプリケーションをコンテナー イメージにビルドし、Azure Container Registry に格納してクラスターにデプロイする GitHub Actions ワークフローが実行されます。
デプロイされたリソースを確認する
パイプラインが完了したら、サービス メニューの [Kubernetes リソース] セクションで [サービスとイングレス] を選択することで、Azure portal で作成された KubernetesService
を確認できます。
外部 IP を選択すると、実行中のアプリケーションを含む新しいブラウザー ページが開きます。
リソースを削除する
クラスターの使用が完了したら、次の手順を使用して削除し、Azure の料金が発生しないようにします。
- Azure portal で、[自動デプロイ] に移動します
- 任意のパイプラインで [... ] を選択します。
- を選択して、を削除します。
Azure Kubernetes Service