

一个由 Kubernetes 驱动的 PaaS 系统 - Porter
source link: https://www.51cto.com/article/706714.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Porter 是一个由 Kubernetes 驱动的 PaaS 系统,可以在你自己的云供应商中运行。Porter 尝试将 Heroku 的使用经验带到你自己的 AWS/GCP 账户中,同时将你的基础设施升级为 Kubernetes。
像 Heroku 这样的传统 PaaS 非常适合最大限度地减少不必要的 DevOps 工作,但随着应用程序的增长,它并不能提供足够的灵活性。自定义网络规则、资源限制和成本是开发人员将其应用程序从 Heroku 迁出的常见原因。
Porter 为你自己的云提供商带来了传统 PaaS 的简单性,同时保留了 Kubernetes 的可配置性。Porter 建立在流行的 Kubernetes 包管理器 helm 之上,并与 kubectl 等标准 Kubernetes 管理工具兼容,从一开始就为成熟的 DevOps 工作做好了准备。只需要点击几下即可将应用程序部署到你的云提供商中,Porter 将为你配置和管理底层基础架构 - 只需指向你的存储库,Porter 将处理其余的工作,从构建你的应用程序到自动扩展它。
在底层,Porter 运行在 Kubernetes 之上。Porter 配置和管理每个云提供商的原生 Kubernetes 产品(AWS 上的 EKS、GCP 上的 GKE 和 Digital Ocean Kubernetes),同时抽象出所有的复杂性。
可能你会觉得 Porter 在 Kubernetes 之上运行太过复杂,对于不了解 Kubernetes 的团队来说,Kubernetes 会有一定的门槛。除了一些基本概念之外,你不需要了解任何关于 Kubernetes 的知识即可使用 Porter。Kubernetes 恰好是提供 PaaS 体验的最佳底层。事实上,大多数 PaaS 实际上都是在 Kubernetes 之上运行的,尽管这些细节对最终用户来说是隐藏的。如果你的团队已经熟悉 Kubernetes,Porter 可以成为简化你现有操作的内部部署平台。
- 可以在自己的云控制台中一键开通 Kubernetes 集群:AWS、GCP、Digital Ocean。
- 简单部署任何公共或私有的 Docker 镜像。
- 为非容器化应用使用 buildpacks 进行 CI/CD。
- 类似于 Heroku 的操作界面,用于监控应用程序状态、日志和历史记录。
- 应用程序可以方便回滚到以前部署的版本。
- 零宕机部署和健康检查。
- 监控每次部署的 CPU、内存和网络使用情况。
- 一键式插件市场(例如 MongoDB、Redis、PostgreSQL)。
对于熟悉 Kubernetes 和 Helm 的用户:
- 可以将现有 Kubernetes 集群直接连接到 Porter 使用。
- 通过界面可视化、部署和配置 Helm Charts。
- 深入了解版本,包括修订历史和组件图。
- 回滚/更新现有版本,包括编辑原始 values.yaml 文件。
最简单的方式就是直接使用 Porter 提供的在线云服务 https://dashboard.getporter.dev/,直接登录注册。然后创建一个项目并配置你的云服务商的相关凭证,Porter 会在你的云服务中自动配置 Kubernetes 集群。
如果你没有云服务商也可以连接现有的 Kubernetes 集群,下载 Porter CLI 工具,然后将你现有 Kubernetes 集群的 kubeconfig 连接到 Porter 即可:
配置上 Kubernetes 集群后就可以选择部署服务,支持 Web 服务、Worker 与 Job 任务:
比如选择一个 Web 服务,如果你连接了 GitHub,那么可以选择部署一个仓库,也可以直接指定一个 Docker 镜像地址:
如果你使用的 Porter 的云服务,部署完成后会为你的应用自动添加一个二级域名,通过该地址即可访问到部署的服务:
如果你的集群中安装了 Prometheus,还可以对应用进行监控:
而且还可以配置自动扩缩容:
如果你需要本地进行开发测试,可以直接 Clone 仓库代码:
git clone https://github.com/porter-dev/porter
然后执行 make start-dev 命令即可在本地启动服务,不过需要在 docker/.env文件中添加下如下两个环境变量,否则本地启动后无法正常使用:
WELCOME_FORM_WEBHOOK=https://www.qikqiak.com
DISABLE_ALLOWLIST=true
关于 Porter 的更多信息可以查看官方文档 https://docs.porter.run 了解更多信息。
仓库地址:https://github.com/porter-dev/porter。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK