Helm 3 终于发布了。我们可以告别 Tiller 了,但 Helm 3 的改变不仅于此。让我们继续探讨其他的变化。
1. 告别 Tiller
Helm 3 移除了 Tiller ,是个不错的决定。但是要理解为什么不错,我们还需要了解一下 Tiller 产生的背景。Tiller 是 Helm 的服务端组件(运行在 Kubernetes 集群上),主要目的是为了让多个不同的操作者能够在同一个集群上操作。开发 Helm 2 时,由于 Kubernetes 没有基于角色的访问控制(RBAC),Helm 不得不自己控制谁、在哪里能够安装应用。直到 Kubernetes 1.6 中开启了 RBAC ,这件事就变得简单了。Helm 也不必与 Kubernetes 做重复的事情,因此 Helm 3 彻底移除了 Tiller 。Tiller 作为维护 Helm 应用信息和状态的核心。Helm 3 直接从 Kubernetes API Server 就可以获取到相同的信息,并且在客户端呈现 Charts 。对于 Kubernetes 来说,这种方式更加简单而原生。移除 Tiller 之后,Helm 的安全模型也变得简单(使用 RBAC 来控制生产环境 Tiller 的权限非常不易于管理)。Helm 3 使用 kubeconfig 鉴权。集群管理员针对应用,可以设置任何所需级别的权限控制,而其他功能保持不变。
2. 好吧,除了 Tiller ,还有什么改变?
正如前面提到的,移除 Tiller 是一件大事,但不是唯一的一件。让我们看看其他的。
2.1 三路合并补丁策略
Helm 2 使用的是两路合并补丁策略。也就是,当你想执行任何 helm 操作时,比较最新的 chart 包与期望的 chart 包配置。这两个包之间的不同,决定了应该调整 Kubernetes 中的哪些资源。听起来不错,对吗?但是没有考虑手动修改应用的情况(例如,使用 kubectl edit)。这将导致应用无法回滚到之前的状态,因为 Helm 2 将最新的 chart 包当做最新的状态,而最新的 chart 包里面没有改变(我们只是更新了应用在集群的状态),Helm 2 忽略了这一变化的回滚。三路策略合并补丁可以解决这个问题。Helm 3 是如何做的呢?它只是多考虑了应用的线上状态(使用三路替代两路,旧的配置,线上状态,新的配置)。例如,假设你部署了一个应用:
1
|
helm install very_important_app ./very_important_app
|
kubectl scale -replicas=0 deployment/very_important_app
|
helm rollback very_important_app
|
containers:
- name: server
image: my_app:2.0.0
|
containers:
- name: server
image: my_app:2.0.0
- name: istio-sidecar
image: istio-sidecar-proxy:1.0.0
|
containers:
- name: server
image: my_app:2.1.0
|
containers:
- name: server
image: my_app:2.1.0
- name: istio-sidecar
image: istio-sidecar-proxy:1.0.0
|
相关推荐
在之前的一篇文章中有讲过zabbix之Graphtrees,这里不在重复描述,总而言之zabbix中Graphtrees还是比较好用的github链接 升级3.0.2到3.0.4 1,下载release [root@LinuxEA local]# yum install http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3
1、Kong的概述 Kong是一个clould-native、快速的、可扩展的、分布式的微服务抽象层(也称为API网关、API中间件或在某些情况下称为服务网格)框架。Kong作为开源项目在2015年推出,它的核心价值是高性能和可扩展性。Kong被广泛用于从初创企业到全球5000家公司以及政府组织的生产环境中。 如果构建Web、移动或IoT(物联网)应用,可能最终需要使用通用的功能来实现这些应用。K
- 部署 Ingress Controller 查看 Kubernetes 版本 1 2 3 4 kubectl version --short Client Version: v1.21.4 Server Version: v1.21.4 查找兼容的 Nginx Ingress 版本 Helm Chart version Helm Chart 最高可用版本 K8s 适配版本 3.x.x 3.3
本文为翻译文章,点击查看原文。 在今年的哥本哈根 Kubecon 大会上,Weaveworks 的 CEO Alexis Richardson 与 Varun Talwar(来自一家隐形创业公司)谈到了 GitOps 工作流程和 Istio。会后 Weaveworks 的 Stefan Prodan 进行了的演示,介绍如何使用 GitOps 上线和管理 Istio 的金丝雀部署。 会谈和演示中解释
您是否应该让多个团队使用同一个 Kubernetes 集群? 您是否可以安全地运行来自不信任用户的不信任工作负载? Kubernetes 是否具备多租户功能? 本文将探讨在运行具有多个租户的集群时面临的挑战。 多租户可分为: 软多租户,适用于信任您的租户 - 比如与同一家公司的团队共享集群时。 硬多租户,适用于您不信任的租户。 您还可以混合使用! 在租户之间共享集群的基本构建块是命名空间。 命名空
回到顶部