介绍
介绍
今天福哥要带着大家学习Rancher部署一个服务的方法,大家都知道通过docker部署一个服务需要定制很多参数,包括容器名称、主机名称、镜像、端口映射、磁盘映射、网络配置、启动命令等等。
我们可以使用Dockerfile去简化这个操作,把这个敲命令变成编写配置文档,大大提高了可操作性。在Rancher里面我们可以通过“点点点”的方式界面化部署一个服务,这个简直不要太爽了~~
镜像
目录
这个镜像的目录结构。
Dockerfile
这是福哥写的Dockerfile,大家可以拿去直接使用!
FROM registry.tongfu.net:5000/mysql:5.7-debian MAINTAINER Andy Bogate MAINTAINER tongfu@tongfu.net MAINTAINER http://docker.tongfu.net MAINTAINER 2022/6/21 MAINTAINER v1.0.0 EXPOSE 3306 # timezone RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo 'Asia/Shanghai' >/etc/timezone # data COPY mysqld.conf /etc/mysql/mysql.conf.d/mysqld.cnf
mysqld.conf
这个福哥使用的配置文件
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql log-error = /var/log/mysql/error.log # By default we only accept connections from localhost #bind-address = 127.0.0.1 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0
部署
名称
这个就是docker的name了。
名称可以随便起,建议使用英文。
工作负载类型
类型很多,以后福哥会专门讲解这个,今天安装的是mysql数据库,所以选择有状态应用。
Docker镜像
这个就是docker的镜像了。
可以用私有仓库镜像,也可以用公有仓库的镜像,福哥这里用的就是前面讲Dockerfile的时候创建的mysql5.7镜像。
命名空间
选择是什么环境,这里福哥选择的是tfums-prod-db(生产环境)。
环境变量
这个就是docker的environment(-e)了。
福哥通过MYSQL_ROOT_PASSWORD变量设置了mysql的初始化的root账号的密码。
主机调度
选择服务部署在那台主机上面,可以手动选择,也可以自动分配。
健康检查
这个就是health_check了,图形化设置真爽~~
数据卷
这个就是docker的volumes(-v)了。
福哥设置了一个数据卷,将mysql的数据目录/var/lib/mysql/映射到了主机上面的/data/docker.data/mysql/data/目录上面。
创建目录
首先需要在服务器上建立这个目录,然后设置所有者和分组。
因为mysql:5.7的镜像的mysql用户和mysql组的ID都是999,所以这里授权999.999即可。
mkdir -p /data/docker.data/mysql/data/ chown 999.999 /data/docker.data/mysql/data/
设置数据卷
安全/主机设置
CPU和内存
设置最低内存256M最高内存512M,设置CPU使用率25%(福哥的虚拟机是双核的,一个核心是1000,两个就是2000,那么25%就是500)。
查看
列表
创建完服务回到服务列表,等部署完成了可以看到服务状态是浅绿色的激活状态。
详情
点击服务“mysql”进去可以看到服务详情,这里可以手动增加Pod或者减少Pod,还可以看到一些服务参数和状态。
Pods
下面有Pods列表,可以看到当前服务有哪些Pod,都是处于什么状态。
容器
点击一个Pod进去可以看到这个Pod后面的容器的运行状态。
管理
命令行
可以在服务列表里面服务的右侧的三个点里面选择“执行命令行”,进入终端模式。
在终端模式下就可以像SSH那样去操作服务了。
总结
今天福哥带着同学们学习了使用rancher部署MySQL服务的方法。
因为这是福哥第一个通过rancher部署的服务,所以讲解的比较细致,后面再部署其他服务的时候就会讲的比较简单一些了,初学者童鞋们可以以这一篇教程为参考试试部署其他服务看看。