展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 系统应用 > 从来不懂K8s的人10分钟内将应用跑在了K8s中

从来不懂K8s的人10分钟内将应用跑在了K8s中

大家可能都听说过 K8s 或者 docker ,可能有容器编排的概念,知道这会提高运维效率,但是由于上手难度高迟迟没有学习它。今天我以自己的实际经历教大家将自己的应用在10分钟内部署到k8s中,你不需要懂任何的 docker 命令和 k8s 命令就能管理应用。就是这么酷~背景2019年疫情的影响,大

本文目录

    大家可能都听说过 K8s 或者 docker ,可能有容器编排的概念,知道这会提高运维效率,但是由于上手难度高迟迟没有学习它。

    从来不懂K8s的人10分钟内将应用跑在了K8s中

    今天我以自己的实际经历教大家将自己的应用在10分钟内部署到k8s中,你不需要懂任何的 docker 命令和 k8s 命令就能管理应用。就是这么酷~

    背景

    2019年疫情的影响,大学生们纷纷开始在家上网课。然而,他们可能会遇到老师留下的作业问题,而不知道如何解决。同时,在进行百度搜索时,经常会遭遇许多广告的干扰。因此,我计划开发一款专门为大学生提供搜题功能的APP。

    最初,所有业务都被塞进一个jar包里。为了实现低耦合,我可是费了九牛二虎之力,才将其成功模块化。模块化之后,可能会划分成多个模块,比如文档模块、搜题模块、用户模块、网关模块等等。而微服务模块又离不开注册中心,为了应对突发流量,还引入了sentinel流量控制。随着应用越来越多,部署和管理也变得愈发棘手。

    为了解决这个问题,这时候我使用了 Jenkins 自动化构建与部署,自己手动部署了其他的依赖环境后,jar包的构建运行任务交给 Jenkins 来做。

    这时候我发现还有一些不满足需求的地方,我需要寻找一款全自动,可视化的运维工具。最终发现了 Rainbond 这个应用管理平台。

    这篇文章主要分享我探索全自动化运维的道路。

    Jenkins 自动化及其遇到的挑战

    懒惰是我进步的动力,为何不利用节约下来的时间多享受一会呢?

    思考中,我萌生了自动化部署和运行的想法。我本地提交到github,通过配置webhook,jenkins可以自动拉ja va代码并构建,最后分发到我指定的服务器上并运行。

    可以看到这是一连串的操作。确实节省很多时间,但是其中某个步骤出问题都会导致分发失败。

    我在想虽然构建运行自动化了,但是如果我的应用突然宕机了,那么我自己也不知道啊,只有用户来反馈的时候,我才能知道我网站原来进不去了。

    这时候我在想:是不是有一种工具可以检测应用是否在线呢?

    找到了很多可以检测应用是否在线的开源工具,应用宕机自动通知,但是,通知我有什么用呢?我在外旅游,我又无法去重新运行它。

    这时候我意识到,事情没有我想的那么简单!

    总结下可以分为以下几点:

    • 应用宕机,自己不知道,需要客户反馈?
    • 宕机后需手动重启?
    • 更新代码重新运行的时候有些应用启动时间比较长,造成服务中断,怎么样让新应用起来之后再关闭旧应用呢?
    • 查看日志的时候 不想登陆服务器执行 tail xxx。有没有支持点击查看应用日志的呢?
    • 流量太大,需要启动多个应用负载均衡?
    • 对于非 ja va 应用支持可能不友好。

    于是我开启了新的探索之路。

    追寻一款自动化运维工具

    Kubernetes(简称 K8s)名声在外,大家是否听说过?

    起初,我觉得 K8s 确实可以解决我当前的所有问题。但是,K8s的安装与学习成本非常高。

    可能我自己对它的概念不够清楚,但定位上我大致知道是方便运维的。因此为了能减轻我自己运维的负担,我开始百度,疯狂寻找 K8s 可视化工具,挺多的,但是很多都不维护了,这样子出了 bug 也没人能解决啊!

    Rainbond的诞生

    无意间发现了 Rainbond 平台,看其介绍发现不用懂 K8s 也可以把应用部署到 K8s 中, 并且实现可视化运维管理。

    而且其设计理念是:不需要懂 K8s 也能轻松管理容器化应用,平滑无缝过渡到 K8s。正好解决我的需求。

    K8s 运行的应用可能需要打 docker 镜像后编写复杂 yaml 文件,过程枯燥无味,并且新手上手难度高。

    而 Rainbond 为我们做了这件事,从源码到运行,全权负责,你只需要提供源码,Rainbond自动帮你运行起来。而且运行在自己的服务器,数据安全有保证。

    关键:它还是开源的!Github 地址:https://github.com/goodrain/rainbond

    安装Rainbond

    安装的时候,出乎意料之外的简单,只需要一句命令。而且 5 分钟就可以把平台全部运行起来,包括 K8s。这让我难以置信!!

    curl -o install.sh https://get.rainbond.com && bash ./install.sh

    部署自己的应用

    平台运行起来后,就需要部署我自己的应用了。

    我的业务大多围绕Ja va开发展开,以往我都得先打出Jar包,然后再去运行。至于docker镜像该怎么打,我可是从来没了解过。但当我使用Rainbond时,发现它对各种开发语言,像Ja va、NodeJS、Go、Python、Php等等,都有着相当出色的支持。只需要提供代码仓库地址,它就能自动把代码打包成镜像并运行起来。下面我就以自己的Ja va-Ma ven项目为例,来试试部署过程。

    把大象关进冰箱需要三步,而把我的代码运行到 K8s 上也只需要三步:输入代码仓库地址->调整构建参数->构建。

    1. 输入代码仓库地址

    首先我通过源代码构建,输入我自己的仓库地址,点击创建。出现提示:组件构建源检测中...大概不到30秒通过了。竟然自动识别了是ma ven项目。

    2. 调整构建参数(可选)

    在识别出我的代码是 Ja va-Ma ven 以后,点击下一步,会有详细的源码构建参数让我配置,主要包含 JDK 类型、JDK 版本、Ma ven 版本以及启动命令等参数。这些都是默认生成的,但是也可以根据自己的需求来修改。

    需要注意的点主要在于,在页面上配置端口时,这里的端口号需要与代码启动时的端口一致,也就是 server.port 配置的值。如果端口不对,可能会导致业务无法访问。如果不需要监听端口可直接删除,或者修改。

    3. 构建

    点击确认构建之后,可以查看构建日志,它会自动从 ma ven 仓库下载依赖,自动构建,再打包出镜像并运行到 K8s 上,大概 3 分钟左右就全部构建完成,而且成功运行了。此时点击页面右上角的访问,即可直接访问到我自己的业务了。

    此外,Rainbond 还有完善的监控页面,可以清楚知道 CPU 和内存的使用量。

    哦?还有应用的运行的实时日志?不错不错!看,这是熟悉的Spring日志呀!

    而且还在【其他设置】中找到了我梦寐已久的应用宕机自动重启。

    简单配置之后,检测应用是否宕机,宕机就可以重启应用,再也不用让客户来反馈网站进不去了!!!

    至此基本功能已经完全满足了我的需求,于是好奇的我再次点了一下构建。

    它会再次从 git 仓库拉代码,云端自动构建,构建成功之后自动运行。

    另外这里 Rainbond 考虑的很周到,在构建完成应用启动时,它会先运行新应用,新应用运行起来之后才会关闭旧应用!完美解决了我之前每次更新服务,都需要停机几分钟的问题。

    更多好玩的,自己去装一下试试,我就不一一介绍了,我去迁移应用去喽!

    • 更多功能请参考 Rainbond 官网:https://www.rainbond.com

    对比

    相比于之前传统运维任何操作都需要自己手动执行,繁琐又枯燥的问题。Jenkins 帮我解决了自动构建和自动部署的问题。而 Rainbond 则帮我解决了更新业务服务中断以及我应用过多后的管理问题。我简单做了个对比表格如下:

    任务传统运维jenkinsrainbond自动构建自动部署更新代码服务不中断弹性伸缩可视化监控日志集群

    如果你使用了 Rainbond 来管理应用,那么可以做到以下几点:

    • 应用自动构建部署运行,支持多语言源码。
    • 如果应用宕机了,Rainbond 可以帮我们检测出来,让他自动重启或者下线这个应用。
    • 我升级的时候,Rainbond 可以先开启新应用,然后再关闭旧应用,实现服务不中断。
    • 流量大的时候,他会自动负载均衡,帮我们再启动一个服务实例来实现负载均衡。
    • 并且还可以在 Rainbond 控制台查看某个应用的实时日志。

    转型成功

    从此,我写完代码,提交到 git 之后,webhook 通知了 Rainbond 平台,Rainbond 自动拉取代码,根据代码语言自动构建,然后打包成 docker 镜像,最后生成 K8s 所需要的 yaml 文件运行到 K8s 中,一键完成了应用的构建和部署。

    当然不仅仅是这些,Rainbond 还可以很方便的重启,停止,启动,构建应用。当我有些业务暂时不需要时,我还可以先关闭节省资源,需要时再一键启动即可。

    可视化的监控,可以监控应用的 CPU 使用量和内存使用量,非常之完美!

    并且还有很方便的web终端,可以直接进 linux 系统执行命令。

    之前我查看应用日志还要 ssh 连接服务器,进入日志目录执行 tail xx 命令,特别繁琐,并且我压根不知道应用占用的内存和 CPU 使用情况,对自己的应用状态一无所知,Rainbond 做到了全部可视化。

    节省的时间可以放心外出旅游了!再也不怕用户返回网站进不去了!

    下面是我自己的应用全部部署好以后的拓扑图。细心的小伙伴可能会发现,应用之间有连线,是有关联的,这是应用之间的依赖关系。如果 Ja va 应用依赖 mysql ,mysql 启动异常了,Ja va 应用是不会启动的,需要先启动 mysql 应用后才会启动 Ja va。Rainbond 启动应用时会严格按照应用的启动顺序来启动应用。

    而且绿色表示应用全都处于运行中,一旦哪个服务出现问题,这里就会变成红色,一目了然。

    Rainbond 官网:https://www.rainbond.com

    Github 地址:https://github.com/goodrain/rainbond

    钉钉群:30885018060

    微信群:添加小助手微信拉你进群

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    系统应用
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。