Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 mariadb/mysql 数据库

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wljk506/article/details/92386472

这几天对开发服务器中的 k8s和相关模块 进行升级,做个记录
开发服务器(单服务器)部署 mariadb/mysql 数据库

环境,与系统

系统:centos 7.6

内核: 5.1.9-1.el7.elrepo.x86_64

Kubernetes(K8s) 1.14.3

服务器IP:192.168.0.254

服务器IP 说明

如果更改了服务器IP 为其他IP,那么请全局全部替换成你改的IP
fox.风

如何安装 k8s

请看 最近写的一篇文章,

https://blog.csdn.net/fenglailea/article/details/88745642
常用 k8s 命令
https://foxwho.blog.csdn.net/article/details/92137467

服务器资源限制

对CPU,内存都做了限制,请自行针对修改

没有使用持久化存储,这里直接使用宿主机存储,如有需要,请自行增加

目录

请把项目放置到 /www/k8s/foxdev/ 目录下,所有都是基于此目录
或者请看 下面一节的 拉取代码

拉取代码

mkdir -p /www/k8s/
cd /www/k8s/

git clone https://github.com/foxiswho/k8s-nacos-sentinel-rocketmq-zipkin-elasticsearch-redis-mysql.git foxdev

cd foxdev

以下是 独立部署 相关模块

k8s mariadb(mysql) 数据库独立部署

采用 mariadb 最新 版本

暂时没有使用 主从,后期有空的时候再设置

生成容器镜像后,会自动导入nacos 数据库配置文件,

及创建 数据库nacos用户和密码nacos

官方:

https://nacos.io/zh-cn/docs/what-is-nacos.html

相关参数说明

端口 3306

账号/密码

root/root

nacos/nacos

nacos_devtest 为 nacos 服务注册发现 数据库

目录

/www/k8s/foxdev/mariadb/data 数据库文件目录
/www/k8s/foxdev/mariadb/mariadb.conf.d 数据库自定义配置文件目录

独立部署 mariadb 操作

直接执行 根目录create.b.mariadb.start.sh 即可


./create.b.mariadb.start.sh

执行完成后,即可用 数据库管理软件,进行操作数据库了

Kubernetes 编排文件

mariadb-rc.yml

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mariadb
  labels:
    app: mariadb
#  namespace: default
spec:
  serviceName: mariadb
  replicas: 1
  selector:
    matchLabels:
      app: mariadb
  template:
    metadata:
      labels:
        app: mariadb
      annotations:
        pod.beta.kubernetes.io/initialized: "true"
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                      - mariadb
              topologyKey: "kubernetes.io/hostname"
      containers:
        - name: mariadb
          image: mariadb:10.4
          imagePullPolicy: IfNotPresent
          resources:
            limits:
              cpu: 300m
              memory: 768Mi
            requests:
              cpu: 200m
              memory: 512Mi
          env:
            - name: TZ
              value: Asia/Shanghai
            - name: MYSQL_ROOT_PASSWORD
              value: root
          ports:
            - containerPort: 3306
          volumeMounts:
            - name: vol-data
              mountPath: /var/lib/mysql
            - name: vol-conf
              mountPath: /etc/mysql/mariadb.conf.d
      volumes:
        - name: vol-data
          hostPath:
            path: /www/k8s/foxdev/mariadb/data
            type: Directory
        - name: vol-conf
          hostPath:
              path: /www/k8s/foxdev/mariadb/mariadb.conf.d
              type: Directory

mariadb-service.yml

apiVersion: v1
kind: Service
metadata:
  name: mariadb
  labels:
    app: mariadb
spec:
  type: NodePort
  ports:
    - port: 3306
      targetPort: 3306
      nodePort: 3306
  selector:
    app: mariadb

create.b.mariadb.start.sh 执行文件

shell 自动 执行 mariadb 文件

#!/usr/bin/env bash

DIR=$(pwd)


rm -rf /etc/yum.repos.d/mariadb.repo
cat <<EOF > /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.4/centos7-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
enabled=1
gpgcheck=1
EOF

yum clean all
yum makecache
yum repolist


yum install -y MariaDB-client

docker pull mariadb:latest

mkdir -p ${DIR}/mariadb/data
mkdir -p ${DIR}/mariadb/mariadb.conf.d
chmod -R 777 ${DIR}/mariadb/data
chmod -R 777 ${DIR}/mariadb/mariadb.conf.d



kubectl create -f  ${DIR}/mariadb/mariadb-service.yml
kubectl create -f  ${DIR}/mariadb/mariadb-rc.yml

echo "等待 mariadb pod 容器启动成功"
echo "60 秒等待时间"

kubectl get pod
sleep 10s


kubectl get pod

echo "50 秒等待时间"
sleep 10s

kubectl get pod

echo "40 秒等待时间"
sleep 10s

kubectl get pod

echo "30 秒等待时间"
sleep 10s

kubectl get pod

echo "20 秒等待时间"
# 这里的休眠只是让数据库容器 尽快创建成功
sleep 20s

kubectl get pod

echo -e "开始 导入 nacos-mysql.sql 数据"
echo -e "创建 nacos 用户,密码为 nacos"
echo -e "创建 库 nacos_devtest "

# 导入数据库SQL
mysql -h127.0.0.1 -uroot -proot mysql < ${DIR}/mariadb/sql/nacos-mysql.sql

echo -e "\nnacos-mysql.sql 数据导入成功 \n\n\n"

kubectl get pod

echo -e "\n\n\n"

echo "mariadb success"

在开发服务器上部署成功,有问题的,可以联系我

源文件

https://github.com/foxiswho/k8s-nacos-sentinel-rocketmq-zipkin-elasticsearch-redis-mysql

展开阅读全文

没有更多推荐了,返回首页