您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    怎样为 k8s 找到最适宜的 PaaS 处置方案?
    时间:2020-05-08 21:10 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    行将开播:5月14日,Jenkins在K8S下的三种部署流程和实战演示

    怎样为 k8s 找到最适宜的 PaaS 处置方案?

    最近几年,Kubernetes 成为许多人关注的焦点。理想上,有些公司发现 Kubernetes 能发扬庞大作用,但有些公司还未发现其价值,并在这个进程中将本人搞得“遍体鳞伤”。对我来说,我正处于中间位置。我计划做相似事情,并且做好了踩坑预备。在此之前,先让我们看看如何在 k8s 上部署一个复杂的、相似于 PaaS 的平台。

    1. 找到一个完美的类 PaaS 平台

    那么,我们从哪里末尾?一定有一种复杂办法能找到这样的东西,也许,我们从复杂的 DuckDuckGo 搜索末尾。

    怎样为 k8s 找到最适宜的 PaaS 处置方案?

    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)