2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

NUCで始めるVMware Tanzu - TKG紹介

本日は、(やっと・・)TKGの紹介をしたいと思います。
ここまでで、企業のインフラを支える基盤の大変さを、少しでも理解していただけると幸いです:grinning:

TKG?

そう聞くと、やっぱり「アレ」を思い浮かべますよね・・?
念のため、Googleさんに聞いてみました。
スクリーンショット 2020-12-12 11 39 38
そうです、日本では「卵かけご飯」を連想してしまう人が、ほとんどでしょうw
では、プライベートウィンドウにして、英語で検索すると、どうなるでしょう・・?
スクリーンショット 2020-12-12 11 44 55
これは、予想外:sweat: 卵かけご飯、世界的にも有名だったのか・・・。
ただこちらには、「What is VMware Tkg?」と、サジェスチョンが出てきます。
つまり、卵かけご飯の次くらいには、VMwareのTKGが有名だということですねw

いきなり脱線してしまいましたが、TKGとは、Tanzu Kubernetes Grid の略です。
ちなみにGridとは、Weblioで検索するといくつか意味が出てきますが、この中では、「(電線・水道・ガスなどの)敷設網」の意味が近いです。2000年代前半に、「グリッド・コンピューティング」というバズワードがありましたが、そのKubernetes版と思って下さい。

また、公式ドキュメントDay3でも触れていますが、TKGには2つの意味があります。

  1. Kubernetesランタイム:VMwareによってテスト、署名、サポートされた、アップストリームと互換性のあるKubernetes実装の提供。vSphere with TanzuやTMCといった他の導入ソリューションでも、こちらの意味でのTKG(VMwareがサポートするKubernetes)が使われている。
  2. マルチクラウドKubernetesクラスタ基盤の導入ソリューション:1に加え、VMwareがサポートするOSSアプリケーション(レジストリ、ネットワーク、監視、認証、イングレス制御、ログサービス)が含まれる。2020年12月12日時点の対象環境は、vSphere(オンプレミス環境)、VMC on AWS、Amazon EC2、Microsoft Azure。

前置きなくTKGというワードが出てきた場合、上記のいずれかを意味することを、覚えておいて下さい。(2の意味の方がよく使われるかも。。)

Cluster APIについて

皆さんは、Cluster APIとはなにか、ご存知でしょうか?
なぜ急にこんな話をするかというと、TKGがマルチクラウド環境を実現する技術の核となっているのが、このCluster APIだからです。2020年12月1日、奇しくも同日に、AmazonからEKS Distroが発表され、GoogleからはAnthos on bare metalが発表されました。共に、オンプレミス環境に自社ソリューションを入れるためにCluster APIが用いられており、今、最も注目の技術の一つと言えます:sunglasses:

で、Cluster APIって何?

皆さんは、Kubernetesクラスタのインストールを経験したことはありますでしょうか?あれ、結構面倒ですよね?やっぱりそう考えている人は結構多くて、「Kubernetesクラスタを管理するのもKubernetesに任せたらいいんじゃね?」と、始まったプロジェクトが、Cluster APIです。
Introductonによると、「Cluster APIは、複数のKubernetesクラスタのプロビジョニング、アップグレード、運用を簡素化するための宣言的なAPIとツールを提供することに焦点を当てたKubernetesのサブプロジェクト」とのことです。
クラスタのライフサイクルに関するKubernetes SIG(Special Interest Group)として立ち上がり、2018年6月に最初のα版のTagがついています。Top Contributorsを見ると、VMwareのメンバーが名を連ね、TKGとしても2020年4月9日にGAしているため、VMwareに一日の長がある技術と言えます。

どんな仕組みなの?

割とこの絵にある3匹の亀が、Cluster APIをよく表していますw

  1. Bootstrap provider(親ガメ):対象インフラ(vSphereとかEC2とか)にアクセス可能であれば、ローカルPCでも踏み台環境でもどこでも良いです。利用者は事前に、kubectl、docker、kind(kubernetes in docker)、そして、clusterctlを準備します。initコマンドにより、対象インフラの情報を与えることで、子ガメ(Management Cluster)を産み出します。
  2. Management cluster(子ガメ):対象インフラ毎に一つ必要であり、たくさんの孫ガメ(Workload cluster)を生み出すためのKubernetesクラスタです。
  3. Workload cluster(孫ガメ):実際にAPPを動作させるためのKubernetesクラスタです。手軽に複数のWorkload clusterを生成・管理することが可能です。なお、TKG環境では、Workload clusterのことを、Tanzu Kubernetes Cluster(TKC)と呼びます。

この3世代のカメにより、マルチクラウド・マルチクラスタ環境で一貫性のあるKubernetesクラスタの量産を実現します。(もっと掘り下げると、VMのデプロイを実現するためのCRDの話とかもありますが、、止めておきますw)

もう一つの技術ポイントとして、Cluster APIでは、Control Planeの導入に kubeadm が用いられています。こちらのプロジェクトにも、VMwareの技術者が大きく貢献しています。

TKGがサポートするOSSアプリケーション

まず、VMware docsにより、TKGでの導入方法のドキュメントサポート(ただし、現時点では英語のみ。。)が提供されています。私の感想ですが、TKG v1.2になって、割と筋のいいOSSラインナップが揃ってきたなと思います。

カテゴリ OSS名 docs どんなOSS?
コンテナレジストリ Harbor here 組織内にプライベートコンテナレジストリを構築するソフトウェア。
CNI Antrea here TKG v1.2からTKGのデフォルトのCNIとなった。Open vSwitch(OVS)により、様々なプロトコルを取り扱えるようになっているのが特徴。将来的にWindowsコンテナのサポートを見据えての変更と思われる。
CNI Calico here Kubernetesで最も実績のあるCNIの一つ。Network Policyにいち早く対応し、柔軟なアクセス制限をかけられるようになった実績がある。TKG
Backup/Restore Velero here Heptioが開発した、KubernetesリソースのBackup & Restoreで最も実績のあるソリューションの一つ。
Log Fluentbit here コンテナログのフォワーダ。fluentdの方が実績があるが、軽量版なのでコンテナ向き。
ユーザ認証 Dex /
Gangway
here Dexは、managementクラスタに導入し、IDプロバイダと接続。GangwayはTKCに導入し、Dexと連携してkubeconfigを払い出す。
Ingress Contour here Heptioが開発した、EnvoyベースのIngress実装。HTTPProxyというCRDにより、通常のIngressよりも柔軟なL7ルーティング管理を実現している。
Monitoring Prometheus here Kubernetes監視ツールの定番。Kubernetes内のあらゆるメトリクスを時系列でデータ取得する術を持つ。また、AlertManagerという通知ツールも同梱される。
Monitoring Grafana here データ可視化ツール。Prometheusのデータを可視化するため、セットで使用される事が多い。
オペレーション支援 Carvel Tools here 旧k14s。ytt/kbld/kapp/imgpkg/kapp-controller/vendirの6つのツールの集合。TKGの他のツールのインストール時、ちょいちょいお世話になる。

ただし、詳細な各OSSのサポートレベルは、Tanu Editionsによっても異なってきますので、気になる方は問い合わせすると良いかと思います。

はい、本日は終了です。明日はいよいよ、TKGを導入してみます!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
2
Help us understand the problem. What are the problem?