PGSTY Silo は MinIO のオープンソースコミュニティ版フォークとして維持されている S3 互換オブジェクトストレージサーバーです。
注意 (エラーの原因について):
PGSTY Silo は独立した Helm Chart リポジトリホスティング(charts.pgsty.comなど)を公開しておらず、GitHub リポジトリ(pgsty/silo)内の./helm/siloをローカルに取得してインストールする運用となっています。
前提条件
- Kubernetes クラスター(v1.19 以上、Kind や各種 K8s クラスター)へのアクセス権限
-
kubectlコマンドが設定済みであること -
helm(v3 以上)がインストール済みであること -
gitコマンドが利用可能であること
手順 1: リポジトリのクローン
公式リポジトリをクローンして、チャートディレクトリに移動します。
git clone --depth 1 https://github.com/pgsty/silo.git
cd silo/helm/silo
手順 2: インストール実行
パターン A: 開発・検証用(Kind 向けスタンドアロン・永続化オフ)
手軽に起動してテストしたい場合:
helm install silo . \
--namespace silo \
--create-namespace \
--set mode=standalone \
--set replicas=1 \
--set persistence.enabled=false \
--set resources.requests.memory=512Mi \
--set rootUser=silo-admin \
--set rootPassword='replace-with-a-long-random-secret'
パターン B: 永続ボリューム (PVC) を利用する場合
helm install silo . \
--namespace silo \
--create-namespace \
--set rootUser=silo-admin \
--set rootPassword='replace-with-a-long-random-secret'
手順 3: 設定ファイル (custom-values.yaml) によるカスタマイズ
必要に応じて values.yaml をコピーして設定を調整します。
cp values.yaml custom-values.yaml
設定例 (custom-values.yaml)
mode: standalone # "standalone" または "distributed"
replicas: 1
rootUser: "silo-admin"
rootPassword: "replace-with-a-long-random-secret"
# 永続ストレージの設定
persistence:
enabled: true
size: 10Gi
storageClass: "standard" # 環境に合わせて変更
# コンソール UI / サービスポート
service:
type: ClusterIP
port: 9000
consoleService:
type: ClusterIP
port: 9001
# リソース設定
resources:
requests:
memory: 512Mi
cpu: 250m
limits:
memory: 1Gi
cpu: 500m
カスタム values を適用してインストール:
helm install silo . \
--namespace silo \
--create-namespace \
-f custom-values.yaml
手順 4: 稼働状況とアクセスの確認
# Pod のステータス確認
kubectl get pods -n silo
kubectl get svc -n silo
Web Console / S3 へのポートフォワード接続
# S3 API (ポート 9000)
kubectl port-forward svc/silo 9000:9000 -n silo
# Silo Web Console (ポート 9001)
kubectl port-forward svc/silo-console 9001:9001 -n silo
ブラウザで http://localhost:9001 にアクセスし、設定した rootUser と rootPassword でログインできます。
手順 5: Silo クライアント (mcli) からの操作
Silo コンテナには MinIO クライアント(フォーク版 mcli)が同梱されています。
# バケットの作成例
kubectl exec -it deployment/silo -n silo -- mcli alias set local http://localhost:9000 silo-admin 'replace-with-a-long-random-secret'
kubectl exec -it deployment/silo -n silo -- mcli mb local/cnpg-backups
kubectl exec -it deployment/silo -n silo -- mcli ls local
アップグレードおよびアンインストール手順
設定の更新(アップグレード)
helm upgrade silo . \
--namespace silo \
-f custom-values.yaml
アンインストール
helm uninstall silo -n silo
※ 永続化を有効にしていた場合、PVC(PersistentVolumeClaim)は自動削除されずに保持されます。不要な場合は手動で削除してください:
kubectl delete pvc -l app=silo -n silo