TKGの構築をChatGPTのGPTsに助けてもらいながら構築してみた

こちらは、[TUNA-JPアドベントカレンダー 2023](https://qiita.com/advent-calendar/2023/tuna-jp) の8日目の記事です。

今回の記事では、TKGのマネジメントクラスターの構築までをChatGPTのGPTsに助けてもらいながら構築してみましたので、その時のGPTsの回答を紹介したいと思います。

きっかけとしては、今年おうちクラウドのミニPC入れ替えを行った後、そのまま放置しており、k8sクラスタを立てたいと思っていました。しかし、Tanzu Kubernetes Grid(TKG)のバージョンが(長期間私が触ってなかったので)大幅に上がり、手順も変わっているのではないかと、少々面倒に感じていました（たとえば、tkgコマンドがtanzuコマンドに変わったりしています）。

一方で、昨年末から今年にかけて、生成系AIのBIGWAVEが到来しており、波についていきたいと思っていました。
そこで、最近リリースされた ChatGPT の [GPTs](https://openai.com/blog/introducing-gpts) を使い、新しいバージョンのTKGクラスタの構築(のサポート)が可能かどうかを試してみました。

## 準備

### おうちクラウド環境
今回の構築先環境は、自宅のミニPC/おうちクラウド環境です。
MINISFORUM の UM580に メモリ64GB を積んだものをメイン機にしています。

Tanzu Kubernetes Grid(TKG) 自体は かつて存在した [Tanzu Community Edition](https://tanzucommunityedition.io/) のページによると、100コアまでなら非商用利用が許可されていますので、これを活用します。ただし、TKG（クラスタ）の構築にはvCenterが必要です。

上記のおうちクラウドには、vCenterがすでにセットアップしていました。

### 検証用のライセンス (VMUG Advantage)
vCenterは試用期間で何日か利用できたと思いますが、私はずっと稼働させたいので、VMUG Advantageに参加し、(特典として利用できる)検証用のライセンスを確保しました。
VMUG Advantage は年間200ドルで参加できますが、毎年CYBERMONDAYに割引クーポンが提供されています（少なくとも2022年、2023年はそうでした）。それを利用しています（今年はすでに終了しました）。


### ChatGPT で GPT (TKG Helper) をつくる

今回は、ChatGPT Plus の サブスクで利用できる、GPTs を用いて、TKGの構築をサポートしてもらうことにしました。GPTsは依頼された役割・ナレッジに従ってチャットを返すエージェントのようなものです。

チャット形式で、このGPTsに何をしてほしいのかを作成時に依頼します。そうすると、その役割専用のGPTsが作成されます。

今回は、「TKGの公式ドキュメントを参照して、TKG構築のガイドをしてほしい」と依頼しました。

詳細は割愛しますが、GPTsの作成時に以下のようなチャットを行いました：
- (1) TKGの構築をサポートしてほしい
- (2) (公式ドキュメントの[URL](https://docs.vmware.com/en/VMware-Tanzu-Kubernetes-Grid/index.html)を提示して、)このの情報から、ガイドしてほしい
- (3) (GPTsの設定画面にある) ナレッジ としてPDF([マネジメントクラスターまでの構築手順/Download PDFより](https://docs.vmware.com/en/VMware-Tanzu-Kubernetes-Grid/2.4/tkg-deploy-mc/mgmt-index.html)) をアップロード

※ (2) については、本当にみてくれているかはよくわからない･･･ 

---

作成したGPTsくん(TKG Helper)に、他に情報は与えずに、以下のように役割を聞いてみると･･･
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131643/1756f8cb-4a61-9a34-28ad-7da69184c1c3.png)

回答が、期待していた内容と合致していたので、これを使って構築に進むことにしました。
この時点でワクワクしてきました。


## GPTsに聞きながら、TKGのマネジメントクラスターを構築してみた

以下は、その過程を簡単に紹介します。

### クラスタの構築についてざっくりガイドしてほしいことを伝える･･･

ざっくりとした質問でも、それっぽい回答を返してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131643/d2ec1e8f-2281-d7e1-0540-971be8542d0b.png)


ただし、「雰囲気はあってるけど、ちょっと違う」という回答が返ってくることもあるので、
それを前提に進めるとよさそうです。

### 具体的な細かい手順を聞くと･･･

- TKGの構築に必要な、OVAイメージのvCenterへのインポート方法を尋ねた際の回答
  - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131643/b2e67656-b3c3-a8ee-95cd-b7d08fa4eb1e.png)


- Bootstrap マシンにDockerをインストール後、tanzuコマンドのインストール方法について尋ねた際の回答
  - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131643/b1ece4f5-7d3b-c8f3-ef1a-2985a0651bae.png)

  - なお、マネジメントクラスタの起動には、tanzu plugin の 追加インストールが必要なのだが、
    案内はしてくれなかったので、自分から確認した。 確認すると `tanzu plugin install --group vmware-tkg/default:v2.4.1` のようなコマンドが必要という案内はしてくれた。

- マネジメントクラスタの起動 
  - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131643/414b6de2-c378-fc91-4904-c17c1877d931.png)

  - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131643/08c41fd3-d6ed-f434-d792-2b8075a08e27.png)

    - ここは言われるがままに `tanzu mc create --ui` コマンドを実行し、TKGの の ウィザードで構築情報を入力したら･･･
    - すんなりと起動
      - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131643/4af67e2e-6024-db74-f38e-7f13ca95a343.png)
      - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131643/07cbc891-e1e6-90b1-5ae0-08376ec39938.png)


以上でマネジメントクラスタの起動が成功しました。


### ワークロードクラスタの構築については、ナレッジがなさそう

内容的にはGPTのモデル内の情報を回答してくれた模様です。
与えていたPDFはマネジメントクラスタの構築手順まででしたので、ワークロードクラスタ構築も含むPDFを与えれば、もっとしっかりとした回答になるのではと思いました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131643/042a6b90-3bdb-22d8-ff69-efa86f132e27.png)


## さいごに

### 利用者が概要を把握している場合はサポート役として便利

TKG Helperくん(GPTs)は TKGの構築について、"大体それっぽい回答"はしてくれますが、常に確認が必要です。
結局のところ、最終的な判断は公式ドキュメントを参照して行いましたす。※巷でよく言われれていることと同じですね。

とはいえ、そこにたどり着く(記憶をさぐる)のが大変だったので、
GPTsになんとなくの質問をして、回答をきっかけに色々おもいだしながら作業を進めることができたので、
"やるべき全体像を把握しているが、細かい部分を思い出せない場合" のガイドとして便利そうです。

### 回答がズレ(構築手順を飛ばしている)ていることも

今回のような構築の"流れ"が大事な場合で、(利用者側が)流れについて全くわかっていない状態からスタートする場合は、
完全に当てにはできないと思いました。実際に、必要な手順が飛んでいたりして、構築作業が進められなくなりました。
(例 tanzu コマンドのプラグインが必要 なところを飛ばされていたりしましたので。)

この場合は、"この手順が足りてないと思うんだけどあっている?" と聞き直すことで、求めていた手順･コマンドを返しはしてくれました。

---
とはいえ
GPTsの準備としては、自然言語で役割について依頼し、ナレッジのドキュメントを渡しておくだけで、それっぽいことを回答してくれるのはすごいなと思いました。

TKG だけではなく、他の作業にも使えそうですので、また試していきたいと思います。
今回は範囲が狭い手順でしたが、もっと大作の場合はどうなるのだろう? とかは興味が出てきました。

以上、ありがとうございました!