kubernetes 部署 mysql 服务
1、使用如下yaml文件部署mysql服务
1.1、创建deployment
cat mysql-deplpy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:labels:k8s.kuboard.cn/name: mysqlname: mysqlnamespace: default
spec:progressDeadlineSeconds: 600replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s.kuboard.cn/name: mysqlstrategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:labels:k8s.kuboard.cn/name: mysqlspec:containers:- env:- name: MYSQL_ROOT_PASSWORDvalue: '123456'image: 'mysql:5.7'imagePullPolicy: IfNotPresentname: mysqllifecycle: preStop: #优雅的停止服务exec: command: ["/bin/sh""-c""echo this pod is stopping. > /stop.log && sleep 30s" #优雅停止服务时间] ports:- containerPort: 3306name: mysql-portprotocol: TCPterminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulerterminationGracePeriodSeconds: 40 #优雅的停止服务,此值必须大于preStop的sleep值
1.2、创建service
cat mysql-svc.yaml
apiVersion: v1
kind: Service
metadata:labels:k8s.kuboard.cn/name: mysqlname: mysqlnamespace: default
spec:ports:- name: mysql-portnodePort: 30295port: 3306protocol: TCPtargetPort: 3306selector:k8s.kuboard.cn/name: mysqltype: NodePort
2、应用yaml文件创建服务
kubectl apply -f mysql-deplpy.yaml
kubectl apply -f mysql-svc.yaml
3、查看是否创建成功
[root@master ~]# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
pod/mysql-6c9b459c75-lk6dq 1/1 Running 0 1hNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/mysql NodePort 10.106.41.29 3306:30295/TCP 1h
4、进入容器
[root@master ~]# kubectl exec -it mysql-6c9b459c75-lk6dq bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
root@mysql-6c9b459c75-lk6dq:/#
root@mysql-6c9b459c75-lk6dq:/#
root@mysql-6c9b459c75-lk6dq:/#
root@mysql-6c9b459c75-lk6dq:/#
root@mysql-6c9b459c75-lk6dq:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.38 MySQL Community Server (GPL)Copyright (c) 2000, 2022, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sonar |
| sys |
+--------------------+
5 rows in set (0.00 sec)
5、mysql服务部署完成,可以使用集群内地址或者nodeport方式进行mysql数据库连接
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
