k8s 实战篇 - mysql部署 - 1

文章聚焦于在K8s中安装MySQL数据库。先介绍获取MySQL镜像,接着创建MySQL pod,针对出现的CrashLoopBackOff问题进行梳理,发现需初始化密码。随后编写部署文件,部署前删除旧的MySQL,最后执行部署,完成后测试连接成功。

在项目的开发中肯定是需要使用数据库进行数据化持久操作。在JAVA项目中使用比较多的数据库是mysql,这篇文章主要描述怎么在k8s中安装mysql数据库。

mysql部署

1、获取mysql镜像

可以在dockerhub中搜索镜像地址,首先打开“Docker Hub”,在搜索框中输入mysql,找到mysql官方发布的docker镜像地址为“mysql”,mysql的端口为3306。按照之前部署demo的操作,重写一下执行命令。如下:

kubectl create deployment mysql --image=mysql 
kubectl expose deployment mysql --type=NodePort --port=3306

重写完成之后在控制台执行查看

2、创建mysql pod

执行之后通过get pod查看是否创建成功

C:\Users\smy1102>kubectl get pods
NAME                          READY   STATUS              RESTARTS        AGE
docker-demo-864cc5fb9-rrd59   1/1     Running             0               5h45m
mysql-77db55c6db-22lxf        0/1     CrashLoopBackOff   0               47s

生成了一条mysql-77db55c6db-22lxf 记录,pod的状态为CrashLoopBackOff。

3、CrashLoopBackOff问题梳理

我之前发布了一篇文章“minikube 快速使用入门 - pod - 外传”,这里面有详细记录pod的状态信息,找到相关说明。如下:

状态 描述
CrashLoopBackOff 容器退出,kubelet 正在将它重启

上面显示的状态不是running,这个肯定是部署的时候出现问题才会出现的。这时候应该排查一下问题,如:查看这个pod的执行日志是否正常,查看这个pod的详细情况。这些命令,我在文章“minikube 快速使用入门 - 命令篇 - 4”也有记录。如下:

# 查看 pod 详情
kubectl describe pod {
   
   {
   
   PodName}}
# 查看 log
kubectl logs {
   
   {
   
   PodName}}

首先执行一下“查看pod详情”:

C:\Users\smy1102>kubectl describe pod mysql-77db55c6db-22lxf
Name:         mysql-77db55c6db-22lxf
Namespace:    default
Priority:     0
Node:         minikube/192.168.49.2
Start Time:   Fri, 12 Aug 2022 14:04:36 +0800
Labels:       app=mysql
              pod-template-hash=77db55c6db
Annotations:  <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值