jenkins 持续集成和自动化部署
服务器数量比较少,怎么运维比较好?
服务器数量比较少,怎么运维比较好?
运维人员的工作每天基本上都是在检查问题,枯燥但又重要,要是你的某一个环节出现问题并没有及时发现问题,对于企业来说损失可能非常大,基本上运维人每天的工作我罗列了下,有这几种:
1、负责服务器的硬件配置、软件安装、机房上下架等技术维护工作
2、负责虚拟化技术产品物理机配置、管理和日常运行监控和维护
3、负责独立主机或虚拟应用产品的开通使用、日常维护、故障诊断和排除
4、提供独立主机或虚拟应用客户产品操作和应用方面的技术支持
5、监视分管的服务器,及时发现问题,并积极解决问题
现在信息化数字时代,单靠人工去检查出现错误几率会很大,而且有的运维人还不只管理两台服务器,像我们公司的运维每人至少要管理30台服务器,这样子单靠人工运维耗费的人工成本和时间是非常大的,所以还是推荐你用运维工具吧,比如云帮手()1.支持跨云商批量管理服务器
2.兼容性强大,兼容市面基本所有的云商云主机,兼容操作系统;
3.操作简单,可视化界面预览资源、一键修复、一键部署;
4. 可以远程登录云主机FTP桌面,处理云主机上的文件;
5.监控和资源还有告警功能,这个是挺好的,不用盯着看;
6.系统修复功能,这个是挺实用也比较必须的;
7.免费使用。总得来说功能还是挺全的,不存在需要又要另外找软件的尴尬。
微服务在Docker k8s下如何部署?
正好最近在项目中用到了这些技术,我来抛砖引玉吧。
首先说结论:
1. k8s 是非常好的一项技术,很稳定。如果发现正在运行的 pod 的数量不等于用户设定的期望值, k8s 则会自动创建或者删除 pod,直到两者相等。这样既保障了服务的不间断运行,同时还可以动态缩放服务的规格。用户只要调整 pod 的 replicate 的数量即可,其他的都交给 k8s 就好,非常省心。
2. 要用 jenkins 来集成命令行操作,虽然我个人非常偏爱使用命令行,但是我不得不承认用 jenkins 集成命令行操作会极大的提升工作效率。
下面说实现步骤:(本文以 azure 平台为例)
1. 编写 Dockerfile
2. 在 jenkins 创建任务,并执行包含如下命令的脚本
2.1 git pull 源代码到本地
2.2 docker build 命令生成镜像文件
2.3 docker 定义镜像文件版本号并上传到 azure 平台
2.4 kubectl 命令来创建 k8s 的 deployment amp service.
2.5 每次版本更新可以调用 update image 来编译新的镜像版本并提供给 k8s 使用
注意在创建 k8s 的 deployment 和 service 的时候需要编写 yaml 格式的配置文件, deployment 配置包括 名称,镜像文件地址, cpu 最大最小分配值,内存最大最小分配值等。service 配置文件包括 名称,引用的 deployment 名称,以及是否使用 load balancer等。
更多详细信息可以参考我的 wiki.