複数の Kubernetes バージョン

このトピックでは、使用可能な Kubernetes バージョンを一覧表示し、デフォルト以外の 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

Tanzu Kubernetes リリースの有効化または無効化

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

デフォルト以外の Kubernetes バージョンを使用したクラスタの展開

Tanzu Kubernetes Grid の各リリースには、Kubernetes のデフォルト バージョンが用意されています。Tanzu Kubernetes Grid v2.4 のデフォルト バージョンは Kubernetes v1.27.5 です。

アップストリームの Kubernetes がパッチまたは新しいバージョンをリリースすると、VMware はパブリック レジストリでそれらを公開し、Tanzu Kubernetes リリース コントローラはそれらを管理クラスタにインポートします。これにより、Tanzu CLI は新しいバージョンに基づいてクラスタを作成できます。

  • 使用可能な Kubernetes バージョンを一覧表示するには、上記の「使用可能な Kubernetes バージョン」を参照してください。
  • デフォルト以外のバージョンの Kubernetes を実行するクラスタを展開するには、次の手順を実行します。

インフラストラクチャへの Kubernetes バージョンの公開

vSphere および Azure では、デフォルト以外のバージョンの Kubernetes を実行するクラスタを展開する前に、追加の手順を実行する必要があります。

vSphere
適切な基本イメージ テンプレート OVA ファイルを vSphere にインポートし、仮想マシン テンプレートに変換します。基本 OVA ファイルを vSphere にインポートする方法については、「 基本イメージ テンプレートの vSphere へのインポート」を参照してください。
AWS
アクションは不要です。サポート対象の Kubernetes バージョンを含む Amazon Linux 2 Amazon Machine Images (AMI) は、サポートされているすべての AWS リージョンのすべての AWS ユーザーに対して、公開されており使用可能です。Tanzu Kubernetes Grid は、指定した Kubernetes バージョンに対して適切な AMI を自動的に使用します。
Azure
Azure CLI コマンドを実行して、基本 OS バージョンのライセンスを受け入れます。ライセンスを受け入れると、今後はこの手順をスキップできます。
  1. tanzu kubernetes-release get コマンドの出力に一覧表示されているターゲットの Kubernetes バージョンを、次のように Azure イメージ SKU に変換します。

    • 先頭の vk8s- に変更します。
    • バージョン番号の .dot に変更します。
    • 末尾の +vmware.*-ubuntu-2004 に変更して、Azure 上のすべての Tanzu Kubernetes Grid 仮想マシンのデフォルト OS バージョンである Ubuntu v20.04 を指定します。
    • 例:k8s-1dot27dot5-ubuntu-2004k8s-1dot26dot8-ubuntu-2004
      1. 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 クラスタの展開

デフォルト以外の Kubernetes バージョンを実行しているワークロード クラスタを展開するには、次の手順を実行します。

  1. プランベースのクラスタを展開する場合は、環境変数 ALLOW_LEGACY_CLUSTERtrue に設定します。

    export ALLOW_LEGACY_CLUSTER=true
    
  2. クラスタを展開している Kubernetes パッチ バージョンが、「サポートされている Kubernetes バージョン」にリストされているマイナー バージョンでサポートされている最新のパッチよりも古い場合は、tkg-system 名前空間に TKr の ConfigMap オブジェクトを作成します。

    1. 古い 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 など)です。

    2. ConfigMap オブジェクトを作成します。

      kubectl apply -f old-tkrs-config.yaml
      
  3. 使用している 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_NAMEOS_VERSION、および OS_ARCH を設定して、ベース マシン イメージを指定します(たとえば、ubuntu20.04 または photon3、および amd64)。これらのデフォルトは、VMware が配布する OS イメージですが、クラスタ ノードに使用する独自の代替 OS イメージを指定することもできます。

  1. 基本イメージ テンプレートの vSphere へのインポート」の説明に従って、イメージを vSphere にアップロードします。

  2. イメージが、VMware によって配布された既存のマシン イメージと同じ OS バージョンを共有しているかどうかに応じて、次のいずれかを実行します。

    • VMware が配布する既存の TKr およびイメージと同じ OS 名、バージョン、アーキテクチャを持つ代替イメージを指定する場合は、その OSImage オブジェクトを編集します。例:

      kubectl edit OSImage v1.26.8---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
      
    • それ以外の場合は、既存の OSImage オブジェクト定義をテンプレートとして使用して、新しい OSImage オブジェクトを作成して適用します。metadata.namespec.image.ref.version の値を OVA ファイル名に設定します。

  3. 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 文字で、空にすることもできます。空にしない場合は、先頭と末尾に英数字を使用し、英数字、ダッシュ (-)、アンダースコア (_)、またはドット (.) を含める必要があります。
    • TKG は、これらの値を、ova-MY-FIELD: MY-VALUE のパターンに従って OSImage オブジェクトの metadata.labels 設定にコピーします。
  4. クラスタで代替マシン イメージを使用するには、Cluster オブジェクトを編集して、イメージを使用するクラスタ ノードの metadata.annotationsova-MY-FIELD=MY-VALUE 設定を追加します。

    • 制御プレーン ノードの場合は、topology.controlPlanemetadata.annotations を編集します。
    • ワーカー ノードの場合は、イメージを使用するマシン展開の topology.workers.machineDeployments の下にある metadata.annotations を編集します。
    • 例:

      metadata:
        annotations:
          run.tanzu.vmware.com/resolve-os-image: image-type=ova,ova-my-field=my-value
      

カスタム マシン イメージのビルドと使用

クラスタ ノードに使用する独自のマシン イメージをビルドできます。これを行う理由は次のとおりです。

  • Red Hat Enterprise Linux (RHEL) v8 など、VMware でサポートされるが配布されない基本 OS 上でクラスタを作成するため。
  • 基本マシン イメージに追加のパッケージをインストールする、または Image Builder ドキュメントの「カスタマイズ」の説明に従ってカスタマイズするため。

手順については、「マシン イメージのビルド」を参照してください。

check-circle-line exclamation-circle-line close-line
Scroll to top icon