Share via


Azure Kubernetes Service (AKS) ノード プールのスナップショット

AKS は、新しいノード イメージを毎週リリースします。 新しいクラスター、新しいノード プール、アップグレード クラスターのすべてが常に最新のイメージを受け取ります。これは一貫性を維持し再現可能な環境を構築することを困難にする可能性があります。

ノード プール スナップショットを使用すると、ノード プールの構成スナップショットを作成できます。その後、その構成と Kubernetes バージョンがサポートされている限り、そのスナップショットに基づいて新しいノード プールや新しいクラスターを作成できます。 サポート可能な Windows について詳しくは、AKS でサポートされている Kubernetes のバージョンに関するページを参照してください。

スナップショットは、ノード イメージ バージョン、Kubernetes バージョン、OS の種類、OS の SKU などのソース ノード プールからの構成情報を含む Azure リソースです。 このスナップショット リソースとその構成の各値を参照して、それに基づいて新しいノード プールやクラスターを作成できます。

開始する前に

この記事は、AKS クラスターがすでに存在していることを前提としています。 AKS クラスターがない場合、エンタープライズ規模の AKS 実装の設計に関するガイダンスについては、AKS 設計の計画に関する記事を参照してください。

制限事項

  • スナップショットから作成されたノード プールまたはクラスターでは、スナップショットと同じ仮想マシン ファミリの VM を使用する必要があります。たとえば、D シリーズ ノード プールからキャプチャされたスナップショットに基づいて新しい N シリーズ ノード プールを作成することはできません。これは、このような場合のノード イメージが構造的に異なるためです。
  • スナップショットは、ソース ノード プールと同じリージョンを作成する必要があります。これらのスナップショットを使用して、他のリージョンのクラスターとノード プールを作成または更新できます。

ノード プールのスナップショットを作成する

ノード プールからスナップショットを取得するには、ノード プール リソース ID が必要です。これは次のコマンドから取得できます。

NODEPOOL_ID=$(az aks nodepool show --name nodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --query id -o tsv)

重要

AKS ノード プールからスナップショットを作成するには、その AKS ノード プールを 2021 年 11 月 10 日以後に作成またはアップグレードする必要があります。 aks-previewAzure CLI 拡張機能のバージョン0.5.59 以降を使用している場合、ノード プールのスナップショットに関するコマンドは変更されています。 更新されたコマンドについては、ノード プールのスナップショットに関する CLI のリファレンスを参照してください。

次に、以前のノード プールからスナップショットを取得するためには、az aks snapshot CLI コマンドを使用します。

az aks nodepool snapshot create --name MySnapshot --resource-group MyResourceGroup --nodepool-id $NODEPOOL_ID --location eastus

スナップショットからノード プールを作成する

最初に、以前に作成したスナップショットのリソース ID が必要です。これは次のコマンドから取得できます。

SNAPSHOT_ID=$(az aks nodepool snapshot show --name MySnapshot --resource-group myResourceGroup --query id -o tsv)

次に、以下のコマンドを使用して、このスナップショットに基づいた新しいノード プールを追加できます。

az aks nodepool add --name np2 --cluster-name myAKSCluster --resource-group myResourceGroup --snapshot-id $SNAPSHOT_ID

ノード プールをスナップショットにアップグレードする

スナップショットの Kubernetes バージョンとノード イメージのバージョンが現在のノード プールのバージョンよりも新しい場合は、ノード プールをスナップショット構成にアップグレードできます。

最初に、以前に作成したスナップショットのリソース ID が必要です。これは次のコマンドから取得できます。

SNAPSHOT_ID=$(az aks nodepool snapshot show --name MySnapshot --resource-group myResourceGroup --query id -o tsv)

次に、このコマンドを使用して、このノード プールをこのスナップショット構成にアップグレードできます。

az aks nodepool upgrade --name nodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --snapshot-id $SNAPSHOT_ID

Note

ノード プール イメージのバージョンは、スナップショットに含まれているものと同じであり、すべてのスケール操作を通して同じままです。 ただし、このノード プールがアップグレードされた場合、またはスナップショット ID を指定せずにノード イメージのアップグレードが実行された場合、ノード イメージは最新バージョンにアップグレードされます。

注意

ノード プールのノード バージョンのみをアップグレードするには、--node-image-only フラグを使用します。 これは、同じ Kubernetes バージョンのスナップショットに基づいて、ノード プールのノード イメージ バージョンをアップグレードする場合に必要です。

スナップショットからクラスターを作成する

スナップショットからクラスターを作成すると、スナップショット構成はクラスターの元のシステム プールを作成します。

最初に、以前に作成したスナップショットのリソース ID が必要です。これは次のコマンドから取得できます。

SNAPSHOT_ID=$(az aks nodepool snapshot show --name MySnapshot --resource-group myResourceGroup --query id -o tsv)

次に、このコマンドを使用して、スナップショット構成からこのクラスターを作成できます。

az aks create --name myAKSCluster2 --resource-group myResourceGroup --snapshot-id $SNAPSHOT_ID

次のステップ