参考文档:
https://blog.csdn.net/qq_46480020/article/details/132551081
https://blog.csdn.net/jialiu111111/article/details/128626529
新建k8s部署mysql的配置文件:
vim mysql-deploy.yaml
内容如下:
1apiVersion: v1
2kind: Namespace
3metadata:
4 name: mysql-dev
5---
6apiVersion: v1
7kind: ConfigMap
8metadata:
9 name: mysql-config
10 namespace: mysql-dev
11data:
12 my.cnf: |
13 [client]
14 default-character-set=utf8mb4
15 [mysql]
16 default-character-set=utf8mb4
17 [mysqld]
18 default_authentication_plugin=mysql_native_password
19 default-time-zone='+08:00'
20 character-set-server=utf8mb4
21 collation-server=utf8mb4_unicode_ci
22---
23apiVersion: v1
24kind: PersistentVolume
25metadata:
26 name: mysql-pv
27 namespace: mysql-dev
28spec:
29 accessModes:
30 - ReadWriteOnce
31 capacity:
32 storage: 10Gi
33
34 hostPath:
35 path: /home/zhangcong/dev/mysql-data
36---
37apiVersion: v1
38kind: PersistentVolumeClaim
39metadata:
40 name: mysql-pvc
41 namespace: mysql-dev
42spec:
43 accessModes:
44 - ReadWriteOnce
45 resources:
46 requests:
47 storage: 1Gi
48 limits:
49 storage: 10Gi
50
51---
52apiVersion: apps/v1
53kind: Deployment
54metadata:
55 name: mysql-deployment
56 namespace: mysql-dev
57spec:
58 replicas: 1
59 selector:
60 matchLabels:
61 app: mysql
62 template:
63 metadata:
64 labels:
65 app: mysql
66 spec:
67 containers:
68 - name: mysql
69 image: docker.io/library/mysql:8.0.35
70 env:
71 - name: MYSQL_ROOT_PASSWORD
72 value: "123456"
73 ports:
74 - containerPort: 3306
75 volumeMounts:
76 - name: data
77 mountPath: /var/lib/mysql
78 - name: timezone
79 mountPath: /etc/localtime
80 - name: config
81 mountPath: /etc/mysql/conf.d/my.cnf
82 subPath: my.cnf
83 volumes:
84 - name: data
85 persistentVolumeClaim:
86 claimName: mysql-pvc
87 - name: timezone
88 # 使用主机中的配置
89 hostPath:
90 path: /etc/localtime
91 - name: config
92 configMap:
93 name: mysql-config
94---
95apiVersion: v1
96kind: Service
97metadata:
98 name: mysql-svc
99 namespace: mysql-dev
100spec:
101 selector:
102 app: mysql
103 type: NodePort
104 ports:
105 - name: mysql
106 port: 3306
107 targetPort: 3306
应用配置:
1[zhangcong@master k8s]$ kubectl apply -f mysql-deploy.yaml
2namespace/mysql-dev created
3configmap/mysql-config created
4persistentvolume/mysql-pv created
5persistentvolumeclaim/mysql-pvc created
6deployment.apps/mysql-deployment created
7service/mysql-svc created
8
9[zhangcong@master k8s]$ kubectl get all -n mysql-dev
10NAME READY STATUS RESTARTS AGE
11pod/mysql-deployment-67bb474b48-6tlkq 1/1 Running 0 44s
12NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
13service/mysql-svc NodePort 10.108.200.73 <none> 3306:31374/TCP 44s
14NAME READY UP-TO-DATE AVAILABLE AGE
15deployment.apps/mysql-deployment 1/1 1 1 44s
16NAME DESIRED CURRENT READY AGE
17replicaset.apps/mysql-deployment-67bb474b48 1 1 1 44s
接下来就可以通过连接工具进行连接了。
注意service/mysql-svc中的端口为:31374
评论