✅ Deploymentを活用したMySQLの実行
Manifestファイルの作成
mysql-deployment.yaml
apiVersion: apps/v1
kind: Deployment
# Deploymentの基本情報
metadata:
name: mysql-deployment # Deployment名
# Deploymentの詳細情報
spec:
replicas: 1 # 作成するPodのレプリカ数
selector:
matchLabels:
app: mysql-db # 以下で定義したPodのうち、「app: mysql-db」という値を持つPodを選択
# デプロイするPodの定義
template:
metadata:
labels: # ラベル(=カテゴリ)
app: mysql-db
spec:
containers:
- name: mysql-container # コンテナ名
image: mysql # コンテナ作成時に使用するイメージ
ports:
- containerPort: 3306 # コンテナで使用するポートを明示的に指定
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: mysql-root-password
- name: MYSQL_DATABASE
valueFrom:
configMapKeyRef:
name: mysql-config
key: mysql-database
mysql-secret.yaml
apiVersion: v1
kind: Secret
# Secretの基本情報
metadata:
name: mysql-secret # Secret名
# Key、Value形式で値を保存
stringData:
mysql-root-password: password123
mysql-config.yaml
apiVersion: v1
kind: ConfigMap
# ConfigMapの基本情報
metadata:
name: mysql-config # ConfigMap名
# Key、Value形式で設定値を保存
data:
mysql-database: kube-practice
mysql-service.yaml
apiVersion: v1
kind: Service
# Serviceの基本情報
metadata:
name: mysql-service # Service名
# Serviceの詳細情報
spec:
type: NodePort # Serviceの種類
selector:
app: mysql-db # 実行中のPodのうち、「app: mysql-db」という値を持つPodとServiceを紐付け
ports:
- protocol: TCP # Serviceに接続するためのプロトコル
port: 3306 # Kubernetes内部からServiceに接続するためのポート番号
targetPort: 3306 # マッピングするPodのポート番号
nodePort: 30002 # 外部からユーザーがアクセスするポート番号
オブジェクトの作成
$ kubectl apply -f mysql-secret.yaml
$ kubectl apply -f mysql-config.yaml
$ kubectl apply -f mysql-deployment.yaml
$ kubectl apply -f mysql-service.yaml
DBへの接続テスト


新規データベースの作成

✅ MySQLの再起動
🧑🏻🏫 ここで、MySQLが原因不明の障害によりサービスが停止したと仮定する。そのため、Deploymentを再起動しなければならない状況とする。
Deploymentの再起動
$ kubectl rollout restart deployment mysql-deployment
データベースの再確認

データベースを確認すると、以前作成した「new-db」というデータベースが消失している。実際のデータベース運用において、データが消失してはならない。データが保持されるよう、ボリューム(Volume)を設定する。
'k8s > archive_1' 카테고리의 다른 글
| 16.Deployment - Spring BootとMySQLの連携 (0) | 2026.03.18 |
|---|---|
| 15.Deployment - MySQL(Volume設定) (0) | 2026.03.18 |
| 13.Volumeとは? (0) | 2026.03.18 |
| 12.Secret (0) | 2026.03.18 |
| 11.ConfigMap (0) | 2026.03.18 |