LoginSignup
7
0

More than 1 year has passed since last update.

Tanzu Application Platform(TAP) の Getting Started をやってみた / Workloadデプロイ・SupplyChain動き出すところまで

Last updated at Posted at 2022-12-07

TAP のサンプルアプリの起動(やりかけ)の実施内容やら、メモやらを記載していってみます。
完成はしてないけど、触ってみてるよ 記事ですので、内容はご注意ください。

(追記: まだ記事内容自体は未完了で、TAPの設定ファイルの書き方などの癖がわかってないけど、
これだけの手順でアプリケーションデプロイできるの?! もしかして楽になるのでは? とワクワク感があるのでした。)

そもそも Tanzu Application Platform (TAP)とは

ソースコードからいい感じにコンテナとかビルドして、
いい感じにデプロイまで行ってくれる仕組みらしい。

私は、このあたりの情報を参考にしました。まだ、なんとなくふわっとした理解しかできていない。

そんな状況で、とりあえず触ってみるという記事。

前段 / TAP 環境の構築

TAPの構築はAWS上に以下のCloudformationを用いて起動した。

AWSにログインしておき、 How to deploy タブの、 Deploy into a new VPC. をクリックすると
Cloudformation のウィザードに従って、デプロイすることで環境ができあがったところからが開始地点です。

ウィザードの従って設定していくと、Cloudformationのデプロイを開始します。
開始後45分ぐらいは起動待ちだった。

AWS 料金

1日放置しておくと 3-5千円 になるので、あとでCloudwatchログを減らしたり
EKSのノード数を減らしたりして、ワークロードを減らすとAWS料金は削減ができる。
でも、限界があり、頑張っても毎日2-3千円ぐらいはかかってしまうので、個人で試すときは、要注意。

Getting Started 試してみた

この記事を試してみる。

上記のインストール方法で、TAPを構築すると、 Installed Tanzu Application Platform GUI のところまで
実行されているように見える。(詳細は不明、全く同じとはどこにも記載はない)

なので、いきなり、tap-gui のページまでアクセスすることができるようになっています

image.png

とりあえず、GUIがあるとやる気が出始める。


サンプルアプリのデプロイ

ここからが目的の、サンプルアプリケーションのデプロイの流れについて。

tap-values.yaml

サンプルアプリのデプロイに必要なパラメーターは、tapのセットアップに使用したマシンの
~/tap-setup-scripts/generated$ cat tap-values.yaml
に格納されている。(AWSのCloudformationでのセットアップは色々自動でやってくれるので、上記のファイルを見つけるのに、時間を食った。この時点ではじめて tap-values.yaml というものを知る。)

プロジェクトのダウンロード

Application Accerarators から Tanzu Java Web App を選択して、生成される
WEBアプリケーションのプロジェクトをダウンロードする。

image.png

ウィザードに従って・・・

image.png

値は以下のように設定。

  • name は適当に my-first-tanzu-java-web-app にした。
  • image repository は、tap-values.yaml の内容と合わせる。

GENERATE ACCELERATOR をクリックして、ZIPファイルを生成、
image.png

あとは、ZIPファイルをダウンロードする。

同じ名前で、GitHub にリポジトリを作成

ソースを格納する先にGithubを使うことにした。
認証などもめんどくさいので、とりあえずパブリックのリポジトリを作成する。

image.png

  • 上記のリポジトリをクローン
  • リポジトリにダウンロードしたZIPファイルを展開
    • image.png
  • 展開した結果を Git Push して、Github上に格納

デプロイ

Gitリポジトリを準備したので、ここからソースを取得して、いい感じにビルド、デプロイしてくれることを期待して、
TAP上にデプロイしてみる。

サプライチェーン(Supply Chain)・ワークロード(Workload)

どんな流れで、アプリをビルド・デプロイ・(テストなど)・・・してくれる流れのことを、サプライチェーンと読んでいるらしい。
サプライチェーンは、クラスタ内に色々なパターンが登録できるようで、いくつかデプロイされている。

以下のように、パッケージとして、何が入っているか見ることができるみたい。

XXXXX@ip-XXXXX:~$ tanzu package available list -A
(例)
  ootb-supply-chain-basic.tanzu.vmware.com             Tanzu App Platform Out of The Box Supply Chain Basic                      Out of The Box Supply Chain Basic.                                                0.10.2          tap-install

とりあえず、サンプルのWEBアプリが動いているので、すでに何かサプライチェーンはクラスタ内にデプロイされていると踏んで、
それを使う想定で、以下コマンドを実行してみる。

えいやー。(ファイルパスはどこでも良い。)

tanzu apps workload create my-first-tanzu-java-web-app \
--git-repo https://github.com/make0x0/my-first-tanzu-java-web-app \
--git-branch main \
--type web \
--label app.kubernetes.io/part-of=tanzu-java-web-app \
--yes \
--namespace tap-workload

無邪気にデプロイしてみるもののSupplyChainNotFound

image.png
んー。

デプロイ済みのサプライチェーンを見てみる

デプロイ済みのサプライチェーンは以下のように見ることができた。

image.png

ラベルでマッチングしているみたい。そのラベルにマッチしないので、not found と言われているのではないか?
ということで、Workloadのデプロ時のラベル指定を合わせてみる。

再度 Workload をデプロイ

一旦、デプロイ済みのWorkload を削除

tanzu apps workload delete my-first-tanzu-java-web-app --namespace tap-workload

その後、修正したコマンドで再デプロイ。(ラベル、タイプ を source-test-scan-to-url のサプライチェーン に合わせてみる。

tanzu apps workload create my-first-tanzu-java-web-app \
--git-repo https://github.com/make0x0/my-first-tanzu-java-web-app \
--git-branch main \
--label apps.tanzu.vmware.com/has-tests=true \
--label app.kubernetes.io/part-of=tanzu-java-web-app \
--type web \
--yes \
--namespace tap-workload

そうすると、利用できるサプライチェーンが見つかった模様。
image.png

今日はここまで

  • サンプルアプリをデプロイしてみる
  • デプロイするときサプライチェーンというリソースがクラスタに必要
  • サプライチェーンは、Workloadのラベルでマッチングしているので合わせる必要がある

ここまでの注意点っぽい。
だが、まだアプリが稼働していないが、時間切れのためこの記事ではここまで。

まだ終わらない

image.png

image-privider なる箇所で、問題がある模様。

トラブルシュート方法などもわかってないので、続きはまた別の機会に!

さいごに

最近おしごとで k8s 触れておらずもやもや。かといって、自分で手を動かしてもなかったので、
アドベントカレンダーの登録をきっかけに、ちょっと触り始めたのでいいきっかけになりました!

途中記事になっているので、色々ご指摘受けそうですが、まあ一旦Upします。

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0