行将开播:5月14日,Jenkins在K8S下的三种部署流程和实战演示
最近几年,Kubernetes 成为许多人关注的焦点。理想上,有些公司发现 Kubernetes 能发扬庞大作用,但有些公司还未发现其价值,并在这个进程中将本人搞得“遍体鳞伤”。对我来说,我正处于中间位置。我计划做相似事情,并且做好了踩坑预备。在此之前,先让我们看看如何在 k8s 上部署一个复杂的、相似于 PaaS 的平台。
1. 找到一个完美的类 PaaS 平台那么,我们从哪里末尾?一定有一种复杂办法能找到这样的东西,也许,我们从复杂的 DuckDuckGo 搜索末尾。
DuckDuckGo 搜索没啥用
显然,k8s 不是 PaaS。我想基于 k8s 构建一个 PaaS,当然不是把它当作一个 PaaS 来运用。
然后,我们在 HackerNews 上搜索一下。第一个查询找到一篇失效文章。此外,我在 GitHub 上偶然发现一个很棒的列表。
https://github.com/ramitsurana/awesome-kubernetes
在停止更普遍的搜索后,我针对本人的运用场景列出一个能够的候选项目列表。
Knative
OpenFaaS Cloud
Convox
Garden
Rio
还有很多其他选择,我尝试过其中一些,还有一些是针对大企业的。
2. 我的运用场景在 Quest Vault ,我们在 DigitalOcean droplet 上安装一个复杂的 Wordpress 来运转我们的电商网站。虽然能经过运转一些复杂的 bash 脚本完成部署,并在本地运转测试 / 过渡效劳器的正本,但是,我想构建一个基于行业技术的平台,而不是一些 bash 脚本。编写这些 bash 脚本很幽默,并且拥有本人的部署技术栈也很复杂,但是,我希望 Quest Vault 能拥有一个“豪华些”的东西,一个标准的、让我们不必为运用的工具操心的东西。
https://questvault.net/
如今,我想在办公室运转 k3s 的 garbage server 上测试这些项目。K3s 有一个到 DigitalOcean droplet 的反向代理,而不是在互联网上拜访。这意味着项目应该支持外部部署。
https://k3s.io/
我还希望能完全笼统出 k8s。这意味着我不想处置太多的 yaml 或许不缎揽署 helm charts,我想多思索下运用顺序,并且经过 CLI 就可以做到。
简而言之:我想要的是,只需按一个按钮,它就任务。
我们的运用顺序有很多活动组件,有些只是复杂脚本,有些则是为游戏客户端提供通讯的大型运用顺序。不管是什么,我们的平台需求支持少量不同的运用顺序类型。这通常意味着支持经过 Dockerfile 停止部署。
我们方案运转的大少数运用顺序都与形状亲密相关。以 Wordpress 为例,我们需求一个存储图片的中央。我们还有很多需求存储的运用内照片拍摄。我们需求一种办法使我们的运用顺序具有某种方式的耐久化。
我喜欢的项目很多,但是一个好项目和一个伟大项目的区别在于社区和行业的采用。拥有本人的 bash 脚本和在 GitHub 上有 3 个活动用户的项目简直没有区别。假设你搞砸了,或许无论出于什么缘由需求一些建议,你都希望能从一个生动的社区取得协助。
3. 项目清单速览Knative
我的 Knative 阅历有一个不错的扫尾!当读过关于它的文章后,我很快乐地得知:我能运转一个平台,谷歌在其平台外部就把它用于他们本人的相似 PaaS 的部署。思索到谷歌发明了 k8s,这一定十分适宜!它的安装进程比预期困难得多。
https://knative.dev/docs/install/any-kubernetes-cluster/
似乎没有什么复杂办法来安装这个平台,而且,无法轻松地运用一个平台会是未来的一个风险。
OpenFaaS Cloud
安装十分复杂!我很快就让这个平台运转了起来。它满足我的大少数需求,不过,它似乎更像是完成 OpenFaas 的一种幽默方式,而不是完全成熟的 PaaS 可选方案。我不知道如何将我们的用例放到这个特别的平台上。假设你正在搭配运用耦合度比较低的项目或比较小的功用,这是一个很好的选择!
Convox
Convox 看起来很棒!几名前 Heroku 工程师,在 k8s 上构建的一个平台。似乎完美!我想尝试一下,马上就末尾在 DigitalOcean k8s 集群上部署它。开发体验十分棒!
但是,他们似乎并不支持平台的外部部署版本。此外,除一些早期采用者外,这个项目似乎没有一个十分大的社区。相比而言,这个项目不是很知名,最终我保持它,去寻觅另一种选择。
Garden
这是一个十分酷的项目。我喜欢它,一家小型的独立公司开发的一个创新型处置方案。安装起来很复杂,而且他们的办法对 k8s 做了很好的笼统,但是他们也允许你经过经典的 k8s 方式来保持某种方式的控制,比如 yaml 文件。我真的很情愿用它,效果很好!
但是,我确实留意到,它的一些 CLI 还不是很完善,但是,我以为这只是些小瑕疵,并不能代表最终产品。
Rio
这个项目契合一切条件。一个真正容易运用的 CLI?是的。不再以任何方式与 k8s 交互?是的。运用 Dockerfile 停止部署?是的!它们还提供了少量其他平台没有完成或完成得很差的特性。来自 Rancher 的 Rio 似乎从他们生动的社区失掉了少量支持。
https://rancher.com/blog/2019/rio-revolutionizing-the-way-you-deploy-apps
在 garbage server 上停止安装设置
我快速地为 k3s 实例设置好反向代理,并末尾设置 Rio。
参照他们 GitHub 页面上的快速入门指南,这个进程变得超级复杂:
# Setting up the reverse proxy to k3s
ssh -nNTL 6443:localhost:6443 droplet &
# Installing Rio
curl -sfL https://get.rio.io | sh -
# Running the example project
rio run https://github.com/rancher/rio-demo
这样就行。我超级激动,希望马上看一下,现有的基础设备能否异样轻松地迁移。
(责任编辑:admin)