Tanzu Kubernetes リリース (Tkr) は、TKG サービス クラスタで使用するための、VMware によって署名およびサポートされた Kubernetes ソフトウェア ディストリビューションを提供します。TKr 形式は、vSphere 8 でパッケージと複数のオペレーティング システムがサポートされるように更新されています。
TKr リリース ノート
使用可能な TKr の詳細なリスト、各リリースの新機能、既知の問題、および TKr の互換性については、「Tanzu Kubernetes リリースのリリース ノート」を参照してください。
TKr の配布と使用
VMware は、コンテンツ配信ネットワークを介して Tanzu Kubernetes リリース を配布します。vSphere コンテンツ ライブラリを使用して、TKr と vSphere 名前空間 の関連付けを行います。TKr を自動的に使用するには、サブスクライブ済みコンテンツ ライブラリを使用します。インターネットが制限されている環境では、ローカル コンテンツ ライブラリを使用します。
各 Tanzu Kubernetes リリース は OVA テンプレートとして配布されます。スーパーバイザー の TKr コントローラは、OVA テンプレートを使用して TKG クラスタ ノードの仮想マシンを構築します。仮想マシンのディスク サイズは TKr OVA テンプレートによって設定されます。CPU および RAM リソースは、仮想マシン クラスを使用して指定します。
TKr コンテンツ ライブラリは、名前空間の範囲内にありません。すべての vSphere 名前空間 は、スーパーバイザー を使用する TKG に対して同じ TKr コンテンツ ライブラリを使用します。1 つの vSphere 名前空間 の TKr コンテンツ ライブラリを編集すると、他のすべての名前空間の TKr コンテンツ ライブラリも更新されます。
TKr NAME 文字列
kubectl get tkr
を使用して、
vSphere 名前空間 で使用可能な TKr イメージを一覧表示します。例:
kubectl get tkr NAME VERSION READY COMPATIBLE CREATED v1.16.14---vmware.1-tkg.1.ada4837 v1.16.14+vmware.1-tkg.1.ada4837 False False 19d v1.17.17---vmware.1-tkg.1.d44d45a v1.17.17+vmware.1-tkg.1.d44d45a False False 19d v1.18.19---vmware.1-tkg.1.17af790 v1.18.19+vmware.1-tkg.1.17af790 False False 19d v1.19.16---vmware.1-tkg.1.df910e2 v1.19.16+vmware.1-tkg.1.df910e2 False False 19d v1.20.12---vmware.1-tkg.1.b9a42f3 v1.20.12+vmware.1-tkg.1.b9a42f3 False False 19d v1.21.6---vmware.1-tkg.1.b3d708a v1.21.6+vmware.1-tkg.1.b3d708a True True 19d v1.22.9---vmware.1-tkg.1.cc71bc8 v1.22.9+vmware.1-tkg.1.cc71bc8 True True 19d v1.23.8---vmware.2-tkg.2-zshippable v1.23.8+vmware.2-tkg.2-zshippable True True 19d v1.23.8---vmware.3-tkg.1 v1.23.8+vmware.3-tkg.1 True True 19d
tkr.reference.name
フィールドに完全な TKr NAME 文字列を指定します。
v1beta1 API を使用している場合は、
topology.version
フィールドに完全な TKr NAME 文字列を指定します。
コンテンツ ライブラリでの TKr の名前は、完全な TKr NAME 文字列である必要があります。サブスクライブ済みコンテンツ ライブラリを使用している場合は、TKr NAME 文字列が作成されます。ローカル コンテンツ ライブラリを使用している場合は、TKr に付与する名前が TKr NAME 文字列と一致していることを確認します。詳細については、ローカル コンテンツ ライブラリを参照してください。
TKr の TKG サービス との互換性
TKr は、TKG サービス および スーパーバイザー とは別個にリリースおよび更新されます。
TKG クラスタをプロビジョニングするには、TKr に TKG サービス との互換性が必要です。TKG サービス との互換性がない TKr は使用できません。また、アップグレード対象のバージョンと互換性のある TKr を実行していることを確認する必要があります。
TKr の互換性を確認するには、コマンド kubectl get tkr
を使用します。COMPATIBLE 列はブール値を返します。True
は TKr に互換性があることを意味し、False
は TKr に互換性がないことを意味します。
TKr の vSphere との互換性
vSphere 8 では TKr 形式が更新されています。vSphere 8 の TKr は、vSphere 8.x でのみ実行できます。vSphere 7.x の TKr は、vSphere 7 で動作するレガシー イメージです。このようなイメージは vSphere 8 で実行できますが、アップグレードを目的とする場合に限られます。レガシー TKr イメージは、legacy-tkr
注釈ラベルによって識別されます。
TKr の互換性を確認するには、コマンド kubectl get tkr -o yaml
と kubectl get tkr --show-labels
を使用します。注釈ラベル legacy-tkr
が存在する場合、TKr は vSphere 8 の機能をサポートしないため、vSphere 7 から vSphere 8 へのアップグレードに限り使用する必要があります。
legacy-tkr
であることを示しています。
kubectl get tkr v1.23.8---vmware.3-tkg.1 -o yaml
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesRelease
metadata:
creationTimestamp: "2023-03-15T20:33:17Z"
finalizers:
- tanzukubernetesrelease.run.tanzu.vmware.com
generation: 1
labels:
os-arch: amd64
os-name: photon
os-type: linux
os-version: "3.0"
[run.tanzu.vmware.com/legacy-tkr: ""]
v1: ""
v1.23: ""
v1.23.8: ""
v1.23.8---vmware: ""
v1.23.8---vmware.3: ""
v1.23.8---vmware.3-tkg: ""
v1.23.8---vmware.3-tkg.1: ""
name: v1.23.8---vmware.3-tkg.1
--show-labels
フラグを使用して TKr の互換性を確認します。ラベル
legacy-tkr
があるため、イメージはレガシー TKG クラスタの作成にのみ使用できます。
kubectl get tkr v1.23.8---vmware.3-tkg.1 --show-labels
NAME VERSION READY COMPATIBLE CREATED LABELS
v1.23.8---vmware.3-tkg.1 v1.23.8+vmware.3-tkg.1 True True 19d os-arch=amd64,os-name=photon,os-type=linux,os-version=3.0,[run.tanzu.vmware.com/legacy-tkr=],
legacy-tkr
がラベル リストに含まれていないため、TKr が vSphere 8.x 専用であることが示されています。
kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 --show-labels NAME VERSION READY COMPATIBLE CREATED LABELS v1.28.8---vmware.1-fips.1-tkg.2 v1.28.8+vmware.1-fips.1-tkg.2 True True 21d os-arch=amd64,os-name=photon,os-type=linux,os-version=5.0,tkr.tanzu.vmware.com/standard=,v1.28.8---vmware.1-fips.1-tkg.2=,v1.28.8---vmware.1-fips.1-tkg=,v1.28.8---vmware.1-fips.1=,v1.28.8---vmware.1-fips=,v1.28.8---vmware.1=,v1.28.8---vmware=,v1.28.8=,v1.28=,v1=
-o yaml
を使用して同等なコマンドを実行した場合も、
legacy-tkr
ラベルは存在せず、TKr が vSphere 8.x 専用であることが示されます。
kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 -o yaml apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesRelease metadata: creationTimestamp: "2024-05-08T20:03:57Z" finalizers: - tanzukubernetesrelease.run.tanzu.vmware.com generation: 2 labels: os-arch: amd64 os-name: photon os-type: linux os-version: "5.0" tkr.tanzu.vmware.com/standard: "" v1: "" v1.28: "" v1.28.8: "" v1.28.8---vmware: "" v1.28.8---vmware.1: "" v1.28.8---vmware.1-fips: "" v1.28.8---vmware.1-fips.1: "" v1.28.8---vmware.1-fips.1-tkg: "" v1.28.8---vmware.1-fips.1-tkg.2: "" name: v1.28.8---vmware.1-fips.1-tkg.2 ...
TKr オペレーティング システムのイメージ形式
TKr OS イメージ形式では、1 つの TKr に対して複数のオペレーティング システム イメージがサポートされています。つまり、サポートされているすべてのオペレーティング システム(現在は PhotonOS と Ubuntu)の特定の Kubernetes バージョンに対して、Tanzu Kubernetes リリース が 1 つあります。デフォルトの OS イメージ形式は PhotonOS です。
run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu
注釈を使用して TKr の Ubuntu OS エディションを指定します。たとえば、次の
TKG クラスタ仕様では、TKr という名前の Ubuntu エディションを使用しています。
apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-ubuntu namespace: tkgs-cluster-ns annotations: run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu spec: topology: controlPlane: ... tkr: reference: name: v1.28.8---vmware.1-fips.1-tkg.2
apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-multiOS namespace: tkgs-cluster-ubuntu annotations: //Worker nodes annotation run.tanzu.vmware.com/resolve-os-image.np-1: os-name=ubuntu spec: topology: controlPlane: tkr: reference: name: v1.28.8---vmware.1-fips.1-tkg.2 replicas: 3 vmClass: guaranteed-medium storageClass: tkgs-storage-profile nodePools: - replicas: 3 name: np-1 vmClass: guaranteed-medium storageClass: tkgs-storage-profile
システムを vSphere 8 にアップグレードすると、既存の TKr は、単一の OS イメージを参照して TKr OS イメージ形式に自動的に変換されます。これにより、レガシー TKr を非レガシー TKr にアップグレードする場合の互換性を確保できます。
レガシー TKr には、Photon と Ubuntu の 2 つのエディションがあります。レガシー TKr に Ubuntu 固有のエディションがある場合は、バージョン文字列全体(「ubuntu」を含む)を使用して注釈ラベルを省略するか、バージョン文字列の短縮形(「ubuntu」を含まない)を使用してバージョン ラベルを含めることができます。
TKr パッケージ
vSphere 8 と互換性がある TKr イメージは、コンテナ ストレージ インターフェイス (CSI) やコンテナ ネットワーク インターフェイス (CNI) などのコア コンポーネント用のパッケージベースのフレームワークに更新されます。v1beta API を使用している場合、これらのコンポーネントの変更または更新はカスタム リソース定義を使用して行われます。
kubectl get tkr TKR-NAME -o yaml
kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 -o yaml
spec: bootstrapPackages: - name: antrea.tanzu.vmware.com.1.13.3+vmware.3-tkg.2-vmware - name: vsphere-pv-csi.tanzu.vmware.com.3.1.0+vmware.1-tkg.6-vmware - name: vsphere-cpi.tanzu.vmware.com.1.28.0+vmware.1-tkg.1-vmware - name: kapp-controller.tanzu.vmware.com.0.48.2+vmware.1-tkg.1-vmware - name: guest-cluster-auth-service.tanzu.vmware.com.1.3.3+tkg.1-vmware - name: metrics-server.tanzu.vmware.com.0.6.2+vmware.3-tkg.5-vmware - name: secretgen-controller.tanzu.vmware.com.0.15.0+vmware.1-tkg.1-vmware - name: pinniped.tanzu.vmware.com.0.25.0+vmware.2-tkg.1-vmware - name: capabilities.tanzu.vmware.com.0.32.1+vmware.1 - name: gateway-api.tanzu.vmware.com.1.0.0+vmware.1-tkg.1-vmware - name: calico.tanzu.vmware.com.3.26.3+vmware.1-tkg.1-vmware
使用事例の例については、v1beta1 の例:Calico CNI を含むクラスタを参照してください。
TKr OS タイプの移行
TKr オペレーティング システム間でクラスタのインプレース アップデートを行うことはできません。つまり、TKr バージョン 1.27 Photon を使用している TKG クラスタを TKr v1.28.8 Ubuntu にアップグレードすることなどはできません。
- Velero を使用して、Photon ベースの TKG クラスタ ワークロードをバックアップします。
TKG サービス クラスタとワークロードのバックアップとリストアを参照してください。
- Ubuntu TKr を使用して新しい TKG クラスタをプロビジョニングします。
TKG サービス クラスタのプロビジョニングを参照してください。
- Velero を使用して、TKG クラスタ ワークロードを Ubuntu クラスタにリストアします。
TKG サービス クラスタとワークロードのバックアップとリストアを参照してください。
TKr のセキュリティ強化
スーパーバイザー と TKr を含むシステム コンポーネントのセキュリティ技術導入ガイド (STIG) を利用できます。詳細については、「Tanzu STIG Hardening」を参照してください。
独自の TKr の構築
TKr v1.25.7 for vSphere 8.x 以降では、vSphere 8 で TKG クラスタのカスタム TKr マシン イメージを構築できます。カスタム マシン イメージには、サポートされているオペレーティング システムとバージョン、リリースされた TKr に基づく Kubernetes バージョン、およびユーザーが行ったカスタマイズがパッケージ化されています。
TKG クラスタ ノード用のカスタム マシン イメージを構築するには、vSphere Tanzu Kubernetes Grid Image Builder を使用します。カスタム イメージの構築、サポートされている TKr バージョン、およびサポートされているカスタマイズの詳細については、ドキュメントを参照してください。