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) のマルチコンテナ構成
|
- ✅ nginx (1.29.3-alpine-perl) + phpMyAdmin (5.2.3-fpm-alpine) のマルチコンテナ構成
|
||||||
- ✅ 本番環境対応のセキュリティ設定
|
- ✅ 本番環境対応のセキュリティ設定
|
||||||
|
- ✅ **自動バックアップ機能(CronJob)**
|
||||||
|
- 定期的なMySQLデータベースバックアップ
|
||||||
|
- PVCまたは外部NFSへの保存対応
|
||||||
|
- 圧縮・世代管理機能
|
||||||
- ✅ Horizontal Pod Autoscaler (HPA) サポート
|
- ✅ Horizontal Pod Autoscaler (HPA) サポート
|
||||||
- ✅ Pod Disruption Budget (PDB) による高可用性
|
- ✅ Pod Disruption Budget (PDB) による高可用性
|
||||||
- ✅ Network Policy によるネットワーク分離
|
- ✅ Network Policy によるネットワーク分離
|
||||||
@@ -125,6 +129,70 @@ persistence:
|
|||||||
size: 1Gi
|
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.cpu` | phpMyAdmin CPU要求 | `250m` |
|
||||||
| `resources.phpmyadmin.requests.memory` | phpMyAdmin メモリ要求 | `256Mi` |
|
| `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
|
```bash
|
||||||
@@ -199,3 +288,44 @@ kubectl logs -l app.kubernetes.io/name=phpmyadmin-nginx -c phpmyadmin
|
|||||||
```bash
|
```bash
|
||||||
kubectl exec -it <pod-name> -c phpmyadmin -- nc -zv mysql.default.svc.cluster.local 3306
|
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