Rancher2.5安装的k8s集群中部署 Mysql5.7

基础环境搭建

基础环境的搭建请参考此文:# Rancher 2.5 部署单节点 k8s 集群,起飞的感觉

1. 宿主机搭建 NFS

NFS 是一个网络文件系统,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。

(1) 通过 yum 安装

yum -y install rpcbind nfs-utils 

(2) 建立网上邻居共享目录

mkdir /mnt/share

(3) 配置这个共享目录

vim /etc/exports

写入下边的内容:

/mnt/share 192.168.138.0/24(rw,no_root_squash,async,fsid=0)

(4) 使配置内容生效

exportfs -r 

(5) 启动 rpcbind、nfs 服务及开机自启动

systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs

2. 新建命名空间

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650871591(1).jpg

在 “default” 项目下,起一个 “middleware” 的命名空间

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650871684(1).jpg

3. 设置 PV (Persistent Volumes)

注意:找不到这个菜单的,切回集群选项,不在项目选项里

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650870914(1).jpg

注意几个关键的配置,模式可以选择单节点/多节点

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650871090(1).jpg

4. 设置 PVC (Persistent Volumes Claim)

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650871238(1).jpg

注意几个关键的配置,选择刚才设置好的 PV 绑定

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650871455(1).jpg

5. 设置 Config Maps

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650872057(1).jpg

这里的作用其实就是把容器的配置映射到公共的 Config Map

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650872245(1).jpg

mysql.conf 的内容根据真实需要配置,这里作者随便写个简单的

[mysqld]
skip-name-resolve

6. 设置 Mysql 的 POD

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650873080(1).jpg

直接导入 yml 配置,类型 Deployment,内容会贴在下边,接触过的同学都多少会看的明白

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650940467(1).jpg
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
  namespace: middleware
spec:
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        env:                        
        - name: MYSQL_ROOT_PASSWORD
          value: "88021120"
        ports:
        - containerPort: 3306
          name: redis
          protocol: TCP
        volumeMounts:
        - name: mysql-data
          mountPath: /var/lib/mysql
        - name: mysql-conf
          mountPath: "/etc/mysql/conf.d/"
      volumes:
      - name: mysql-data
        persistentVolumeClaim:
          claimName: mysql-pvc
      - name: mysql-conf
        configMap:
          name: mysql-alone-conf
          items:
          - key: mysql.conf
            path: mysql.conf

7. 设置 Mysql 的 Service

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650940657(1).jpg

直接导入 yml 配置,类型 Service,内容会贴在下边,接触过的同学都多少会看的明白

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650940765(1).jpg
apiVersion: v1
kind: Service
metadata:
  name: mysql-alone-access
  namespace: middleware
  labels:
    app: mysql
spec:
  selector:
    app: mysql
  ports:
  - name: mysql-access
    protocol: TCP
    port: 3306
    targetPort: 3306
  type: NodePort

8. 查看状态与试用

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650941037(1).jpg

网络模式我们选择的是 NodePort,看到系统自动给我们分配了宿主机端口 32401

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650941169(1).jpg

至此我们用 Navicat 连接下试试

Rancher2.5安装的k8s集群中部署 Mysql5.7
1650941322(1).jpg

注意:有的同学搞的镜像版本可能直接连不上,需要自己进入容器把root的远程连接打开

(1) 在宿主机上查看运行的 docker 容器

docker ps | grep mysql

(2) 找到你的容器 ID,然后进入容器

docker exec -it 容器ID /bin/bash 

(3) 然后进入你的 Mysql

mysql -uroot -p你的密码

(4) 然后选择 Mysql 的数据库,赋予 root 账号连接权限

use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码';
flush privileges;

如果你还是连不上,那你要回到第五步,检查下 ConfigMap 中你的 Mysql 的配置是否存在问题。


原文始发于微信公众号(白菜说技术):Rancher2.5安装的k8s集群中部署 Mysql5.7

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/172513.html

(1)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!