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