2025-12-03 10:44:06 +00:00
2025-12-03 10:39:43 +00:00
2025-12-03 10:39:43 +00:00
2025-12-03 10:44:06 +00:00
2025-12-03 10:39:43 +00:00

YOURLS with NGINX Helm Chart

このHelmチャートは、YOURLS (Your Own URL Shortener) をNGINXとPHP-FPMの構成でKubernetesにデプロイします。

特徴

  • NGINX (1.29.3-alpine-perl) + YOURLS (1.10.2-fpm-alpine) のマルチコンテナPod構成
  • MySQL/MariaDBのサブチャートによるデータベース管理
  • 永続ボリュームによるデータ保存
  • Ingressサポート (オプション)
  • セキュアな環境変数管理
  • リソース制限とヘルスチェック

前提条件

  • Kubernetes 1.19+
  • Helm 3.0+
  • PersistentVolumeプロビジョナーのサポート (永続化を有効にする場合)

ディレクトリ構造

yourls-nginx/
├── Chart.yaml
├── values.yaml
├── templates/
│   ├── _helpers.tpl
│   ├── deployment.yaml
│   ├── service.yaml
│   ├── configmap.yaml
│   ├── secret.yaml
│   ├── pvc.yaml
│   ├── ingress.yaml
│   └── NOTES.txt
└── README.md

インストール

1. 依存関係の更新

helm dependency update

2. 基本インストール

helm install my-yourls ./yourls-nginx

3. カスタム設定でインストール

helm install my-yourls ./yourls-nginx \
  --set yourls.config.site=https://短縮.example.com \
  --set yourls.config.username=admin \
  --set yourls.config.password=SecurePassword123 \
  --set mysql.auth.password=SecureMySQLPassword

4. values.yamlをカスタマイズしてインストール

# values.yamlを編集
vim values.yaml

# インストール
helm install my-yourls ./yourls-nginx -f values.yaml

設定項目

イメージ設定

パラメータ 説明 デフォルト値
image.nginx.registry NGINXイメージのレジストリ docker.io
image.nginx.repository NGINXイメージのリポジトリ nginx
image.nginx.tag NGINXイメージのタグ 1.29.3-alpine-perl
image.yourls.registry YOURLSイメージのレジストリ docker.io
image.yourls.repository YOURLSイメージのリポジトリ yourls
image.yourls.tag YOURLSイメージのタグ 1.10.2-fpm-alpine

YOURLS設定

パラメータ 説明 デフォルト値
yourls.config.site YOURLSのサイトURL https://yourls.example.com
yourls.config.username 管理者ユーザー名 admin
yourls.config.password 管理者パスワード admin
yourls.config.cookiekey Cookieの暗号化キー modify_this_random_string
yourls.persistence.enabled データの永続化 true
yourls.persistence.size PVCのサイズ 1Gi

MySQL設定

パラメータ 説明 デフォルト値
mysql.enabled MySQLサブチャートの有効化 true
mysql.auth.database データベース名 yourls
mysql.auth.username データベースユーザー名 yourls
mysql.auth.password データベースパスワード yourls
mysql.primary.persistence.size PVCのサイズ 8Gi

Ingress設定

パラメータ 説明 デフォルト値
ingress.enabled Ingressの有効化 false
ingress.className Ingress class名 nginx
ingress.hosts[0].host ホスト名 yourls.example.com

アップグレード

helm upgrade my-yourls ./yourls-nginx -f values.yaml

アンインストール

helm uninstall my-yourls

セキュリティに関する注意事項

  1. デフォルトパスワードの変更: インストール後すぐにデフォルトの管理者パスワードを変更してください
  2. COOKIEKEY: yourls.config.cookiekeyをランダムな文字列に変更してください
  3. データベースパスワード: 本番環境では強力なパスワードを設定してください
  4. HTTPS: 本番環境では必ずIngressでTLS/HTTPSを有効にしてください

トラブルシューティング

Podの状態確認

kubectl get pods -l app.kubernetes.io/name=yourls-nginx
kubectl logs <pod-name> -c nginx
kubectl logs <pod-name> -c yourls

データベース接続の確認

kubectl exec -it <pod-name> -c yourls -- env | grep YOURLS_DB

永続ボリュームの確認

kubectl get pvc
kubectl describe pvc <pvc-name>
Description
No description provided
Readme 45 KiB
Languages
Smarty 100%