NUCで始めるVMware Tanzu - まとめ

今日で最終日、めっちゃ感慨深い・・・:sob:
師走のこの忙しい時期、一緒にカレンダーをやってくれる人を捕まえられなかったので、「**1人アドベントカレンダー**」を強行してみました:innocent:　

途中、スケジュールが厳しい時もありましたが、なんとか完走できました。。。
実際にNUCを買ってみて、実際に考える順序で、行きあたりばったりの更新となりましたが、終わってみると、カレンダーのコンテンツに一貫性が出たので、1人でやるのも捨てたもんじゃないなと思いましたｗ

それでは、まとめに入っていきます！

# 今さら索引を用意してみた
[Day1](https://qiita.com/hirosat/items/8b30f8210ed79837f107)で、想定読者に「Hardware・ガジェット好きな人」/「vSphere好きな人」/「Kubernetes好きな人」を掲げていました。それぞれの層にどんなコンテンツを用意できたか見てみましょう。

### Hardware・ガジェット好きなあなたへ
| コンテンツ | 概要 |
|:--|:--|
| [Day2: NUC紹介](https://qiita.com/hirosat/items/9b9885f229d696ca1788) | NUCの特徴と、NUCに必要なパーツ選定について |
| [Day4: NUCのセットアップ](https://qiita.com/hirosat/items/bd4c67f7d248cef640db) | 購入したパーツを使って、実際にNUCを組み立てる作業 |
| [Day24: ホームラボの魅力をもっと紹介](https://qiita.com/hirosat/items/55c30efe408838f00549) | 同僚のホームラボ環境の紹介 / NUC環境の増強ポイント |
Hardware・ガジェットと言いましたが、私が買ったのはNUCなので、NUC中心の説明となっています。初めてラボ環境を導入する方には、NUCはすっごく手軽で、オススメです！心残りとしては、「実際に増強してみた」系の記事も欲しかったな。。25日って、意外にあっという間でしたねｗ

### vSphere好きなあなたへ
| コンテンツ | 概要 |
|:--|:--|
| [Day5: ESXiのセットアップ](https://qiita.com/hirosat/items/e78d75f0032f0f1369f0) | USB起動ディスクの作成、インストール工程、コンソールへのログイン |
| [Day6: vCenterのセットアップ](https://qiita.com/hirosat/items/5cfc37866767d196cf9d) | vCenterの概念、インストール、接続 |
| [Day7: Nested ESXi](https://qiita.com/hirosat/items/6abb87395385ae214cf8) (スキップ可) | Nested ESXiの説明、ESXiからインストール |
| [Day8: vSphereクラスタの構築 (物理NUC編)](https://qiita.com/hirosat/items/d8c59d0bd3070f254227) | データセンター作成、クラスタ作成、ESXi追加 |
| [Day9: vSphereクラスタの構築 (Nested編)](https://qiita.com/hirosat/items/4a774025309516f2b54e) | vCenterからNested ESXiインストール |
| [Day10: vSphereクラスタの構築 (vSAN編)](https://qiita.com/hirosat/items/537f3b75160e2a9f4a21) | Nested環境でvSphereクラスタ(DRS/HA/vSAN)の構成 |
| [Day11: vSphereネットワーク紹介](https://qiita.com/hirosat/items/31279aee9a8585da4bed) |  vSphereネットワーク/分散スイッチの説明 |
vSphereの敷居を下げたいなと思っているため、画像多めな構成となっています:grinning:
私自身がvSphere環境は経験が浅いため、調べながら記事を書いたし、これからvSphere環境を触る方にとっては有意義な記事となっていると思います。一方で、vSphere上級者にはツッコまれる内容になっているかもしれません・・・。また、Day7は蛇足でした。Day9で結局、vCenter上からの導入方法を解説しているため、Day7は読み飛ばして下さい:pray:
### Kubernetes好きなあなたへ
| コンテンツ | 概要 |
|:--|:--|
| [Day3: Tanzuの紹介とハードウェア要件](https://qiita.com/hirosat/items/29cd255cf3c007bc262a)| Tanzu/Tanzuポートフォリオの解説。vSphere with Tanzu/TKGのハードウェア要件|
K8sといいつつ、K8sを始められるようになるまでの説明が多く必要だったため、なんだかんだvSphereよりな記事になってしまったかもしれません。。ただ、最新のマネージドK8s環境を一から自分で作るのって、自社の開発の裾野を広げられるので、ご参考になればと思ってます。
なので、↓のTKGとvSphere with Tanzuの話は、どうしても抑えておきたかったところです。
####TKG編
| コンテンツ | 概要 |
|:--|:--|
| [Day12: TKG紹介](https://qiita.com/hirosat/items/fbb906ecbfccede2e226)| TKG/Cluster API解説、サポートするOSSについて|
| [Day13: TKGの準備(Bootstrapマシン)](https://qiita.com/hirosat/items/6b15ee5dab17854ff0bd)| Bootstrap環境の構築 |
| [Day14: TKGの導入(Managementクラスタ)](https://qiita.com/hirosat/items/a3b332281449d585609c)| Managementクラスタのデプロイ|
| [Day15: TKGの導入(Tanzu Kubernetes Cluster)](https://qiita.com/hirosat/items/e53f8275f1ec5895ec1b)| TKCデプロイ/tkgコマンドオプション|
| [Day16: TKCにアプリをデプロイ](https://qiita.com/hirosat/items/e95796238456ccce796f)| MetalLBのデプロイ / APPの投入|
TKGの方が、CloudNativeコミュニティ向きな内容となっています。Cluster APIやOSSのサポート状況、MetalLBデプロイや実際にK8sにAPPを投入するといった要素を取り込んでみました。
####vSphere with Tanzu編
| コンテンツ | 概要 |
|:--|:--|
| [Day17: vSphere with Tanzu紹介](https://qiita.com/hirosat/items/af42496336da6e53ae1e)| vSphere with Tanzuについて/TKG Serviceについて |
| [Day18: vSphere with Tanzuの利用準備](https://qiita.com/hirosat/items/eefa91d9edb767fcf3c4)| IPアドレス設計/ストレージポリシー割り当て/SSOユーザの追加/コンテンツライブラリ追加/HAProxyデプロイ|
| [Day19: TKGSの有効化](https://qiita.com/hirosat/items/b4b553e44ceadc969ba4)|Tanzuエディションについて/ワークロード管理の有効化 |
| [Day20: Supervisor Namespaceの作成](https://qiita.com/hirosat/items/b2c815e41edfd9f4ac53)| Supervisor Namespace解説と作成|
| [Day21: vSphere with TanzuでTKCデプロイ](https://qiita.com/hirosat/items/1c18c995849d3d25b065)| 踏み台セットアップ/Kubernetes CLI Tools/TKCデプロイ |
| [Day22: vSphere with TanzuでAPPデプロイ](https://qiita.com/hirosat/items/75ec6b5f24fb04cb49f9)| Pod操作/PV作成/LBとの連携 |
| [Day23: vSphere with TanzuをTKG CLIで操作](https://qiita.com/hirosat/items/4c97dc6de157d95f4af1)| TKG CLIにSupervisor Cluster登録/TKCパラメータ設定/tkgコマンドでTKCデプロイ|
TKGは、あまりユーザロールを意識しない作りでしたが、vSphere with Tanzuは、ユーザの登録やストレージ/LBの割り当てなどが意識的に分けられ、vSphereと統合されていることを体験してもらう形となります。そして最後には、TKG CLIからvSphere with Tanzuを操作することで、TKGとシナリオがつながる流れとなっています。

#リソース一覧表
ついに、今まで魚拓を取ってきた成果を活かす時です！ｗ　各リソースがどれだけ消費するかをまとめましたので、NUCのリソース計算などの目安にお使い下さい:wink:
（アイドル時の計測なので、余剰分は別途必要です。）

| リソース名 | セットアップ方針 | 台数 | CPU<br>(GHz) | Memory<br>(GB) | Storage<br>(GB) |
|:--|:--|:-:|--:|--:|--:|
| vCenter | 極小(vCPU:2/Mem:12GB/disk:463GB) | 2 | 0.5 | 12.1 | 36.0 |
| ESXi(物理) | -- | 4 | 0.1<br>未満 | 1.8 | 1.4 |
| ESXi(Nested) | シンプロビジョニング | 4 | 0.1<br>未満 | 2.7 | 33.3 |
| DRS/HA/vSAN | -- | 1 | 1.0 | 48.0 | 17.0 |
| Supervisor ControlPlane | 極小(vCPU:2/Mem:16GB/disk:8GB) | 3 | 0.8 | 1.6 | 28.0 |
| TKC ControlPlane<br>(vSphere with Tanzu) | best-effort-xsmall (vCPU:2/Mem:2GB/disk:16GB) | 1 | 0.4 | 0.8 | 22.4 |
| TKC Worker<br>(vSphere with Tanzu) | best-effort-xsmall | 1 | 0.1 | 0.2 | 20.0 |
| mgmt ControlPlane (TKG) | small (vCPU:2/mem:2GB/disk:?) | 1 | 0.1 | 0.3 | 51.3 |
| mgmt Worker (TKG) | small | 1 | 0.1 | 0.2 | 77.9 |
| TKC ControlPlane (TKG) | small | 1 | 0.6 | 0.9 | 10.7 |
| TKC Worker (TKG) | small | 1 | 0.1 | 0.3 | 9.5 |
| HAProxy (TKG)| -- | 1 | 0.1 | 0.1 | 3.9 |
| GW server | ubuntu | 1 | 0 | 0 | 4.7 |
| 踏み台 1 | TKG + K8s CLI Tools | 1 | 0 | 0.1 | 20.0 |
| 踏み台 2 | vSphere with Tanzu用 | 1 | 0 | 0 | 6.7 |

#俺たちの戦いはこれからだ！（今回できなかったこと）
[Day24](https://qiita.com/hirosat/items/55c30efe408838f00549)では、NUC側の拡張計画の話に触れましたが、NUCから上のソフトウェア層で、紹介しきれなかったネタを書いておきます。皆さんのNUCライフの足しになればと:grinning:

- vSphere関連
    - vLANをちゃんと作って構築。（今回は「クラスタの構成」メニューを使うズルなので。。）
    - [vCLS](https://kb.vmware.com/s/article/80472?lang=ja) 紹介
    - NSX-T構築 (これだけで25日間のブログが埋まりそうｗ)
    - vRealize製品との連携
    - 運用周り(メンテナンスモードやバージョンアップとか)
- Tanzu関連
    - vSphere with Tanzu
        - vSphere Pod（要NSX-T）
        - 組み込みHarbor
    - TKG: サポートする各OSSとの連携
    - Tanzu Mission Control連携
    - Tanzu Observability連携
- K8s関連
    - CI/CDパイプライン構築
    - DB連携
    - 便利OSS紹介

# おしまい
いや、本当に長かった。。
途中、できるだけわかりやすくしようと画像をペタペタ貼っていたら、9日目あたりからQiitaが「Something went wrong」とか言い出して、理由を調べたら、[画像のアップロードに月間100MBの制限](https://blog.qiita.com/75674629515-2/) があることが判明し、途中から、[GitHub issueにセルフ投稿して画像URLを利用する](https://github.com/hirosat/for-qiita-image-upload/issues?q=is%3Aissue+is%3Aclosed) なんて技を駆使したりもしましたｗ
そんな思いはもうしたくないし、せっかく自宅サーバ環境が手に入ったので、自分でブログサイトを立ち上げて帰ってこようかな。（いつの日か・・）

本業はKubernetesアーキテクトなので、これを見て、CloudNativeな世界に入ってきてくれる人が増えてくれたら幸いです:grin:

ご視聴、ありがとうございました！