引言
隨着雲打算跟容器技巧的疾速開展,Kubernetes(簡稱K8s)已成為容器編排範疇的首選東西。MySQL作為一款廣泛利用的關係型數據庫,其牢固性跟堅固性在眾多場景中掉掉落了驗證。本文將介紹如何在Kubernetes情況中高效、牢固地安排MySQL數據庫,幫助妳疾速上手並利用。
籌備任務
在開端安排之前,請確保妳曾經:
- 安裝並設置了Kubernetes集群。
- 安裝了kubectl命令行東西,用於與Kubernetes集群交互。
- 籌備了MySQL數據庫鏡像,比方官方的
mysql:8.0
鏡像。
安排步調
1. 創建ConfigMap
起首,創建一個ConfigMap來存儲MySQL的設置文件。
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-config
namespace: dev
data:
my.cnf: |
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
max_connections=2000
secure_file_priv=/var/lib/mysql
sql_mode=STRICT_TRANS_TABLES
2. 創建PersistentVolumeClaim(PVC)
接上去,創建一個PVC來長久化MySQL數據。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pvc
namespace: dev
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: hpe-san
volumeMode: Filesystem
3. 創建Deployment
創建一個Deployment來安排MySQL利用。
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
namespace: dev
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:8.0
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: root-password
volumeMounts:
- name: mysql-pvc
mountPath: /var/lib/mysql
volumes:
- name: mysql-pvc
persistentVolumeClaim:
claimName: mysql-pvc
- name: mysql-config
configMap:
name: mysql-config
4. 創建Service
創建一個Service來裸露MySQL效勞的端口。
apiVersion: v1
kind: Service
metadata:
name: mysql
namespace: dev
spec:
selector:
app: mysql
ports:
- protocol: TCP
port: 3306
targetPort: 3306
type: ClusterIP
5. 創建Secret
創建一個Secret來存儲MySQL的root密碼。
apiVersion: v1
kind: Secret
metadata:
name: mysql-secret
namespace: dev
type: Opaque
data:
root-password: <password_hash>
驗證安排
利用以下命令驗證MySQL效勞的狀況:
kubectl get pods -n dev
kubectl get svc -n dev
假如一切正常,妳應當能看到一個正在運轉的MySQL pod跟一個名為mysql
的Service。
總結
經由過程以上步調,妳可能在Kubernetes情況中高效、牢固地安排MySQL數據庫。在現實利用中,妳可能根據須要調劑設置,比方增加正本數、設置長久化存儲等。盼望本文能幫助妳疾速上手Kubernetes跟MySQL的安排。