Tanzu Platform Self Managed を試す - 管理者向け:Projectセットアップ編
· 7 分で読めます
最新製品である Tanzu Platform のオンプレ版を試していきます。
ここではTPのインストール後の最初のセットアップとして、必要になるProjectのセットアップを記載していきます。 ここでの手順は主には、TPの管理者がやる内容を想定です。
シリーズ
-
ここ> 管理者向け:Projectセットアップ編
事前準備
まずデフォルトの tanzu_platform_admin のパスワードは以下でとれます。
kubectl get secret tp-pass -n tanzusm -o jsonpath={.data.pass} | base64 -d
インストーラーがデフォルトで作成した自己署名証明書も他の手順で使うので手元においておきます。
kubectl get secret -n tanzusm tp-cert -o jsonpath="{.data.tls\.crt}" | base64 -d > tp.crt
最後に、インストーラーが作成したエンドポイントを取得します。 ここで表示されたエンドポイントのIPアドレス or アドレスをインストーラーで設定したFQDNを/etc/hostsかDNSでマッピングされるようにします。
kubectl get svc -n tanzusm contour-envoy -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Project 作成
TPのインストールを完了したら、最初にやるのがログインして、最初のプロジェクトをつくることです。
以下のURLにアクセスします。最初にログインできるユーザーはtanzu_platform_adminです。パスワードは事前準備でつかったものを指定します。

ログインが完了したら、左ペインから、[Setup & Configuration] > [Access Control] を選択します。
[Add Role Binding]を選択します。ここでは、user groups を tpadmins (特に小文字"s"をわすれずに)にしてください。カスタマイズされたインストーラーを使っている場合、これはOpenLDAP上のグループ名とも一致しているので間違えないようにしてください。

その次に左ペインから、[Setup & Configuration] > [Projects] を選択します。[New Project] を選択します。
プロジェクト名は特にOpenLDAPとは連動しないので、自由な名前でいいです。ここでは tpadminをつかっています。
そして、追加するユーザーは tpadmin にしてください。これは、OpenLDAPと連動しているので、一致させてください。

ここまできたら、一度ログアウトします。そして、ユーザーは tpadmin、パスワードは tpsm1! で入り直します。
ユーザーが切り替わったことを確認します。

また、左上のプロジェクト選択も、tpadminになっていることを確認します。

Workload クラスタを登録
プロジェクトを作ったら、次にデプロイ先のK8sクラスタを登録します。 やってみたら以下が必要でした。
- コントローラーは最低1台で、4vCPU/4GB で稼働することを確認ずみ
- コンピュートは、8vCPU/16GB/200GB のマシンが最低1台必要
なお、仮にTMCからデプロイしている場合は、手順の前に一度TMCからアンマネジードにしてください。
左ペインの[Infrastructure] > [Kubernetes Clusters]から手順に従い追加していきます。 最後に出てきたURLをつかってKubernetesをTPに登録します。

なお、筆者のインストーラーにしたがっている場合、この kubectl コマンドが証明書エラーで失敗します。 仕方ないので以下の手順で代替しています。
wget <表示されたコマンドのhttp部分> --no-check-certificate
kubectl create -f installer<このあたりをタブを押して自己補完>
しばらくHealthyになるまで待ちます。
Domain の設定
作られたアプリケーションがつなぐDomainを設定します。 [Setup & Configuration]の[Networking]の[Domain]タブの[Create Domain]を選択します。
色々細かい設定もできるのですが、以下でとりあえずで動かします。
- Doamin Name : アプリに使って欲しいドメイン
- DNS Provider : Manage my own DNS solution
- Certificate Provider : use HTTP/TCP (unecrypted traffic)

プラットフォームビルドの設定
デプロイの前にもう一手間プラットフォームビルドの準備をします。Projectを作成するごとに必要となります。 本来の手順は以下でビルド専用の別k8sクラスタを作ります。
とはいえ、リソースがもったいないので、今回はてっとり早くデプロイクラスタとビルドを兼任させます。 [Spaces] > [Capabilites] を選択し、[ Tanzu Build Controller ]を選択して、[Install Package]を選択します。 そして、ほぼデフォルトのまま、runクラスタへインストールします。

ここからはCLIです。
以下のコマンドで tanzu login を行います。login プラグインないと怒られた場合はtanzu cliのインストールを検索して行ってください。 なお、tp.crt は事前準備にしたがっていれば、存在するはずの証明書です。
tanzu login --endpoint https://$TP_HOST --endpoint-ca-certificate tp.crt
プロジェクトを使用状態にします。
tanzu project use tpadmin
TPの自己証明証明書を登録します。
kubectl create secret generic tp-crt --from-file=platform-cert.pem=$PWD/tp.crt --dry-run=client -o yaml > tp-crt.yaml
tanzu deploy --only tp-crt.yaml
以下のコマンドでプラットフォームビルドをプロジェクトに設定します。<TP Repo> には、TPのインストールイメージを格納しているレポジトリを指定しています。
別レポジトリも設定できますが、その場合はimageRepositorySecretRefs もアップデートして、レポジトリの認証情報を更新する必要があります。(マニュアルに手順がかいてあります。)
cat <<EOF > buildconfig.yaml
apiVersion: build.tanzu.vmware.com/v1
kind: BuildConfiguration
metadata:
name: dev-project-bld-cfg
namespace: default
spec:
availabilityTarget: all-regions.tanzu.vmware.com
caCertificateSecretRefs:
- name: tp-crt
imageRepositorySecretRefs:
- name: artifactory-secret-tap-saas
imageRepositoryTemplate: <TP Repo>/tpk8s/build
EOF
tanzu deploy --only buildconfig.yaml
準備はこれで終わりです。