Tanzu Kubernetes クラスタ仕様が v1alpha2 API 形式に自動変換した後、通常は、Tanzu Kubernetes リリース バージョンを変更して行う Tanzu Kubernetes クラスタのローリング アップデートを実行する際に、エラーを回避するために、クラスタ仕様の事前処理が必要な場合があります。
クラスタ仕様の自動変換
vSphere with Tanzu 環境を Tanzu Kubernetes Grid サービス v1alpha2 API に更新するには、サービスが実行されている スーパーバイザー クラスタ を更新します。
Tanzu Kubernetes Grid サービス で v1alpha2 API が実行されている場合は、既存のすべての Tanzu Kubernetes クラスタ仕様が v1alpha1 形式から v1alpha2 形式に自動的に変換されます。自動変換処理中に、システムは各クラスタ マニフェストに想定されるフィールドを作成して、ポピュレートします。API の廃止と追加 に、v1alpha2 API で新しく導入されたクラスタ仕様フィールドと廃止されたクラスタ仕様フィールドを示します。
マニフェストが v1alpha2 形式に自動的に変換されたクラスタの Tanzu Kubernetes リリース バージョンを更新するには、エラーを回避するために手動での事前処理が必要になる場合があります。クラスタ更新の例 に、さまざまなオプションを示します。
API の廃止と追加
廃止された設定 | 新しい設定 | コメント |
---|---|---|
|
|
TKR NAME 形式を使用する必要があります。例を参照してください。 |
|
|
変換されたクラスタでは、ブロック spec.topology.workers が spec.topology.nodePools[0] になります。
|
|
|
count は replicas に置き換わります |
|
|
class は vmClass に置き換わります |
該当なし |
|
オブジェクトを整理および分類するためのオプションのキーペア値。ラベルは、作成されたノードに伝達されます |
該当なし |
|
ノードを登録するオプションのテイント。ユーザー定義のテイントは、作成されたノードに伝達されます |
TKR NAME 形式が必須
廃止される spec.distribution.version
フィールドだけでなく、Tanzu Kubernetes リリース バージョンを指定する DISTRIBUTION 形式もサポートされていません。つまり、1.21.2+vmware.1-tkg.1.ee25d55
、1.21.2
、および 1.21
の文字列形式を使用してターゲット リリースを参照することはできません。
kubectl get tanzukubernetescluster NAMESPACE NAME CONTROL PLANE WORKER TKR NAME AGE READY TKR COMPATIBLE UPDATES AVAILABLE tkgs-cluster-1 test-cluster 3 3 v1.21.2---vmware.1-tkg.1.ee25d55 38h True True [1.21.2+vmware.1-tkg.1.ee25d55]
kubectl edit を使用したクラスタ仕様の更新
TKGS v1alpha2 API に準拠させるためのクラスタ仕様の編集には、kubectl edit
メソッドを使用します。この種の更新に、kubectl patch
メソッドは使用しないでください。クラスタ マニフェストの編集方法を参照してください。エディタによる kubectl
の構成方法については、Kubectl のデフォルトのテキスト エディタの指定を参照してください。
クラスタ更新の例
クラスタのローリング アップデートをトリガする最も一般的な方法は spec.distribution.version
を変更すること(Tanzu Kubernetes クラスタの更新 を参照)ですが、このフィールドは v1alpha2 API で廃止されています。そのため、クラスタの更新に関する潜在的な問題を回避するには、いくつかの点に注意して、事前処理に関するいくつかの推奨事項に従う必要があります。
次の例は、v1alpha1 API を使用してプロビジョニングされた Tanzu Kubernetes クラスタのバージョンを v1alpha2 API を実行しているシステムに更新する例を示します。
クラスタ アップグレードの例 1:制御プレーンで単一の TKR NAME リファレンスを使用する
推奨方法は、変換された仕様からすべての nodePools[*].tkr.reference.name
ブロックを削除し、ターゲット リリースの TKR NAME を使用して controlPlane.tkr.reference.name
を更新することです。この場合、同じ Tanzu Kubernetes リリースがすべての nodePools[*]
ノードに伝達されます。
これ以降、controlPlane
と nodePools[*]
で Tanzu Kubernetes リリースのバージョンが異なる場合があります。ただし、現在はクラスタ内のすべてのリリースが一致している必要があるため、単一の TKR NAME リファレンスを controlPlane
に配置するだけで十分です。
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-update-example1 namespace: tkgs-cluster-ns spec: settings: network: cni: name: antrea pods: cidrBlocks: - 192.0.2.0/16 serviceDomain: cluster.local services: cidrBlocks: - 198.51.100.0/12 topology: controlPlane: replicas: 3 storageClass: vwt-storage-policy tkr: reference: name: v1.21.2---vmware.1-tkg.1.ee25d55 vmClass: best-effort-medium nodePools: - name: workers replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium
クラスタ アップグレードの例 2:各ノード プールに TKR NAME リファレンスを使用する
2 番目の例では、controlPlane
トポロジと nodePools[*]
トポロジの両方の tkr.reference.name
ブロックに TKR NAME を配置します。
この方法には、Tanzu Kubernetes リリースがノード プール間で異なる可能性がある場合に、将来のリリースに対応できるという利点があります。現在、これらのリリースは一致する必要があります。
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-update-example2 namespace: tkgs-cluster-ns spec: settings: network: cni: name: antrea pods: cidrBlocks: - 192.0.2.0/16 serviceDomain: cluster.local services: cidrBlocks: - 198.51.100.0/12 topology: controlPlane: replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium tkr: reference: name: v1.21.2---vmware.1-tkg.1.ee25d55 nodePools: - name: workers replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium tkr: reference: name: v1.21.2---vmware.1-tkg.1.ee25d55
クラスタ アップグレードの例 3:廃止されたディストリビューションのフィールドを使用する
spec.distribution.fullVersion
と
spec.distribution.version
を使用し、すべての
tkr.reference.name
ブロックを手動で削除することです。両方のフィールドを含める必要があります。1 つのフィールドには TKR NAME 形式を使用し、もう 1 つのフィールドは null に設定します。
v1.21.2
や
v1.21
などのバージョンのショートカットはサポートされていません。
spec.distribution.version
の使用はサポートされません。
version
フィールドに TKR NAME と null(空)値を持つ
fullVersion
を使用しています。すべての
tkr.reference.name
エントリが削除されます。
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-update-example3a namespace: tkgs-cluster-ns spec: distribution: fullVersion: v1.21.2---vmware.1-tkg.1.ee25d55 version: "" settings: network: cni: name: antrea pods: cidrBlocks: - 192.0.2.0/16 serviceDomain: cluster.local services: cidrBlocks: - 198.51.100.0/12 topology: controlPlane: replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium nodePools: - name: workers replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium
fullVersion
フィールドに TKR NAME と null(空)値を持つ
version
を使用することもできます。
version
フィールドを使用している場合でも、バージョンのショートカットはサポートされません。すべての
tkr.reference.name
エントリが削除されます。
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-update-example3b namespace: tkgs-cluster-ns spec: distribution: fullVersion: "" version: v1.21.2---vmware.1-tkg.1.ee25d55 settings: network: cni: name: antrea pods: cidrBlocks: - 192.0.2.0/16 serviceDomain: cluster.local services: cidrBlocks: - 198.51.100.0/12 topology: controlPlane: replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium nodePools: - name: workers replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium