This commit is contained in:
130
README.md
130
README.md
@@ -6,6 +6,10 @@
|
||||
|
||||
- ✅ nginx (1.29.3-alpine-perl) + phpMyAdmin (5.2.3-fpm-alpine) のマルチコンテナ構成
|
||||
- ✅ 本番環境対応のセキュリティ設定
|
||||
- ✅ **自動バックアップ機能(CronJob)**
|
||||
- 定期的なMySQLデータベースバックアップ
|
||||
- PVCまたは外部NFSへの保存対応
|
||||
- 圧縮・世代管理機能
|
||||
- ✅ Horizontal Pod Autoscaler (HPA) サポート
|
||||
- ✅ Pod Disruption Budget (PDB) による高可用性
|
||||
- ✅ Network Policy によるネットワーク分離
|
||||
@@ -125,6 +129,70 @@ persistence:
|
||||
size: 1Gi
|
||||
```
|
||||
|
||||
### 6. 自動バックアップの有効化(PVC使用)
|
||||
|
||||
```yaml
|
||||
backup:
|
||||
enabled: true
|
||||
# 毎日午前2時にバックアップ
|
||||
schedule: "0 2 * * *"
|
||||
|
||||
# MySQL接続情報はphpmyadmin.hostsから自動取得
|
||||
mysql:
|
||||
user: "backup_user"
|
||||
password: "your-backup-password"
|
||||
|
||||
# 特定のデータベースのみバックアップ
|
||||
databases:
|
||||
- myapp_db
|
||||
- analytics_db
|
||||
|
||||
# バックアップの圧縮
|
||||
compression:
|
||||
enabled: true
|
||||
level: 6
|
||||
|
||||
# 30日以上古いバックアップを自動削除
|
||||
retention:
|
||||
enabled: true
|
||||
days: 30
|
||||
|
||||
# PVCストレージ設定
|
||||
persistence:
|
||||
storageClass: "standard"
|
||||
accessMode: ReadWriteMany
|
||||
size: 50Gi
|
||||
```
|
||||
|
||||
### 7. 自動バックアップの有効化(NFS使用)
|
||||
|
||||
```yaml
|
||||
backup:
|
||||
enabled: true
|
||||
schedule: "0 2 * * *"
|
||||
|
||||
# MySQL接続情報はphpmyadmin.hostsから自動取得
|
||||
mysql:
|
||||
existingSecret: "mysql-backup-credentials"
|
||||
|
||||
# NFSストレージ設定
|
||||
nfs:
|
||||
enabled: true
|
||||
server: "nfs-server.example.com"
|
||||
path: "/exports/mysql-backups"
|
||||
```
|
||||
|
||||
### 8. 既存のSecretを使用したバックアップ
|
||||
|
||||
```yaml
|
||||
backup:
|
||||
enabled: true
|
||||
mysql:
|
||||
existingSecret: "mysql-backup-secret"
|
||||
userKey: "username"
|
||||
passwordKey: "password"
|
||||
```
|
||||
|
||||
## パラメータ
|
||||
|
||||
### グローバル設定
|
||||
@@ -167,6 +235,27 @@ persistence:
|
||||
| `resources.phpmyadmin.requests.cpu` | phpMyAdmin CPU要求 | `250m` |
|
||||
| `resources.phpmyadmin.requests.memory` | phpMyAdmin メモリ要求 | `256Mi` |
|
||||
|
||||
### バックアップ設定
|
||||
|
||||
| パラメータ | 説明 | デフォルト値 |
|
||||
|----------|------|------------|
|
||||
| `backup.enabled` | バックアップ機能の有効化 | `false` |
|
||||
| `backup.schedule` | Cronスケジュール | `"0 2 * * *"` |
|
||||
| `backup.mysql.user` | MySQLバックアップユーザー | `""` |
|
||||
| `backup.mysql.password` | MySQLパスワード | `""` |
|
||||
| `backup.mysql.existingSecret` | 既存Secret使用 | `""` |
|
||||
| `backup.databases` | バックアップ対象DB(空=全DB) | `[]` |
|
||||
| `backup.compression.enabled` | 圧縮有効化 | `true` |
|
||||
| `backup.compression.level` | 圧縮レベル (1-9) | `6` |
|
||||
| `backup.retention.enabled` | 世代管理有効化 | `true` |
|
||||
| `backup.retention.days` | 保持日数 | `30` |
|
||||
| `backup.persistence.size` | バックアップPVCサイズ | `50Gi` |
|
||||
| `backup.nfs.enabled` | NFS使用 | `false` |
|
||||
| `backup.nfs.server` | NFSサーバー | `""` |
|
||||
| `backup.nfs.path` | NFSパス | `""` |
|
||||
|
||||
**注意**: MySQL接続情報(host、port)は `phpmyadmin.hosts[0]` から自動的に取得されます。
|
||||
|
||||
## アンインストール
|
||||
|
||||
```bash
|
||||
@@ -199,3 +288,44 @@ kubectl logs -l app.kubernetes.io/name=phpmyadmin-nginx -c phpmyadmin
|
||||
```bash
|
||||
kubectl exec -it <pod-name> -c phpmyadmin -- nc -zv mysql.default.svc.cluster.local 3306
|
||||
```
|
||||
|
||||
### バックアップジョブの確認
|
||||
|
||||
```bash
|
||||
# CronJobの確認
|
||||
kubectl get cronjob
|
||||
|
||||
# 実行されたJobの確認
|
||||
kubectl get jobs -l app.kubernetes.io/component=backup
|
||||
|
||||
# バックアップジョブのログ確認
|
||||
kubectl logs job/<job-name>
|
||||
|
||||
# バックアップファイルの確認(PVC使用時)
|
||||
kubectl exec -it <backup-pod-name> -- ls -lh /backup/
|
||||
|
||||
# 手動でバックアップジョブを実行
|
||||
kubectl create job --from=cronjob/<cronjob-name> manual-backup-$(date +%s)
|
||||
```
|
||||
|
||||
### バックアップの復元方法
|
||||
|
||||
```bash
|
||||
# バックアップPodに接続
|
||||
kubectl exec -it <pod-name> -c phpmyadmin -- /bin/bash
|
||||
|
||||
# バックアップファイルの確認
|
||||
ls -lh /backup/
|
||||
|
||||
# 復元実行(例)
|
||||
gunzip -c /backup/20241120/mydb_20241120_020001.sql.gz | \
|
||||
mysql -h mysql.default.svc.cluster.local -u root -p mydb
|
||||
```
|
||||
|
||||
## ライセンス
|
||||
|
||||
このHelmチャートはMITライセンスの下で公開されています。
|
||||
|
||||
## サポート
|
||||
|
||||
問題が発生した場合は、GitHubのIssuesページで報告してください。
|
||||
Reference in New Issue
Block a user