kubernetes 部署

Deploying applications to Kubernetes can be as simple as writing a few resource definitions in yaml or json and applying them with kubectl, but it can also be a whole lot more automated (and complicated).

将应用程序部署到Kubernetes就像在yaml或json中编写一些资源定义并将其与kubectl一起应用一样简单,但是它也可以自动化很多(并且很复杂)。

A popular meme in application deployment is the combination of Continuous Deployment and GitOps: the automatic deployment of resources after each change to the source code. In order to for you to use GitOps to deploy applications to Kubernetes, you need several things:

在应用程序部署中,一个流行的模因是持续部署和GitOps的结合:每次对源代码进行更改后,资源都会自动部署。 为了使您能够使用GitOps将应用程序部署到Kubernetes,您需要执行以下操作:

  • Container Image Building to build your source code and local dependencies into container images.

    容器映像构建,用于将源代码和本地依赖项构建到容器映像中。

  • Resource Templating to customize deployment resources for your environment(s).

    资源模板以为您的环境自定义部署资源。

  • Package Management to bundle multiple resources into versioned releases and manage package dependencies.

    软件包管理可将多个资源捆绑到版本发布中,并管理软件包依赖性。

  • Continuous Deployment to roll out new changes to your environment(s), often using a pipeline of steps and stages.

    连续部署通常使用一系列步骤和阶段来对您的环境进行新的更改。

  • Imperative Deployment to manage complex service lifecycles programmatically and reduce manual or fragile scripted steps.

    强制性部署可通过编程方式管理复杂的服务生命周期,并减少手动或易碎的脚本步骤。

  • Autoscaling to manage the replication and resource allocation of your application over time, based on usage and consumption.

    自动缩放可根据使用情况和使用情况随时间管理应用程序的复制和资源分配。

In this article, I have listed many tools (both popular and obscure) for each of these stages in application lifecycle management. Since it’s hard to judge popularity or success objectively, I’ve tried to annotate these tools in a way that makes it easy to see which big corporate backers have invested in these projects. Keep in mind, a large cloud backer may have multiple competing investments, so just because it has a known investor doesn’t mean it will survive and thrive in the long term.

在本文中,我列出了应用程序生命周期管理中每个阶段的许多工具(流行的和晦涩的)。 由于很难客观地判断受欢迎程度或成功程度,因此我尝试对这些工具进行注释,以使其易于查看哪些大型企业支持者已在这些项目上进行了投资。 请记住,一个大型的云支持者可能会有多个竞争投资,因此,仅仅因为它拥有一位知名的投资者,并不意味着它可以长期生存和发展。

Hopefully this list will give you a place to start when searching for solutions to your application deployment problems.

希望该列表将为您寻找应用程序部署问题的解决方案提供一个起点。

集装箱形象建设 (Container Image Building)

  • Moby / buildkit (Docker) — A toolkit for converting source code to build artifacts.

    Moby / buildkit (Docker)-用于将源代码转换为构建工件的工具包。

  • kaniko (Google) — A tool to build container images from a Dockerfile, inside a container or Kubernetes cluster.

    kaniko (Google)—一种从Dockerfile构建容器或Kubernetes集群内部的容器映像的工具。

  • img (Jess Frazelle) — A standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder.

    img (Jess Frazelle)—一个独立的,无守护进程的,无特权的Dockerfile和OCI兼容的容器映像生成器。

  • buildah (IBM/Red Hat) — A tool that facilitates building Open Container Initiative (OCI) container images.

    buildah (IBM / Red Hat)—一种工具,用于构建开放式容器计划(OCI)容器映像。

  • Source-To-Image (IBM/Red Hat) — A tool for building artifacts from source and injecting into container images.

    源到图像 (IBM / Red Hat)—一种用于从源构建工件并将其注入到容器图像中的工具。

  • Tanzu Build Service / kpack / pack (VMware/Pivotal) — A CLI and service for building apps using Cloud Native Buildpacks.

    Tanzu Build Service / kpack / pack (VMware / Pivotal)—用于使用Cloud Native Buildpacks构建应用程序的CLI和服务。

  • Carvel / kbld (VMware/Pivotal) — A service for building and pushing images into development and deployment workflows.

    Carvel / kbld (VMware / Pivotal)—用于将映像构建并推送到开发和部署工作流中的服务。

  • Google Cloud Buildpacks (Google) — Builders and buildpacks designed to run on Google Cloud’s container platforms.

    Google Cloud Buildpacks (Google)-旨在在Google Cloud的容器平台上运行的生成器和buildpack。

  • Makisu (Uber) — A fast and flexible Docker image building tool, that works in unprivileged containerized environments like Mesos and Kubernetes.

    Makisu (Uber)—一种快速,灵活的Docker映像构建工具,可在Mesos和Kubernetes等无特权的容器化环境中工作。

资源模板 (Resource Templating)

  • Helm (Microsoft, Google) — A Kubernetes Package Manager

    Helm (Microsoft,Google)— Kubernetes程序包管理器

  • Kustomize (Google, Apple) — A CLI to customize raw, template-free YAML files, leaving the original YAML untouched and usable as-is.

    Kustomize (Google,Apple)-一种CLI,用于自定义原始的,无模板的YAML文件,而原始的YAML则保持不变并可以使用。

  • Carvel / ytt (VMware/Pivotal) — A YAML templating tool that works on YAML structure instead of text

    Carvel / ytt (VMware / Pivotal)—一种YAML模板工具,可在YAML结构而不是文本上运行

  • jsonnet / go-jsonnet (Google) — A JSON templating language.

    jsonnet / go-jsonnet (Google)-一种JSON模板语言。

  • gomplate (Dave Henderson) — A CLI for golang template rendering, supporting local and remote datasources.

    gomplate (Dave Henderson)—用于golang模板渲染的CLI,支持本地和远程数据源。

  • Mustache (Github) — A framework-agnostic JSON templating engine.

    Mustache (Github)-与框架无关的JSON模板引擎。

包装管理 (Package Management)

  • Helm (Microsoft, Google) — A Kubernetes Package Manager

    Helm (Microsoft,Google)— Kubernetes程序包管理器

  • Cloud Native Application Bundles (CNAB) / Porter / Duffle (Microsoft/Deis, Docker) — A package format specification, bundler, and installer for managing cloud agnostic distributed applications.

    云原生应用程序捆绑(CNAB) / 波特 / 粗呢 (微软/ DEIS,泊坞窗) -一个封装格式规范,捆绑,并安装用于管理云无关的分布式应用程序。

持续部署 (Continuous Deployment)

  • Spinnaker (Netflix, Google) — A multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.

    Spinnaker (Netflix,Google)—一种多云连续交付平台,用于以高速度和信心发布软件更改。

  • Terraform Kubernetes Provider (Hashicorp) — A Terriform plugin that enables full lifecycle management of Kubernetes resources.

    Terraform Kubernetes Provider (Hashicorp)—一个Terriform插件,可以对Kubernetes资源进行完整的生命周期管理。

  • Concourse (VMware/Pivotal) — A container-based continuous thing-doer written in Go and Elm.

    Concourse (VMware / Pivotal)-用Go和Elm编写的基于容器的连续事务处理程序。

  • JenkinsX (CloudBees) — An automated CI/CD for Kubernetes with preview environments on pull requests using Tekton, Knative, Lighthouse, Skaffold and Helm

    JenkinsX (CloudBees)—用于Kubernetes的自动化CI / CD,具有使用Tekton , Knative , Lighthouse , Skaffold和Helm的拉取请求的预览环境

  • Argo CD (Intuit) — Adeclarative, GitOps continuous delivery tool for Kubernetes.

    Argo CD (Intuit)—用于Kubernetes的说明性GitOps连续交付工具。

  • Tekton / Tekton Pipelines (Google) — A Kubernetes controller providing CI/CD-style pipeline resources.

    Tekton / Tekton管道 (Google)-Kubernetes控制器,提供CI / CD样式的管道资源。

  • Cloud Build (Google) — A service that executes builds on Google Cloud Platform infrastructure.

    Cloud Build (Google)-在Google Cloud Platform基础架构上执行构建的服务。

  • Skaffold (Google) — A CLI that facilitates continuous development for Kubernetes applications.

    Skaffold (Google)—一种CLI,可促进Kubernetes应用程序的持续开发。

  • Azure DevOps / Azure Pipelines (Microsoft) — A cloud service that automatically builds and tests your project code and makes it available to other users.

    Azure DevOps / Azure Pipelines (Microsoft)—一种云服务,可自动构建和测试您的项目代码并将其提供给其他用户。

  • Brigade (Microsoft) — Event-based Scripting for Kubernetes.

    Brigade (Microsoft)-Kubernetes的基于事件的脚本。

  • Habitat / habitat-operator (Chef) — A Kubernetes controller that runs and manages Habitat Services on Kubernetes.

    栖息地 / 栖息地运营商 (Chef)— Kubernetes控制器,用于运行和管理Kubernetes上的栖息地服务。

  • gitkube (Hasura) — A tool for building and deploying Docker images on Kubernetes using git push.

    gitkube (Hasura)—使用git push在Kubernetes上构建和部署Docker映像的工具。

强制部署 (Imperative Deployment)

  • Kubebuilder (CNCF, Google, Apple, IBM/Red Hat) — An SDK for building Kubernetes APIs (and controllers and operators) using CRDs.

    Kubebuilder (CNCF,Google,Apple,IBM / Red Hat)—一个使用CRD构建Kubernetes API(以及控制器和操作员)的SDK。

  • Operator Framework / Operator SDK (IBM/Red Hat/CoreOS) — An SDK for building Kubernetes application operators.

    Operator Framework / Operator SDK (IBM / Red Hat / CoreOS)-用于构建Kubernetes应用程序运营商的SDK。

  • Pulumi (Pulumi) — An Infrastructure as Code SDK for creating and deploying cloud software that use containers, serverless functions, hosted services, and infrastructure, on any cloud.

    Pulumi ( Pulumi )—基础架构代码SDK,用于在任何云上创建和部署使用容器,无服务器功能,托管服务和基础结构的云软件。

  • Carvel / kapp / kapp-controller (VMware/Pivotal) — A CLI and Kubernetes controller for installing configuration (helm charts, ytt templates, plain yaml) as described by App CRD.

    Carvel / kapp / kapp-controller (VMware / Pivotal)-一个CLI和Kubernetes控制器,用于安装App CRD所述的配置(头盔图表,ytt模板,纯Yaml)。

  • Isopod (Cruise) — An expressive DSL and framework for Kubernetes resource configuration without YAML.

    Isopod (Cruise)-用于不使用YAML的Kubernetes资源配置的表达性DSL和框架。

自动缩放 (Autoscaling)

  • Horizontal Pod Autoscaler (built-in) — A Kubernetes controller that automatically scales the number of pods in a replication controller, deployment, replica set or stateful set based on a configured metric.

    水平Pod Autoscaler (内置)— Kubernetes控制器,可根据配置的指标自动缩放复制控制器,部署,副本集或有状态集中的Pod数量。

  • Vertical Pod Autoscaler (Google) — A set of Kubernetes components that automatically adjusts the amount of CPU and memory requested by pods running in the Kubernetes Cluster.

    垂直Pod自动缩放器(Google)-一组Kubernetes组件,可自动调整Kubernetes集群中运行的Pod请求的CPU和内存量。

  • Addon Resizer (Google) — A simplified version of vertical pod autoscaler that modifies resource requests of a deployment based on the number of nodes in the Kubernetes Cluster.

    Addon Resizer (Google)-垂直Pod自动缩放器的简化版本,可根据Kubernetes集群中的节点数修改部署的资源请求。

  • KEDA (Microsoft) — A Kubernetes-based Event Driven Autoscaling component.

    KEDA (Microsoft)—一个基于Kubernetes的事件驱动自动缩放组件。

  • Watermark Pod Autoscaler Controller (DataDog) — A custom controller that extends the Horizontal Pod Autoscaler (HPA).

    水印盒式自动缩放器控制器 (DataDog)—扩展了水平盒式自动缩放器(HPA)的自定义控制器。

  • Pangolin (Damian Peckett) — An enhanced Horizontal Pod Autoscaler for Kubernetes that scales deployments based on their Prometheus metrics, using a variety of highly configurable control strategies.

    Pangolin (Damian Peckett)—一种增强的Kubernetes卧式Pod自动缩放器,它使用多种高度可配置的控制策略,根据Prometheus指标来缩放部署。

  • Predictive Horizontal Pod Autoscaler (IBM) — A custom pod autoscaler, similar to Horizontal Pod Autoscaler, however with added predictive elements.

    Predictive Horizo​​ntal Pod Autoscaler (IBM)-定制的Pod Autoscaler,类似于Horizo​​ntal Pod Autoscaler,但是增加了预测元素。

  • Horizontal Pod Autoscaler Operator (Banzai Cloud) — A Kubernetes controller that watches Deployments or StatefulSets and automatically creates HorizontalPodAutoscaler resources, based on autoscale annotations.

    Horizo​​ntal Pod Autoscaler Operator (Banzai Cloud)—一个Kubernetes控制器,它监视部署或StatefulSet,并根据自动缩放注释自动创建Horizo​​ntalPodAutoscaler资源。

到底… (In The End…)

As any DevOps advocate will tell you, it’s not about the tools but about the mindset. No one tool will give you an end to end application lifecycle management experience that delights you, because everyone uses their own permutation of tools, glued together with scripts and integration code.

正如任何DevOps倡导者会告诉您的那样,这与工具无关,而与观念有关。 没有一种工具可以给您带来端到端的应用程序生命周期管理体验,这会让您感到满意,因为每个人都使用自己的排列工具,并与脚本和集成代码粘合在一起。

You can look for tools that do one thing well, being easily replaceable and extensible, or tools that provide the most value, being less to manage, cheaper to integrate, and the best end to end user experience. There’s not really a wrong answer.

您可以寻找能够做一件事的工具,易于更换和扩展,或者提供最大价值,更少管理,更便宜的集成以及最佳端到端用户体验的工具。 没有真正错误的答案。

Because of those tradeoffs, it pays to look at who is behind each project, how many companies are investing, and how popular the tool is. Popular tools with large, diverse investors are more likely to keep growing as you use them, rather than stagnate and become abandoned, requiring you to replace the tool or replace the investment with your own time and energy.

由于存在这些折衷,因此有必要查看每个项目的幕后人物,投资的公司数量以及该工具的受欢迎程度。 拥有大型,多元化投资者的热门工具在您使用它们时更有可能保持增长,而不是停滞不前,而被遗弃,这需要您用自己的时间和精力替换工具或替换投资。

Hopefully, this taxonomy will be useful and provide you with a starting place as you consider your options. Good luck!

希望这种分类法会很有用,并为您提供了一个考虑起点的起点。 祝好运!

Did I forget your favorite tool? Leave a comment or let me know on Twitter!

我忘记了您最喜欢的工具吗? 发表评论或在Twitter上告诉我!

翻译自: https://medium.com/@KarlKFI/compendium-of-kubernetes-application-deployment-tools-80a828c91e8f

kubernetes 部署


http://www.taodudu.cc/news/show-4384217.html

相关文章:

  • ROS学习【2】-----ubuntu16.04中进行ROS通信编程(话题编程)
  • 1、ubuntu 安装docker
  • Flutter必备——Dart入门(下)
  • 固定利率,会是下一个异军突起的DeFi热点吗?
  • MongoDB,为何能在NoSQL家族里异军突起?
  • 2020年浙江理工大学新生赛 C Cly的三角形
  • 解决前端警告: Warning: Failed prop type: Invalid prop value of type number supplied to Textinput
  • cannot import name ContextVar
  • 如何生成Android的keystore文件
  • SpringBoot项目启动报错:Field userMapper in com.demo.controller.MemberController required a bean of type ‘c
  • mysql权限问题_Mysql 数据库的权限问题
  • VC++实现打开文件和打开所在文件夹的功能(附源码)
  • linux服务器配置磁盘阵列,Linux下的RAID配置和管理
  • Linux的LVM磁盘卷轴深度学习
  • Liunx磁盘管理——LVM
  • markdown插入本地图片小技巧
  • gvim使用基本技巧汇总
  • Latex使用技巧:插入动态图
  • Unity解析和读取文本—— txt 文件
  • 如何将xml格式转换为yolov5所需的txt格式
  • python 判断txt文件的编码格式
  • 拉取 trace.txt 进行 anr 分析
  • 02—测试用例内容包含、测试用例的设计点
  • 测试面试的流程
  • 漫画:5G 到底是个什么玩意儿?
  • 啊5G 你比4G多1G
  • 笑谈 5G,5G白话文
  • 初级测试小宝典 测试流程,不能复现bug,开发不认为是bug级2020测试点的热点提问的回答
  • outlook邮箱显示一直启动中_win10outlook邮箱怎么设置开机自动运行 - 卡饭网
  • win10去掉快捷方式小箭头_电脑一分钟小技巧:桌面快捷方式小箭头去除与恢复方法...

kubernetes 部署_kubernetes应用程序部署工具概述相关推荐

  1. 《ASP.NET 开发从入门到精通》----2.3 编译和部署ASP.NET程序

    本节书摘来自异步社区<ASP.NET 开发从入门到精通>一书中的第2章,第2.3节,著 张明星 ,责任编辑 张 涛, 更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  2. #16# SCCM管理 - 包和应用程序部署评估

    部署评估 本篇文章主要讨论ConfigMgr包与应用程序部署时的评估过程 当客户端从管理点(Management Point)拉取策略收到包或者应用程序部署信息后,会在自身的计算机或者用户策略中添加对 ...

  3. 使用Helm将ASP.NET Core应用程序部署到Kubernetes容器集群

    在<容器化单页面应用中RESTful API的访问>以及<容器化单页面应用中Nginx反向代理与Kubernetes部署>两篇文章中,我介绍了一套容器化ASP.NET Core ...

  4. asp网上书店的代码_使用Helm将ASP.NET Core应用程序部署到Kubernetes容器集群

    在<容器化单页面应用中RESTful API的访问>以及<容器化单页面应用中Nginx反向代理与Kubernetes部署>两篇文章中,我介绍了一套容器化ASP.NET Core ...

  5. SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(工具部署)

    作者 | 孤弋  阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作. 导读:上一篇文章<SpringCloud 应用在 Kubernetes 上的最佳实践 - 部署篇(开发部署)&g ...

  6. Kubernetes的四种用户部署场景

    http://www.dockone.io/article/2359 Kubernetes可以作为容器编排引擎.PaaS或者作为云原生应用的核心基础架构被用户部署到生产环境.这些用例并不是相互排斥的. ...

  7. 如何将Felgo程序部署到Android中

    概述 经过前面两篇文章的描述,我们知道了Felgo的大致应用,Felgo支持跨平台 windows.macos.Linux以及移动平台Android.IOS.Windows Phone和Windows ...

  8. javascript入门_Netlify入门:部署JavaScript应用程序的最简单方法

    javascript入门 If you follow articles, podcasts, etc. related to Web Development, you've probably at l ...

  9. Kubernetes的四种用户部署场景,你知吗?

    Kubernetes可以作为容器编排引擎.PaaS或者作为云原生应用的核心基础架构被用户部署到生产环境.这些用例并不是相互排斥的.DevOps可以委托基于Kubernetes的PaaS层完成整个应用生 ...

最新文章

  1. 美多后台管理和项目环境搭建
  2. C语言实现二进制文件读写
  3. 美团外卖商家端视频探索之旅
  4. 查看windows下系统信息
  5. 嵌入式码农的10年Bug调试经验,值得一看
  6. cmd chcp命令切换字符格式UTF8
  7. Apache Kafka 不需要管理员:删除 Apache ZooKeeper 的依赖
  8. 抖音回应李小璐PGone视频曝光:草稿视频不会上传到后台
  9. ArcGIS Engine中如何获取Map中已经选择的要素呢(转)
  10. 【模块学习】关于磁力计HMC5883L型号探索
  11. 搭建一个基于 Vue + Vant 的移动端项目模板
  12. 在UBUNTU 13.1 中使用五笔拼音混合输入法
  13. 计算机网络职业评估报告,计算机网络技术专业个人职业生涯规划书.doc
  14. Prometheus-----1
  15. 通过cookie绕过验证码登录(绕过验证码)
  16. 怎么去搭建聚合支付系统比较划算
  17. TPS和QPS 并发量区别;日活 访问量 活跃度
  18. 推荐一些非常好用的网盘搜索神器
  19. java提示系统找不到指定路径怎么解决?
  20. 痛苦与反思:想提升自己,却不知道该如何做

热门文章

  1. 什么是OpenID?OpenID概念、原理和案例
  2. XP系统封装-2011年
  3. Chrome DevTools 使用详解
  4. Chromedriver 安装
  5. Feature系列-GIST
  6. 阿里云后台部署全过程-1-云服务申请与配置
  7. 【已解决】Unknown error 1146
  8. LeetCode 字符串(简单题)
  9. 如何向数组里添加元素
  10. 最大似然估计,最大后验估计,贝叶斯估计联系与区别