次の方法で共有


Azure Kubernetes Service (AKS) の自動デプロイ

自動デプロイでは、GitHub アクションまたは Azure DevOps パイプラインを設定するプロセスが効率化され、アプリケーションの継続的デプロイ パイプラインを Azure Kubernetes Service (AKS) に簡単に作成できます。 接続されると、すべての新しいコミットによってパイプラインが自動的にトリガーされ、アプリケーションにシームレスに更新が配信されます。 独自のデプロイ ファイルを持ち込んでパイプラインをすばやく作成することも、Dockerfile と Kubernetes マニフェストを生成して、コンテナー化されていないアプリケーションを最小限の労力でコンテナー化してデプロイすることもできます。

前提条件

ソース コード リポジトリに接続する

自動化されたデプロイ ワークフローを作成し、目的のソース コード リポジトリに接続することを承認します。

  1. Azure portal で、ご使用の AKS クラスター リソースに移動します。
  2. サービス メニューの [設定] で、[自動デプロイ]>[作成] を選択します。
  3. [ リポジトリの詳細] でワークフローの名前を入力し、リポジトリの場所として GitHub または ADO を選択します。
  4. 目的のリポジトリに接続するには、[ アクセスの承認] を選択します。
  5. [リポジトリブランチ] を選択し、[次へ] を選択します。

コンテナー イメージの構成を選択する

Kubernetes 用のアプリケーションを準備するには、アプリケーションをコンテナー イメージにビルドし、コンテナー レジストリに格納する必要があります。 Dockerfile を使用して、コンテナー イメージをビルドする方法について説明します。 ソース コード リポジトリに Dockerfile がまだない場合は、自動デプロイで生成できます。 それ以外の場合は、既存の Dockerfile を使用できます。

自動デプロイを使用して、Go、C#、Node.js、Python、Java、Gradle、Clojure、PHP、Ruby、Erlang、Swift、Rust などの多くの言語とフレームワーク用の Dockerfile を生成します。 言語サポートは、draft.sh で利用できる内容に基づいて構築 されています

  1. コンテナー構成の自動コンテナー化 (Dockerfile の生成) を選択します。
  2. 生成された Dockerfile をリポジトリに保存する場所を選択します。
  3. サポートされている言語とフレームワークの一覧から アプリケーション環境 を選択します。
  4. アプリケーション ポートを入力します。
  5. Dockerfile ビルド コンテキスト パスを指定します。
  6. 既存の Azure Container Registry を選択するか、新しく作成します。 このレジストリは、ビルドされたアプリケーション イメージを格納するために使用されます。

Kubernetes マニフェスト構成を選択する

[マニフェストの生成] オプションでは、Service Connector 統合、自動生成されたイングレス リソース、より詳細でカスタマイズ可能な Kubernetes マニフェスト ファイルなどの高度な機能もサポートされます。

Kubernetes で実行されているアプリケーションは、多くの Kubernetes プリミティブ コンポーネントで構成されます。 これらのコンポーネントは、使用するコンテナー イメージ、実行するレプリカの数、アプリケーションを公開するために必要なパブリック IP がある場合などについて説明します。詳細については、公式の [Kubernetes のドキュメント][kubernetes-documentation] を参照してください。 ソース コード リポジトリにデプロイする基本的な Kubernetes マニフェストがまだない場合は、自動デプロイで生成できます。 それ以外の場合は、既存のマニフェストのセットを使用できます。 既存の Helm グラフを選択することもできます。

コード リポジトリに既に Dockerfile がある場合は、アプリケーション イメージのビルドに使用するコード リポジトリを選択できます。

  1. 配置オプション として [既存の Kubernetes マニフェスト配置ファイルを使用 する] を選択します。
  2. リポジトリから Kubernetes マニフェスト ファイルまたはフォルダー を選択します。
  3. [次へ] を選択します。

(省略可能) マネージドイングレスおよび/またはサービスコネクタを使用する

自動デプロイを使用して Kubernetes マニフェストを生成する場合は、必要に応じてアプリ ルーティングを有効にして、アプリケーションのイングレス コントローラーを設定できます。 Service Connector を使用して新しい接続を作成したり、アプリを既存の Azure サービス バックエンドとシームレスに統合したりすることもできます。

アプリ ルーティングでは、フル マネージドの NGINX ベースのイングレス コントローラーがすぐに使用でき、Azure Key Vault に格納されている証明書を使用した SSL/TLS 暗号化と、Azure DNS を介した DNS ゾーン管理が組み込まれています。 自動デプロイを使用する場合、公開イングレス コマンドはアプリ ルーティングとシームレスに統合されるため、最小限の構成で、セキュリティで保護されたカスタム DNS 名でアプリケーションを外部トラフィックに簡単に公開できます。

  1. [ イングレスを公開 ] ボックスを選択します。
  2. 既存のイングレス コントローラーまたは新しいイングレス コントローラーを選択します。
  3. SSL/TLS を有効にするか、セキュリティで保護されていないイングレス コントローラーを使用するか選択します。
  4. (省略可能)SSL/TLS 対応イングレス コントローラーを選択する場合は、証明書の詳細を入力します。
  5. Azure DNS またはサード パーティプロバイダーを使用するかどうかを選択します。
  6. Azure DNS ゾーンサブドメイン名を入力します。

(省略可能)環境変数を追加する

名前と値のペアを指定して、Kubernetes のコンテナーの環境変数を定義します。 環境変数は、設定の管理の容易化、機密情報の安全な処理、環境全体の柔軟性を実現するのに役立つため、重要です。

構成を確認してデプロイする

アプリケーションの構成と Kubernetes マニフェストを確認し、[配置] を選択 します。 選択したリポジトリに対してプル要求 (PR) が生成されるため、デプロイ ページから移動しないでください。

プル要求を確認してマージする

デプロイが成功したら、[ プル要求の表示 ] を選択して、コード リポジトリで生成されたプル要求の詳細を表示します。

GitHub での pull request のスクリーンショット。

  1. [変更されたファイル] で 変更を確認 し、必要な編集を行います。
  2. 変更をコード リポジトリにマージするには、[ プル要求 のマージ] を選択します。

変更をマージすると、アプリケーションをコンテナー イメージにビルドし、Azure Container Registry に格納してクラスターにデプロイする GitHub Actions ワークフローが実行されます。

進行中の GitHub Actions ワークフローを示すスクリーンショット。

デプロイされたリソースを確認する

パイプラインが完了したら、サービス メニューの [Kubernetes リソース] セクションで [サービスとイングレス] を選択することで、Azure portal で作成された KubernetesServiceを確認できます。

[サービスとイングレス] ウィンドウのスクリーンショット。

外部 IP を選択すると、実行中のアプリケーションを含む新しいブラウザー ページが開きます。

Contoso Air アプリケーションが実行されていることを示すスクリーンショット。

リソースを削除する

クラスターの使用が完了したら、次の手順を使用して削除し、Azure の料金が発生しないようにします。

  1. Azure portal で、[自動デプロイ] に移動します
  2. 任意のパイプラインで [... ] を選択します。
  3. を選択して、を削除します。