e9aa40c6cc40cd7d79ed77eb4fa44913c39e1dfe
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
セキュリティに関する注意事項
- デフォルトパスワードの変更: インストール後すぐにデフォルトの管理者パスワードを変更してください
- COOKIEKEY:
yourls.config.cookiekeyをランダムな文字列に変更してください - データベースパスワード: 本番環境では強力なパスワードを設定してください
- 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
Languages
Smarty
100%