はじめに
公式 Getting Started の手順 (出典 7) をコミット
f5c408d(最寄りタグv1.5.1) で確認。Cozystack はベアメタルまたは仮想マシンのノードを前提とするため、ラップトップ上のクラスタでは完全なインストールには足りない。
前提
- ノードにするベアメタルのマシン (または KubeVirt をネストできる VM) を 1 台以上。
- そのノードで動かす Talos Linux。Cozystack は OS 層を管理する。
- ワークステーションに
kubectlとブートストラップツールtalm。 - 計画済みの Pod / Service CIDR と、プラットフォーム用の
root-hostDNS 名。
インストール
Cozystack は公式ガイド (出典 7) に沿って 5 段階でインストールする:
- ノードに Talos Linux を導入する。
talmで Kubernetes をブートストラップする。- Cozystack 本体をインストールする。
- テナントを作成する。
- テナントにアプリを展開する。
段階 3 が Cozystack 固有のステップだ。cozy-system namespace に cozystack-config ConfigMap (bundle 名、Pod / Service CIDR、root-host) を置き、installer manifest を適用する。
kubectl create namespace cozy-system
kubectl apply -f cozystack-installer.yamlinstaller は cozystack-operator をデプロイする。その variant (talos / generic / hosted) は installer の values で設定する (packages/core/installer/values.yaml:8)。operator はその後 platform パッケージをリコンサイルし、残りのシステムコンポーネントを Flux 経由で立ち上げる。設定した root-host と bundle-name は共有プラットフォーム値に読み込まれる (packages/core/platform/templates/apps.yaml:22)。
最初の動く構成
プラットフォームが立ったら、テナントを作り、その中にマネージドデータベースをプロビジョニングする。テナント自体が apps.cozystack.io の kind だ。
テナントの namespace とオブジェクトを作る。
bashkubectl apply -f - <<'EOF' apiVersion: apps.cozystack.io/v1alpha1 kind: Tenant metadata: name: my-tenant namespace: tenant-root spec: {} EOFテナントに Postgres をプロビジョニングする。ここの
specはpackages/apps/postgreschart の Helm values になる (pkg/registry/apps/application/rest.go:1605)。bashkubectl apply -f - <<'EOF' apiVersion: apps.cozystack.io/v1alpha1 kind: Postgres metadata: name: my-db namespace: tenant-my-tenant spec: replicas: 2 EOF
動作確認
Cozystack は自前の store を持たないので、裏の HelmRelease が唯一の真実だ。Application ビューと Flux オブジェクトの両方を確認する。
kubectl get postgres -n tenant-my-tenant
kubectl get helmrelease -n tenant-my-tenantPostgres オブジェクトが ready を報告し、対応する HelmRelease (kind の prefix 付きの名前) が Ready にリコンサイルするはずだ。HelmRelease が詰まる場合、問題は chart のインストールにあり、Flux の helm-controller がログを出す。
次に読むもの
実運用では公式ドキュメント cozystack.io に従い、ノードのサイジング、ストレージ (LINSTOR / Piraeus)、ネットワーク (Cilium / Kube-OVN)、テナント分離、マネージドサービスの全カタログを確認する。単一ノードのクイックスタートを本番トポロジと見なさないこと。