複数の 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 2.3 リリース ノート』の「Tanzu Kubernetes Grid v2.3 でサポートされている Kubernetes バージョン」を参照してください。

使用可能なバージョンの一覧表示

使用可能なすべての Kubernetes リリースを現在の互換性とアップグレード ステータスとともに一覧表示するには、次のようにオプションのバージョン一致引数を指定して tanzu kubernetes-release get を実行します。

  • すべてのリリースを一覧表示するには、tanzu kubernetes-release get を実行します。
  • v1.24.17 に一致するすべてのリリースを一覧表示するには、tanzu kubernetes-release get v1.24.17 を実行します。
tanzu kubernetes-release get
NAME                       VERSION                  COMPATIBLE  ACTIVE  UPDATES AVAILABLE
v1.24.17---vmware.1-tkg.1  v1.24.17+vmware.1-tkg.1  True        True
v1.25.13---vmware.1-tkg.1  v1.25.13+vmware.1-tkg.1  True        True
v1.26.8---vmware.2-tkg.1   v1.26.8+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.25.13---vmware.1-tkg.1

TKr を無効にするには:

tanzu kubernetes-release deactivate TKR-NAME

例:

tanzu kubernetes-release deactivate v1.25.13---vmware.1-tkg.1

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

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

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

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

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

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

  • vSphere:適切な基本イメージ テンプレート OVA ファイルを vSphere にインポートし、仮想マシン テンプレートに変換します。基本 OVA ファイルを vSphere にインポートする方法については、「基本イメージ テンプレートの vSphere へのインポート」を参照してください。

  • AzureAzure CLI コマンドを実行して、基本 OS バージョンのライセンスを受け入れます。ライセンスを受け入れると、今後はこの手順をスキップできます。

    1. tanzu kubernetes-release get コマンドの出力に一覧表示されているターゲットの Kubernetes バージョンを、次のように Azure イメージ SKU に変換します。
      • 先頭の vk8s- に変更します。
      • バージョン番号の .dot に変更します。
      • 末尾の +vmware.*-ubuntu-2004 に変更して、Azure 上のすべての Tanzu Kubernetes Grid 仮想マシンのデフォルト OS バージョンである Ubuntu v20.04 を指定します。
      • 例:k8s-1dot26dot8-ubuntu-2004k8s-1dot25dot13-ubuntu-2004
    2. az vm image terms accept を実行します。例:

      az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot26dot8-ubuntu-2004
      
  • Amazon Web Services (AWS):アクションは不要です。サポート対象の Kubernetes バージョンを含む Amazon Linux 2 Amazon Machine Images (AMI) は、サポートされているすべての AWS リージョンのすべての AWS ユーザーに対して、公開されており使用可能です。Tanzu Kubernetes Grid は、指定した Kubernetes バージョンに対して適切な AMI を自動的に使用します。

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.3.1 など)で、TKR-VERSON-* 値は、tanzu kubernetes-release get でリストされる古い TKr バージョン(v1.24.14--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-13-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.4---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.4 の代替イメージを有効にするには、次の手順を実行します。

    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.4---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
        type: ova
      kubernetesVersion: v1.26.4+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