在项目的开发中肯定是需要使用数据库进行数据化持久操作。在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: <

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

被折叠的 条评论
为什么被折叠?



