はじめに
VMware Tanzu Community Edition がリリースされました。
Dockerさえあればインストール可能なのでローカル開発環境上での利用にも便利そうです。
今回はDockerを利用し構築したTanzuのStandalone Clustersに対してPackageの利用例としてLocal Path Storageを利用したStorage Classの追加をしてみます。
TanzuのStandalone Clustersの構成
getting-startedや下記のTanzu Community Editionを使ってみたを参考にすれば簡単に構成できます。
各種podがRunningになったら準備完了です。
> kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system antrea-agent-d6845 2/2 Running 0 12h
kube-system antrea-agent-tj8kk 2/2 Running 1 12h
kube-system antrea-controller-86f8988c5f-l47cw 1/1 Running 0 12h
kube-system coredns-8dcb5c56b-7qprg 1/1 Running 0 13h
kube-system coredns-8dcb5c56b-m4jtz 1/1 Running 0 13h
kube-system etcd-hello-tkg-control-plane-t9b5l 1/1 Running 0 13h
kube-system kube-apiserver-hello-tkg-control-plane-t9b5l 1/1 Running 0 13h
kube-system kube-controller-manager-hello-tkg-control-plane-t9b5l 1/1 Running 0 13h
kube-system kube-proxy-hrx74 1/1 Running 0 13h
kube-system kube-proxy-p64fb 1/1 Running 0 13h
kube-system kube-scheduler-hello-tkg-control-plane-t9b5l 1/1 Running 1 13h
tkg-system kapp-controller-6499b8866-kqdmg 1/1 Running 0 13h
tkg-system tanzu-capabilities-controller-manager-6ff97656b8-hstgf 1/1 Running 0 12h
tkr-system tkr-controller-manager-6bc455b5d4-zzf2q 1/1 Running 0 13h
ローカルストレージの作成
ManagedなKubernetesを利用している場合はそのサービスで用意されているProvisionerを使えば簡単にStorageを作成できる場合が多いですが、ローカル環境の場合は"簡単に"とはいかないかと思います。
Tanzuの場合はLocal Path StorageというPackage(拡張機能)があり、これを利用すれば簡単に設定できそうです。
Package repoの追加
まずは Work with Packages のページを参考にPackageリポジトリの情報を追加します。
> tanzu package repository add tce-repo \
--url projects.registry.vmware.com/tce/main:0.9.1 \
--namespace tanzu-package-repo-global
インストールするPackageの情報を取得
次にインストール対象のPackageの情報を確認します。
下記コマンドによると正式なPackage Nameは local-path-storage.community.tanzu.vmware.com
であることがわかります。
> tanzu package available list
NAME DISPLAY-NAME SHORT-DESCRIPTION
~~
local-path-storage.community.tanzu.vmware.com local-path-storage This package provides local path node storage and primarily supports RWO AccessMode.
~~
ついでに利用可能なバージョンも調べます。
> tanzu package available list local-path-storage.community.tanzu.vmware.com
/ Retrieving package versions for local-path-storage.community.tanzu.vmware.com...
NAME VERSION RELEASED-AT
local-path-storage.community.tanzu.vmware.com 0.0.19 2021-09-15T00:00:00Z
local-path-storage.community.tanzu.vmware.com 0.0.20 2021-09-15T00:00:00Z
設定ファイルの作成
Configuration によるとnamespaceの設定が必須なので、これを設定するためのファイルを追加します。
今回はdefault
でよいので下記のように設定しました。
namespace: default
Packageのインストール
最後に集めたPackageの情報と設定ファイルによりインストールを実施します。
> tanzu package install local-path-storage \
--package-name local-path-storage.community.tanzu.vmware.com \
--version 0.0.20 \
--values-file lps.yaml
/ Installing package 'local-path-storage.community.tanzu.vmware.com'
| Getting namespace 'default'
| Getting package metadata for 'local-path-storage.community.tanzu.vmware.com'
| Creating service account 'local-path-storage-default-sa'
| Creating cluster admin role 'local-path-storage-default-cluster-role'
| Creating cluster role binding 'local-path-storage-default-cluster-rolebinding'
| Creating secret 'local-path-storage-default-values'
- Creating package resource
\ Package install status: Reconciling
Added installed package 'local-path-storage' in namespace 'default'
Podとしてprovisionerが追加され、StorageClassが作成されていることが確認できました。
> kubectl get pod
NAME READY STATUS RESTARTS AGE
local-path-provisioner-66d8f7f469-7b5z7 1/1 Running 0 36m
> kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 36m
さいごに
tanzuのPackageを用いてローカルのStorageを作成しました。これを利用すれば永続化ボリュームを前提とするアプリケーションのデプロイもスムーズに実施できそうです。