このトピックでは、Tanzu Kubernetes Grid (TKG) ワークロード クラスタをアップグレードする方法について説明します。スタンドアローン管理クラスタを使用する TKG の場合は、まずワークロード クラスタを管理する管理クラスタをアップグレードする必要があります。
重要スタンドアローン管理クラスタとワークロード クラスタは、クライアント証明書を使用してクライアントを認証します。これらの証明書は 1 年間有効です。更新するには、少なくとも年 1 回クラスタをアップグレードします。
アップグレード プロセスでは、ワークロード クラスタのすべての制御プレーン ノードとワーカー ノード内の Kubernetes のバージョンがアップグレードされます。
使用可能な管理クラスタのインタラクティブなリストを表示し、アップグレードするクラスタを管理する管理クラスタを選択するには、tanzu login
コマンドを実行します。
tanzu login
ワークロード クラスタを一覧表示するには、次のコマンドを実行します。
tanzu cluster list --include-management-cluster -A
--include-management-cluster -A
オプションを指定した tanzu cluster list
コマンドにより、管理クラスタで実行されている Kubernetes のバージョンと、管理するすべてのクラスタが表示されます。この例では、管理クラスタはすでに v1.24.10 にアップグレードされているのに、ワークロード クラスタでは古いバージョンの Kubernetes が実行されています。
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN TKR
k8s-1-22-13-cluster default running 1/1 1/1 v1.22.13+vmware.1 <none> dev v1.22.13---vmware.1-tkg.1
k8s-1-23-10-cluster default running 1/1 1/1 v1.23.10+vmware.1 <none> dev v1.23.10---vmware.1-tkg.1
mgmt-cluster tkg-system running 1/1 1/1 v1.24.10+vmware.1 management dev v1.24.10---vmware.1-tkg.1
管理クラスタによって使用可能になっている Kubernetes のバージョンを確認するには、tanzu kubernetes-release get
コマンドを実行します。
tanzu kubernetes-release get
出力には、クラスタの展開に使用できる Kubernetes のすべてのバージョンが一覧表示されます。また、次の注意事項があります。
COMPATIBLE
:現在の管理クラスタは、この Tanzu Kubernetes リリース (tkr
) でワークロード クラスタを展開できます。UPDATES AVAILABLE
:この tkr
は、Kubernetes バージョン ラインの最新のものではありません。この tkr
バージョンを実行しているワークロード クラスタは、新しいバージョンにアップグレードできます。例:
NAME VERSION COMPATIBLE ACTIVE UPDATES AVAILABLE
v1.22.17---vmware.1-tkg.1 v1.22.17+vmware.1-tkg.1 True True
v1.23.16---vmware.1-tkg.1 v1.23.16+vmware.1-tkg.1 True True
v1.24.10---vmware.1-tkg.1 v1.24.10+vmware.1-tkg.1 True True
古い tkr
バージョンを実行しているワークロード クラスタのアップグレード先となる新しい tkr
バージョンを検出するには、現在の tkr
バージョンを指定して tanzu kubernetes-release available-upgrades get
コマンドを実行します。
tanzu kubernetes-release available-upgrades get v1.23.10---vmware.1-tkg.1
このコマンドは、指定されたバージョンを実行しているクラスタのアップグレード先となる使用可能なすべての Kubernetes バージョンを一覧表示します。
また、tanzu cluster available-upgrades get
コマンドでクラスタ名を指定することで、特定のワークロード クラスタで使用可能な tkr
バージョンを検出することもできます。
tanzu cluster available-upgrades get k8s-1-23-10-cluster
このコマンドは、指定されたクラスタと互換性のあるすべての Kubernetes バージョンを一覧表示します。
tkr
バージョンをアップグレードするときに、マイナー バージョンをスキップすることはできません。たとえば、クラスタを v1.22.x から v1.24.x に直接アップグレードすることはできません。クラスタを v1.24.x にアップグレードする前に、v1.22.x クラスタを v1.23.x にアップグレードする必要があります。
クラスタが Azure で実行されている場合は、クラスタをアップグレードする前に AZURE_CLIENT_SECRET
環境変数を設定します。
export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
tanzu cluster upgrade CLUSTER-NAME
コマンドを実行し、y
と入力して確認します。確認手順をスキップするには、--yes
オプションを指定します。
このリリースの Tanzu Kubernetes Grid のデフォルトの Kubernetes バージョンにクラスタをアップグレードするには、オプションの設定なしで tanzu cluster upgrade
コマンドを実行します。このリリースでは、デフォルトのバージョンは v1.24.10
です。例:
tanzu cluster upgrade k8s-1-23-10-cluster
クラスタが default
名前空間で実行されていない場合は、--namespace
オプションを指定します。
tanzu cluster upgrade CLUSTER-NAME --namespace NAMESPACE-NAME
アップグレードが完了する前にタイムアウトした場合は、デフォルトの 30 分よりも大きい値を指定した --timeout
オプションを指定して、tanzu cluster upgrade
を再度実行します。
tanzu cluster upgrade CLUSTER-NAME --timeout 45m0s
重要Azure での操作は、他のプラットフォームでの場合よりも時間がかかる場合があります。Azure 上のクラスタをアップグレードする場合は、エラーを回避するために
--timeout
オプションを定期的に設定してください。
IaaS アカウント内の複数のベース仮想マシン イメージに、アップグレード対象と同じバージョンの Kubernetes がある場合は、--os-name
オプションを使用して、必要な OS を指定します。詳細については、「クラスタをアップグレードする際の OS の選択」を参照してください。
たとえば、vSphere で Kubernetes v1.23.16 を使用して Photon テンプレートと Ubuntu OVA テンプレートの両方をアップロードした場合は、--os-name ubuntu
を指定して、Ubuntu で実行するようにワークロード クラスタをアップグレードします。
tanzu cluster upgrade CLUSTER-NAME --os-name ubuntu
tkr
のマイナー バージョンをスキップすることはできないため、デフォルト バージョンより 2 つ上のマイナー バージョンのクラスタをアップグレードしようとすると、アップグレード コマンドは失敗します。たとえば、v1.22.x から v1.24.x に直接アップグレードすることはできません。このリリースの Tanzu Kubernetes Grid のデフォルト以外の Kubernetes バージョンにクラスタをアップグレードするには、上記の tanzu kubernetes-release get
によって一覧表示されている、選択したバージョンの NAME
を使用して --tkr
オプションを指定します。たとえば、クラスタ k8s-1-22-13-cluster
を v1.22.13 から v1.23.16 にアップグレードするとします。
tanzu cluster upgrade k8s-1-22-13-cluster --tkr v1.23.16---vmware.1-tkg.1
アップグレードが完了したら、tanzu cluster list
コマンドを実行して、ワークロード クラスタがアップグレードされていることを確認します。
tanzu cluster list --include-management-cluster -A
管理者の kubeconfig
を再生成します。
tanzu cluster kubeconfig get CLUSTER-NAME --admin
ここで、CLUSTER-NAME
はワークロード クラスタの名前です。
重要アップグレード後に
kubeconfig
を更新しない場合、クラスタの有効期限が切れるとアクセスできなくなります。
LDAP または OIDC ID プロバイダを使用している場合は、kubectl
を使用して、クラスタに対して認証できることを確認します。例:
kubectl get pods -A --kubeconfig my-cluster-credentials
ワークロード クラスタで実行されている、Contour、Fluent Bit、Prometheus などの CLI で管理されるパッケージをアップグレードします。CLI で管理されるパッケージのアップグレードの詳細については、「Update a Package」を参照してください。
引き続き Tanzu CLI を使用してクラスタを管理できるようになりました。詳細については、「Tanzu CLI を使用した TKG 2.1 ワークロード クラスタの作成と管理」を参照してください。