Azure Kubernetes Fleet Manager の自動デプロイを使用して、コード リポジトリからフリート内の 1 つ以上の AKS クラスターにアプリケーションをビルドしてデプロイできます。 自動デプロイにより、コードをビルドしてデプロイするための GitHub アクション ワークフローを設定するプロセスが簡略化されます。 接続されると、新しくコミットするたびにパイプラインが実行されます。
自動デプロイは 、draft.sh に基づいて構築されます。新しいデプロイ ワークフローを作成するときに、既存の Dockerfile を使用したり、Dockerfile を生成したり、既存の Kubernetes マニフェストを使用したり、Kubernetes マニフェストを生成したりできます。 生成されたマニフェストは、セキュリティと回復性のベスト プラクティスを念頭に置いて作成されます。
Von Bedeutung
Azure Kubernetes Fleet Manager のプレビュー機能は、セルフサービス、オプトイン ベースで利用できます。 プレビューは、"現状有姿のまま" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 Azure Kubernetes Fleet Manager のプレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は、運用環境での使用を意図していません。
[前提条件]
- デプロイするアプリケーションを含む GitHub アカウント。
- Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- 自動デプロイとリソース伝達の概念の概要を読み、この記事で使用される概念と用語を理解してください。
- ハブ クラスターとメンバー クラスターを備えた Kubernetes Fleet Manager。 お持ちでない場合は、「Azure CLI を使用して Azure Kubernetes Fleet Manager リソースを作成し、メンバー クラスターを参加させる」を参照してください。
- 構成を完了したユーザーには、Fleet Manager ハブ クラスター Kubernetes API へのアクセス許可があります。 詳細については、 Kubernetes API へのアクセスに関する ページを参照してください。
- Fleet Manager ハブ クラスターに既にデプロイされている Kubernetes 名前空間。
- メンバー AKS クラスターに AcrPull 権限が付与された Azure Container Registry (ACR)。
アプリケーションのソース コードを取り込む
Azure Kubernetes Fleet Manager を見つけて、自動デプロイの構成を開始します。
- Azure portal で、上部の検索バーで Kubernetes Fleet Manager を検索します。
- 検索結果で Kubernetes Fleet Manager を選択します。
- リソースの一覧から Azure Kubernetes Fleet Manager を選択します。
- Fleet Manager サービス メニューの [フリート リソース] で、[ 自動デプロイ] を選択します。
- 上部のメニューで [ + 作成 ] を選択します。 このデプロイが初めての場合は、展開リスト領域で [作成 ] を選択することもできます。
ソース コード リポジトリに接続する
ワークフローを作成し、目的のソース コード リポジトリとブランチに接続することを承認します。 [リポジトリ] タブで次の詳細を完了します。
- [ワークフロー名] フィールドに、ワークフローのわかりやすい 名前 を入力します。
- 次に、[ アクセスの承認 ] を選択して GitHub に対してユーザーを承認し、リポジトリの一覧を取得します。
- リポジトリ ソースの場合は、次のいずれかを選択します。
- 現在承認されている GitHub ユーザーが所有しているリポジトリの場合は [My repositories]。または、
- すべてのリポジトリとは、現在承認されている GitHub ユーザーがアクセスできるリポジトリのことです。 リポジトリを所有する 組織 を選択する必要があります。
- リポジトリとブランチを選択します。
- [ 次へ ] ボタンを選択します。
アプリケーション イメージとデプロイ構成を指定する
Kubernetes で実行するアプリケーションを準備するには、コンテナー レジストリに格納するコンテナー イメージにアプリケーションをビルドする必要があります。 Dockerfile では、コンテナー イメージをビルドする方法について説明します。 ソース コード リポジトリに Dockerfile がまだない場合は、自動デプロイで生成できます。
コード リポジトリに既に Dockerfile がある場合は、それを使用してアプリケーション イメージをビルドできます。
- 既存の Dockerfile をコンテナー構成に対して選択します。
- リポジトリから Dockerfile を選択します。
- Dockerfile ビルド コンテキストを入力して、一連のファイルとディレクトリをビルド プロセス (通常は Dockerfile と同じフォルダー) に渡します。 これらのファイルはイメージのビルドに使用され、
.dockerignore
ファイルに含めることで無視されない限り、最終的なイメージに含まれます。 - 既存の Azure Container Registry を選択します。 このレジストリは、ビルドされたアプリケーション イメージを格納するために使用されます。 アプリケーションを受信できる AKS クラスターには、レジストリに対するアクセス許可
AcrPull
付与する必要があります。 - Azure Container Registry イメージ名を設定します。 このイメージ名は、Kubernetes 配置マニフェストで使用する必要があります。
Kubernetes マニフェスト構成を選択する
Kubernetes で実行されているアプリケーションは、多くの Kubernetes プリミティブ コンポーネントで構成されます。 これらのコンポーネントは、使用するコンテナー イメージ、実行するレプリカの数、アプリケーションを公開するために必要なパブリック IP がある場合などについて説明します。詳細については、 Kubernetes の公式ドキュメントを参照してください。 ソース コード リポジトリに Kubernetes マニフェストがまだない場合は、自動デプロイで自動的に生成できます。 既存の Helm グラフを選択することもできます。
Warnung
これらの名前空間は Fleet Manager によって使用される内部名前空間であり、アプリケーションの配置に使用できないため、 fleet-system
または fleet-member
名前空間を選択しないでください。
コード リポジトリに既に Kubernetes マニフェストがある場合は、それを選択して、クラスター リソース配置によってデプロイおよび構成されるワークロードを制御できます。
- 配置オプション として [既存の Kubernetes マニフェスト配置ファイルを使用 する] を選択します。
- リポジトリから Kubernetes マニフェスト ファイルまたはフォルダー を選択します。
- ワークロードをステージングする既存の Fleet Manager 名前空間 を選択します。
- [ 次へ ] ボタンを選択します。
構成の確認
リポジトリ、イメージ、およびデプロイ構成の構成を確認します。
[次へ] を選択して、次のアクションを実行するプロセスを開始します。
- フェデレーション資格情報を作成して、GitHub アクションで次の操作を行えるようにします。
- ビルドされたコンテナー イメージを Azure Container Registry にプッシュします。
- Kubernetes マニフェストを Fleet Manager ハブ クラスターで選択した名前空間にステージングします。
- 生成されたファイルとワークフローを使用して、コード リポジトリに pull request を作成します。
セットアップには数分かかるため、[デプロイ] ページから移動しないでください。
プル要求を確認してマージする
デプロイ ステージが完了したら、[ プル要求の承認 ] ボタンを選択して、コード リポジトリで生成されたプル要求を開きます。
注
生成されたプル要求の名前には、それがAKSにデプロイされているかのように示されるという、既知の問題があります。 この間違った名前にもかかわらず、選択した名前空間の Fleet Manager ハブ クラスターでワークロードがステージングされます。
- [変更されたファイル] で 変更を確認 し、必要な編集を行います。
- 変更をコード リポジトリにマージするには、[ プル要求 のマージ] を選択します。
変更をマージすると、アプリケーションをコンテナー イメージにビルドし、選択した Azure Container Registry に格納する GitHub Actions ワークフローが実行されます。
生成されたリソースを確認する
パイプラインが完了したら、構成した Azure Container Registry インスタンスを見つけてイメージ リポジトリを開くことで、Azure portal で作成されたコンテナー イメージを確認できます。
Fleet Manager の自動デプロイ構成を表示することもできます。 workflow
名を選択すると、GitHub アクションで GitHub が開きます。
最後に、予想される Kubernetes リソースが Fleet Manager ハブ クラスターでステージングされていることを確認できます。
az fleet get-credentials \
--resource-group ${GROUP} \
--name ${FLEET}
kubectl describe deployments virtual-worker --namespace=contoso-store
出力は次のようになります。 0 のレプリカでは、ワークロードが Fleet Manager ハブ クラスターでスケジュールされていないと想定されます。 Image
プロパティが Azure Container Registry のビルドイメージに向けられていることを確認してください。
Name: virtual-worker
Namespace: contoso-store
CreationTimestamp: Thu, 24 Apr 2025 01:56:49 +0000
Labels: workflow=actions.github.com-k8s-deploy
workflowFriendlyName=contoso-store-deploy
Annotations: <none>
Selector: app=virtual-worker
Replicas: 1 desired | 0 updated | 0 total | 0 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=virtual-worker
Containers:
virtual-worker:
Image: contoso03.azurecr.io/virtual-worker:latest
Port: <none>
Host Port: <none>
Limits:
cpu: 2m
memory: 20Mi
Requests:
cpu: 1m
memory: 1Mi
Environment:
MAKELINE_SERVICE_URL: http://makeline-service:3001
ORDERS_PER_HOUR: 100
Mounts: <none>
Volumes: <none>
Node-Selectors: kubernetes.io/os=linux
Tolerations: <none>
Events: <none>
クラスター リソースの配置を定義する
プレビュー期間中に、ステージングされたワークロードのメンバー クラスターへの配置を構成するには、次の手順に従います。
アプリケーションのソース コード リポジトリで、 fleet という名前のリポジトリ ルートにフォルダーを作成します。
deploy-contoso-ns-two-regions.yaml
フォルダーに新しいファイル を作成し、表示された内容を追加します。 このサンプルでは、2 つの異なる Azure リージョンに存在する必要がある 2 つのクラスターにcontoso-store
名前空間をデプロイします。apiVersion: placement.kubernetes-fleet.io/v1 kind: ClusterResourcePlacement metadata: name: distribute-virtual-worker-two-regions spec: resourceSelectors: - group: "" kind: Namespace version: v1 name: contoso-store policy: placementType: PickN numberOfClusters: 2 topologySpreadConstraints: - maxSkew: 1 topologyKey: region whenUnsatisfiable: DoNotSchedule
GitHub アクション ワークフロー ファイルを変更し、CRP ファイルへの参照を追加します。
DEPLOYMENT_MANIFEST_PATH: | ./virtual-worker.yaml ./fleet/deploy-contoso-ns-two-regions.yaml
新しい CRP マニフェストと更新された GitHub アクション ワークフロー ファイルをコミットします。
CRP 定義で定義されているポリシーに従ってワークロードが配置されていることを確認します。 Azure portal を使用するか、コマンド ラインで
kubectl
を確認します。
次のステップ
Azure Kubernetes Service