このトピックでは、使用可能な Kubernetes バージョンを一覧表示し、デフォルト以外の Kubernetes バージョンを使用してワークロード クラスタを展開する方法について説明します。
スタンドアローン管理クラスタを使用する Tanzu Kubernetes Grid の各バージョンには、Kubernetes のデフォルト バージョンとデフォルト以外の 2 つのバージョンが用意されています。デフォルト以外のバージョンは、tanzu kubernetes-release get
を実行して一覧表示できます。
Tanzu Kubernetes Grid は、Tanzu Kubernetes リリース (TKr) オブジェクトを使用して Kubernetes バージョンを管理します。TKr は、TKr で定義されている Kubernetes バージョンと互換性のある OS イメージ、コア Kubernetes コンポーネント、およびブートストラップ パッケージを指定します。デフォルトまたはデフォルト以外の TKr を使用して tanzu cluster create
を実行すると、Tanzu Kubernetes Grid は TKr で指定されたコンポーネントとブートストラップ パッケージを使用してクラスタを作成します。また、クラスタ構成ファイルを読み取り、クラスタの作成時に使用する互換性のある OS イメージを決定します。
サポートされている Kubernetes バージョンの完全なリストについては、『VMware Tanzu Kubernetes Grid v2.4 リリース ノート』の「Tanzu Kubernetes Grid v2.4 でサポートされている Kubernetes バージョン」を参照してください。
使用可能なすべての Kubernetes リリースを現在の互換性とアップグレード ステータスとともに一覧表示するには、次のようにオプションのバージョン一致引数を指定して tanzu kubernetes-release get
を実行します。
tanzu kubernetes-release get
を実行します。v1.26.8
に一致するすべてのリリースを一覧表示するには、tanzu kubernetes-release get v1.26.8
を実行します。tanzu kubernetes-release get
NAME VERSION COMPATIBLE ACTIVE UPDATES AVAILABLE
v1.25.13---vmware.1-tkg.1 v1.25.13+vmware.1-tkg.1 True True
v1.26.8---vmware.1-tkg.1 v1.26.8+vmware.1-tkg.1 True True
v1.27.5---vmware.2-tkg.1 v1.27.5+vmware.1-tkg.1 True True
特定のワークロード クラスタで使用可能な TKr バージョンを検出するには、次のようにクラスタの完全な名前を指定して tanzu cluster available-upgrades get
を実行します。
tanzu cluster available-upgrades get my-cluster
TKr は有効または無効にできます。TKr を有効にするには:
tanzu kubernetes-release activate TKR-NAME
例:
tanzu kubernetes-release activate v1.27.5---vmware.1-tkg.1
TKr を無効にするには:
tanzu kubernetes-release deactivate TKR-NAME
例:
tanzu kubernetes-release deactivate v1.27.5---vmware.1-tkg.1
Tanzu Kubernetes Grid の各リリースには、Kubernetes のデフォルト バージョンが用意されています。Tanzu Kubernetes Grid v2.4 のデフォルト バージョンは Kubernetes v1.27.5 です。
アップストリームの Kubernetes がパッチまたは新しいバージョンをリリースすると、VMware はパブリック レジストリでそれらを公開し、Tanzu Kubernetes リリース コントローラはそれらを管理クラスタにインポートします。これにより、Tanzu CLI は新しいバージョンに基づいてクラスタを作成できます。
vSphere および Azure では、デフォルト以外のバージョンの Kubernetes を実行するクラスタを展開する前に、追加の手順を実行する必要があります。
tanzu kubernetes-release get
コマンドの出力に一覧表示されているターゲットの Kubernetes バージョンを、次のように Azure イメージ SKU に変換します。
v
を k8s-
に変更します。.
を dot
に変更します。+vmware.*
を -ubuntu-2004
に変更して、Azure 上のすべての Tanzu Kubernetes Grid 仮想マシンのデフォルト OS バージョンである Ubuntu v20.04 を指定します。k8s-1dot27dot5-ubuntu-2004
、k8s-1dot26dot8-ubuntu-2004
。
az vm image terms accept
を実行します。例:az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot27dot5-ubuntu-2004
デフォルト以外の Kubernetes バージョンを実行しているワークロード クラスタを展開するには、次の手順を実行します。
プランベースのクラスタを展開する場合は、環境変数 ALLOW_LEGACY_CLUSTER
を true
に設定します。
export ALLOW_LEGACY_CLUSTER=true
クラスタを展開している Kubernetes パッチ バージョンが、「サポートされている Kubernetes バージョン」にリストされているマイナー バージョンでサポートされている最新のパッチよりも古い場合は、tkg-system
名前空間に TKr の ConfigMap
オブジェクトを作成します。
古い TKr をリストする ConfigMap
オブジェクト定義を tkg-system
名前空間に作成します。
apiVersion: v1
kind: ConfigMap
metadata:
namespace: tkg-system
name: TKR-CONFIG-NAME
labels:
run.tanzu.vmware.com/additional-compatible-tkrs: ""
data:
tkrVersions: |
- TKR-VERSON-1
- TKR-VERSON-2
ここで、TKR-CONFIG-NAME
は任意の正当なオブジェクト名(tkg-v2.4.0
など)で、TKR-VERSON-*
値は、tanzu kubernetes-release get
でリストされる古い TKr バージョン(v1.24.11--vmware.1-tkg
など)です。
ConfigMap
オブジェクトを作成します。
kubectl apply -f old-tkrs-config.yaml
使用している Tanzu Kubernetes Grid バージョンに対するデフォルト以外のバージョンの Kubernetes を使用してワークロード クラスタを展開するには、--tkr
オプションで Tanzu Kubernetes リリースを指定します。たとえば、Kubernetes v1.25.13 クラスタを展開するには、次のコマンドを実行します。
tanzu cluster create my-1-25-10-cluster --tkr v1.25.13---vmware.1-tkg
ワークロード クラスタの作成方法の詳細については、「ワークロード クラスタの作成」を参照してください。
OS バージョン、Kubernetes バージョン、およびターゲット インフラストラクチャの一般的な組み合わせのために、スタンドアローン管理クラスタを使用する Tanzu Kubernetes Grid はデフォルトのマシン イメージを提供します。必要に応じて、自分でビルドしたイメージを含むカスタム マシン イメージを指定できます。
以下のセクションでは、代替またはカスタムビルドのマシン イメージを使用してクラスタを展開する方法について説明します。
クラスタ構成ファイルでは、OS_NAME
、OS_VERSION
、および OS_ARCH
を設定して、ベース マシン イメージを指定します(たとえば、ubuntu
、20.04
または photon
、3
、および amd64
)。これらのデフォルトは、VMware が配布する OS イメージですが、クラスタ ノードに使用する独自の代替 OS イメージを指定することもできます。
「基本イメージ テンプレートの vSphere へのインポート」の説明に従って、イメージを vSphere にアップロードします。
イメージが、VMware によって配布された既存のマシン イメージと同じ OS バージョンを共有しているかどうかに応じて、次のいずれかを実行します。
VMware が配布する既存の TKr およびイメージと同じ OS 名、バージョン、アーキテクチャを持つ代替イメージを指定する場合は、その OSImage
オブジェクトを編集します。例:
kubectl edit OSImage v1.26.8---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
それ以外の場合は、既存の OSImage
オブジェクト定義をテンプレートとして使用して、新しい OSImage
オブジェクトを作成して適用します。metadata.name
と spec.image.ref.version
の値を OVA ファイル名に設定します。
OSImage
オブジェクトの spec.image.ref
ブロックに、識別子フィールドと値を追加します。たとえば、VMware が配布する Ubuntu 20.04 イメージで Kubernetes v1.26.8 の代替イメージを有効にするには、次の手順を実行します。
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: OSImage
metadata:
creationTimestamp: "2023-06-02T06:08:35Z"
generation: 2
labels:
image-type: ova
os-arch: amd64
os-name: ubuntu
os-type: linux
...
spec:
image:
ref:
MY-FIELD: MY-VALUE
version: v1.26.8---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
type: ova
kubernetesVersion: v1.26.8+vmware.1
os:
arch: amd64
name: ubuntu
type: linux
version: "2004"
ここで、MY-FIELD
および MY-VALUE
は、Cluster
オブジェクト仕様に含めるように設定した識別子フィールドと値です。
MY-VALUE
の長さは 0 ~ 63 文字で、空にすることもできます。空にしない場合は、先頭と末尾に英数字を使用し、英数字、ダッシュ (-
)、アンダースコア (_
)、またはドット (.
) を含める必要があります。ova-MY-FIELD: MY-VALUE
のパターンに従って OSImage
オブジェクトの metadata.labels
設定にコピーします。クラスタで代替マシン イメージを使用するには、Cluster
オブジェクトを編集して、イメージを使用するクラスタ ノードの metadata.annotations
に ova-MY-FIELD=MY-VALUE
設定を追加します。
topology.controlPlane
で metadata.annotations
を編集します。topology.workers.machineDeployments
の下にある metadata.annotations
を編集します。例:
metadata:
annotations:
run.tanzu.vmware.com/resolve-os-image: image-type=ova,ova-my-field=my-value
クラスタ ノードに使用する独自のマシン イメージをビルドできます。これを行う理由は次のとおりです。
手順については、「マシン イメージのビルド」を参照してください。