这周对于后续开发方向和工作安排上发生了很大的变化
标准化的工具开发以及单一的交付场景
->
各式各样的交付场景
因此用脚本去启服务的这种方式可行性值得商榷。
1.这会让交付过程变长,因为这个安装过程不稳定
2.工作量会链式增长,操作系统,节点数量,需要考虑的因素很多,一有新的接单或客户需求就需要改脚本之类的,工作重复度大
3.openshift和rancher都是云原生的容器管理平台,他们提供应用商店是因为有k8s的operator安装和helm charts,这种一键安装的方式让应用的发布更加简单,但是脚本启动服务这个流程不可能做到对交付人员不透明化,在我看来甚至不需要平台或者工具去启动。工具本身不在要部署的环境里面,通过选取要发布的应用点点点,最后生成一个产物,让我交付人员去放到环境里跑脚本执行,还不如这种方式。
4.维护工作量变大,没有k8s提供类似configmap、secret机制
需要平台的灵活性和扩展性,满足各种潜在的需求
我理解的我们运维开发的职责:打通业务和基础设施
底层提供给我什么环境?vm?物理机?云环境?i dont care
是否有分布式存储?i dont care
我们所要做的:
1.一键式部署,能够快速交付
2.良好提供业务接入的支持
3.适配多种客户环境下的安装
why rancher?
分析以上需求,我们引入rancher平台,rancher是业界最受欢迎的容器管理平台,它有以下优势:
1.简化使用k8s使用流程,方便安装,运维工作。能一键交付,也能够单机部署最轻量级的k3s
2.能够快速部署harbor,添加私有仓库,通过应用商店发布自己的应用,满足私有化交付场景
3.完善的监控、日志系统
4.提供web ui在线创建资源、编辑yaml文件,以非常友好的方式,赋能devops团队
5.可以在裸机、虚拟机、公私有云上快速安装Kubernetes集群
那么评估引入之后的工作重点或者说工作内容,主要集中在业务层应用的容器化上面,这个过程需要业务开发人员完成或者是配合
那么问题来了?能不能容器化?
我觉得肯定是可以的,不管客户提供环境怎么变,我们总能提供一种建立在这种环境上的部署方式,这就是云原生的好处。至于像分布式存储这样的问题,如果底层不能提供,我们也不可能凭空造,只是说我们提供一种良好的接入方式,通过rancher上面去新建storageclass。
rancher初体验
rancher官方提供quick start的方式去简单开启rancher之旅
1.在主机上执行以下Docker命令,完成Rancher的安装与运行:
sudo docker run --privileged -d --restart=unless-stopped -p 80:80 -p 443:443 -v <主机路径>:/var/lib/rancher/ rancher/rancher:stable
2.打开浏览器,输入https://<安装容器的主机名或IP地址>,您即可以访问Rancher Server的UI了。跟随用户界面给您的引导,即可设置完成您的第一个Rancher集群。
查看容器id
$ docker ps
获取登陆密码
$ docker logs cf62 2>&1 | grep "Bootstrap Password:"
2021/12/23 08:17:20 [INFO] Bootstrap Password: cgntfxnwrdtfg574vr2r8x7ccldkkjjk88vvqvwjv85x6xwtb4d2rg
登陆成功后,需要手动配置新的密码和url,这些都跳过,继续,自动跳转到dashboard
选择管理集群
这里可以看到平台已经为我们部署了单机版k3s
点击创建新的集群,选择平台,这里我们选择自定义
选择已有的节点
对其进行一系列客制化的选项后,选择下一步
我们手头拥有3个节点,所以是1个master和2个node
根据节点角色添加对应选项
主节点需要添加etcd和control
node节点只需要勾选work即可
下方会自动生成对应的docker run指令
点击右侧copy to clipboad,到对应节点执行即可
容器会为我们自动部署集群,包括kubelet在内的所有k8s组件,都会以容器的方式启动
等待5-10分钟,集群从变为active状态后,进入集群,点击应用商店
发现这里的应用都是以charts包的形式发布,helm仓库是公网上的rancher仓库
默认的Rancher官方认证和社区贡献的应用商店内容有限,应用还不够丰富,基本上都是网络和存储等基础的应用;个别应用部署后,无法通过相同的操作,再部署同样的另一套应用,比如Rancher NFS
但是瑕不掩瑜,rancher的众多优点仍然让它成为最流行的k8s管理平台之一
我们安装一个监控系统体验看看
安装完毕后,直接通过导航栏的监控tag就能进入
可以看到这里不仅支持到各个监控组件的超链接,还支持servicemonitor的查看,告警对象和路由的配置和管理,rules的增删改查,极大地为我们监控、告警方面的运维提供了便利。
好了,关于rancher的简单实用就到这里结束了。我还了解到rancher labs团队开源了另外一款k8s管理平台:octopus。它是一个面向Kubernetes及K3s的轻量级扩展控制器,旨在帮助用户管理边缘场景的IoT设备,当然我还没具体上手使用体验,这里就先不扩展了。
接下来或许要投入到golang的学习中啦,嘻嘻。