おうち TKC のアップデートしてみた

この記事は TUNA Advent Calendar 2023 の 12 日目の記事です。

おうちクラウドを建てたいと思い立ってお手軽（？）に組んでみたものの、それ以来ずっと放置していた TKC をアップデートしてみました。
vCenter を 8.0u1 から u2 に更新したタイミングで、「そういえば TKC も更新しないとな？」と思い出したわけですが、みなさんも vCenter 更新したけど TKC 放置してたわ！という方多いのではないでしょうか。
TKGほどちゃんと触ってるわけでもないし。。情報も 7.0 の頃が多いですよね。
そんなわけで、vCenter をあげただけで放置していたおうちクラウド環境で、公式マニュアル中心に雰囲気だけで上げてみた記事を公開します。

大掃除をしているうちについついラボ環境まで綺麗にしたくなったときに是非どうぞ。

# vCenter のアップデート
vCenter は先日 SRM/VR と一緒に u2 へアップデート済みです。Tanzu とかなにも考えずに vami からサクッとアップデートしてしまいました。
※U2a は後の検証用に取っておきたい。最新から1個前がいろいろ便利

https://vCenterのアドレス:5480/#/ui/update/availableUpdates
バージョン: 	8.0.2
ビルド: 	22385739 (8.0U2GA)

![ss20231212T3.04.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/b84c4397-8134-cf7b-ea02-d2d00fb45718.png)

# vSphere with Tanzu のアップデート
## 参考資料
公式のガイドに従ってみます。

VMware vSphere Product Documentation
Docs / VMware vSphere / Maintaining vSphere with Tanzu 
Updated Information
https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-with-tanzu-maintenance/GUID-1396A4BF-A815-414A-B65B-F8FE38B9A746.html

Updating the vSphere with Tanzu Environment
https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-with-tanzu-maintenance/GUID-E491159F-645F-4810-B9A0-8B19AF3E9219.html

VMware vSphere with Tanzu 8.0 Release Notes
https://docs.vmware.com/en/VMware-vSphere/8.0/rn/vmware-vsphere-with-tanzu-80-release-notes/index.html#What's%20New-What's%20New%20September%2021,%202023

VMware Tanzu Kubernetes releases Release Notes
https://docs.vmware.com/en/VMware-Tanzu-Kubernetes-releases/services/rn/vmware-tanzu-kubernetes-releases-release-notes/index.html

2023/12/12 時点の Tanzu Kubernetes releases(TKr)は 1.26.5 が最新でした。

## 互換性
Compatibility Matrix
https://docs.vmware.com/en/VMware-Tanzu-Kubernetes-releases/services/rn/vmware-tanzu-kubernetes-releases-release-notes/index.html#Release-Note-Section-2001

TKr 1.26.5 をサポートする vCenter は 8.0U1c からとなっていて、1.24-1.26 までが対応するようです。

![ss20231212T5.45.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/db7fe341-dda0-91fe-1940-3cbc89e8399b.png)

Interoperability Result
https://interopmatrix.vmware.com/Interoperability?col=820,17283,17000,16845,16846,17483&row=2,16988,17812,6428,5891&isHidePatch=false&isHideGenSupported=false&isHideTechSupported=false&isHideCompatible=false&isHideNTCompatible=false&isHideIncompatible=false&isHideNotSupported=true&isCollection=false

Interoperability でみると、1.26 が動くのは 8.0U2 ですね。1.26 化できればとりあえずオッケーということにしたいと思います。

![ss20231212T4.36.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/909cb23e-ad67-068a-c053-acabac27a743.png)


# Supervisor Version の更新
Home > ワークロード管理 > スーパーバイザ タブ > スーパバイザ名 > 監視 を見ると、バージョンに警告が出ていました。 
![ss20231212T3.24.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/837cbb10-0771-cb6e-3446-dd036e158013.png)

現在利用可能なバージョンから、アップデートしたいバージョンを選択してアップデートします。
![ss20231212T3.47.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/85350986-2e76-5bf3-01ae-719a6664ecbc.png)

1.26 が最新なのになんで選べないんだろうと思いましたが、コンテンツライブラリが更新出来てなかったからでした。対応は後述します
![ss20231212T3.47.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/116dcfb6-c0f0-a5d3-7df8-973de9fc32f3.png)

無事に v1.25 にあがったところ。
![ss20231212T6.01.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/d1034b10-8e19-b083-bea5-ced600901fdc.png)

コンテンツライブラリが問題なくイメージを取得しれいれば、v1.26 にも更新ができます
![ss20231212T6.01.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/340ecbde-0797-ce13-86c7-8c9c777dc72c.png)

# コンテンツライブラリが同期出来ない問題
利用できるイメージを確認すると、1.24 までしか同期出来ていません

```
root@mana:~# kubectl get tkr | grep -v v1.1
NAME                                  VERSION                             READY   COMPATIBLE   CREATED
v1.20.12---vmware.1-tkg.1.b9a42f3     v1.20.12+vmware.1-tkg.1.b9a42f3     False   False        225d
v1.20.2---vmware.1-tkg.1.1d4f79a      v1.20.2+vmware.1-tkg.1.1d4f79a      False   False        225d
v1.20.2---vmware.1-tkg.2.3e10706      v1.20.2+vmware.1-tkg.2.3e10706      False   False        225d
v1.20.7---vmware.1-tkg.1.7fb9067      v1.20.7+vmware.1-tkg.1.7fb9067      False   False        225d
v1.20.8---vmware.1-tkg.2              v1.20.8+vmware.1-tkg.2              False   False        225d
v1.20.9---vmware.1-tkg.1.a4cee5b      v1.20.9+vmware.1-tkg.1.a4cee5b      False   False        225d
v1.21.2---vmware.1-tkg.1.ee25d55      v1.21.2+vmware.1-tkg.1.ee25d55      True    True         225d
v1.21.6---vmware.1-tkg.1              v1.21.6+vmware.1-tkg.1              True    True         225d
v1.21.6---vmware.1-tkg.1.b3d708a      v1.21.6+vmware.1-tkg.1.b3d708a      True    True         225d
v1.22.9---vmware.1-tkg.1              v1.22.9+vmware.1-tkg.1              True    True         225d
v1.22.9---vmware.1-tkg.1.cc71bc8      v1.22.9+vmware.1-tkg.1.cc71bc8      True    True         225d
v1.23.15---vmware.1-tkg.4             v1.23.15+vmware.1-tkg.4             True    True         225d
v1.23.8---vmware.2-tkg.2-zshippable   v1.23.8+vmware.2-tkg.2-zshippable   True    True         225d
v1.23.8---vmware.3-tkg.1              v1.23.8+vmware.3-tkg.1              True    True         225d
v1.24.9---vmware.1-tkg.4              v1.24.9+vmware.1-tkg.4              True    True         225d
```

コンテンツライブラリを見に行っても...
![ss20231212T4.44.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/6fcd54d5-1413-3de1-2859-2ebaea90478d.png)

1.24 はあるのに、1.25 はない。当然1.26もない
![ss20231212T4.44.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/cf9f5df1-4788-8485-b3dd-d4e410bbe933.png)

こんな時はとりあえず「同期」ですが
![ss20231212T4.47.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/2e45e915-819e-15df-1397-fa0b07a6f4df.png)

ありがちなワナ...
![ss20231212T4.47.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/225e7053-4992-1a5d-d867-ab4c5d93a18a.png)

見たくない現実...
「ホスト wp-content.vmware.com の SSL 証明書を認証できません。」

既知事例でした。
https://docs.vmware.com/jp/VMware-vSphere/7.0/rn/vmware-vsphere-with-tanzu-70-release-notes/index.html
サブスクライブ済みコンテンツ ライブラリから Tanzu Kubernetes リリースを同期すると、「ホスト wp-content.vmware.com の SSL 証明書を認証できません」という HTTP 要求エラー メッセージが表示されて失敗する

**説明**：Tanzu Kubernetes クラスタの OVA 用のサブスクライブ済みコンテンツ ライブラリを構成すると、wp-content.vmware.com の SSL 証明書が生成されます。証明書のサムプリントを確認して証明書を手動で信頼するように求められます。ライブラリの初回セットアップ後に SSL 証明書が変更された場合は、サムプリントを更新して新しい証明書を再度信頼する必要があります。コンテンツ ライブラリの現在の SSL 証明書は、2021 年 6 月末に有効期限が切れます。wp-content.vmware.com をサブスクライブしているお客様はコンテンツ ライブラリの同期に失敗するため、「回避策」の手順を実行してサムプリントを更新する必要があります。詳細については、https://kb.vmware.com/s/article/85268 の関連する VMware ナレッジベースの記事を参照してください。

**回避策**：vSphere Client を使用して vCenter Server にログインします。サブスクライブ済みコンテンツ ライブラリを選択し、[設定の編集] をクリックします。このアクションにより、ライブラリに関する変更要求がない場合でも、サブスクリプション URL のプローブが開始されます。プローブを行うと SSL 証明書が信頼されていないことが検出され、信頼するように求められます。表示される [アクション] ドロップダウン メニューで [続行] を選択すると、フィンガープリントが更新されます。これで、ライブラリのコンテンツの同期を続行できます。

KBはこちら
Unable to pull images from vSphere with Tanzu's Subscribed Content Library with the error "A general system error occurred: HTTP request error: cannot authenticate SSL certificate for host wp-content.vmware.com." (85268)
https://kb.vmware.com/s/article/85268

ここでSSL 証明書を信頼するように求められるはずだけど出ない
![ss20231212T4.52.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/faeb28c7-8677-bcc1-5bbb-5735f77ccb4a.png)

OK ボタンを押すと出てくる隠しメッセージ仕様でした。
![ss20231212T4.52.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/24beca18-b992-be84-815c-f9c7fcb43300.png)

すると、1.26 のイメージも見えてきます
![ss20231212T4.53.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/cb6b7169-c6c8-05e6-78cd-5c46123f74f8.png)

1.26 のイメージをローカルに落としておきます
![ss20231212T4.55.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87267/1bc1f70e-3851-1cf1-e1c6-501e6aae2bf4.png)


# TKC の作成(v1.26 ver)
イメージ名の確認
```
root@mana:~/k8s# kubectl get tkr
v1.23.8---vmware.3-tkg.1.ubuntu           v1.23.8+vmware.3-tkg.1.ubuntu           True    True         99m
v1.24.11---vmware.1-fips.1-tkg.1          v1.24.11+vmware.1-fips.1-tkg.1          True    True         101m
v1.24.11---vmware.1-fips.1-tkg.1.ubuntu   v1.24.11+vmware.1-fips.1-tkg.1.ubuntu   True    True         84m
v1.24.9---vmware.1-tkg.4                  v1.24.9+vmware.1-tkg.4                  True    True         225d
v1.25.7---vmware.3-fips.1-tkg.1           v1.25.7+vmware.3-fips.1-tkg.1           True    True         100m
v1.26.5---vmware.2-fips.1-tkg.1           v1.26.5+vmware.2-fips.1-tkg.1           True    True         99m
```

## 作成コマンド
v1.26.5---vmware.2-fips.1-tkg.1 を指定して、とりあえず小さな cluster を作ってみます。
```
root@mana:~/k8s# kubectl apply -f tkc26-v1.26.5-create-cluster.yaml
tanzukubernetescluster.run.tanzu.vmware.com/tkc-cluster26 created
```

お手軽デプロイ
```tkc26-v1.26.5-create-cluster.yaml
---
apiVersion: run.tanzu.vmware.com/v1alpha2
kind: TanzuKubernetesCluster
metadata:
  name: tkc-cluster26
  namespace: namespace01
spec:
  topology:
    controlPlane:
      replicas: 1
      vmClass: best-effort-xsmall
      storageClass: tanzu-ftt1
      tkr:
        reference:
          name: v1.26.5---vmware.2-fips.1-tkg.1
    nodePools:
    - name: worker-nodepool-a1
      replicas: 3
      vmClass: best-effort-medium
      storageClass: tanzu-ftt1
      tkr:
        reference:
          name: v1.26.5---vmware.2-fips.1-tkg.1
```

## 新バージョンでの作成確認
v1.26.5 のイメージを使った tkc-cluster26 が作られている様子が伺えます
```
root@mana:~# kubectl get machine
NAME                                                      CLUSTER         PHASE          AGE     VERSION
tkc-cluster03-wc5fj-mqbpr                                 tkc-cluster03   Running        225d    v1.24.9+vmware.1
tkc-cluster03-worker-nodepool-a1-tp6kc-6fc5944c76-2nvh8   tkc-cluster03   Running        95d     v1.24.9+vmware.1
tkc-cluster03-worker-nodepool-a1-tp6kc-6fc5944c76-9zz9l   tkc-cluster03   Running        95d     v1.24.9+vmware.1
tkc-cluster03-worker-nodepool-a1-tp6kc-6fc5944c76-dgmbm   tkc-cluster03   Running        95d     v1.24.9+vmware.1
tkc-cluster26-sdbq5-4hmds                                 tkc-cluster26   Provisioning   6m6s    v1.26.5+vmware.2-fips.1
tkc-cluster26-worker-nodepool-a1-4jnfl-75c75967bb-8j4fb   tkc-cluster26   Pending        6m10s   v1.26.5+vmware.2-fips.1
tkc-cluster26-worker-nodepool-a1-4jnfl-75c75967bb-cxs44   tkc-cluster26   Pending        6m11s   v1.26.5+vmware.2-fips.1
tkc-cluster26-worker-nodepool-a1-4jnfl-75c75967bb-s8qpd   tkc-cluster26   Pending        6m10s   v1.26.5+vmware.2-fips.1
```

# まとめ
他にもアップデートが必要なコンポーネントはあるにはありますが、まずは新しいバージョンの
クラスタを作成するところまでを記事にしてみました。