这几天对开发服务器中的 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
相关参数说明
对外端口:30306
端口 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: 30306
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