Rancher 2.3.0 版本于 2019 年 10 月 8 日发布。本文介绍了 Rancher 2.3.0 相较上一版本(2.2)的重大改动、新增的实验性功能、已修复的问题和已知问题。点击这里查看英文版版本说明。
重要说明
在升级到 v2.3.0 时,第一次修改通过 Rancher v2.3.0 之前版本部署的 RKE 集群时,由于要向系统组件中加入 Tolerations,该集群全部的系统组件将会自动重启。升级前请预先做好数据备份。
如果您的 Rancher HA 在使用 低于 v0.9.1 的 cert-manager,并且是自签名证书,由于 cert-manager 最新的变化,您需要升级 cert-manager 的版本。具体操作请参阅有关如何升级 cert-manager的文档。
重大改动
Rancher CLI 改动 -
rancher app install
将不在会像之前那样一直 block 住直到安装完成。它将会立刻退出。如果您需要您的 CLI 在这种情况下 block 住,那么请使用rancher wait app install
。[#17471]通过 YAML 创建 RKE 集群 - 如果您之前保存了 yaml 文件用来启动 RKE 部署的集群,那么您将需要更新这个 yaml。任何关于 RKE 的字段都应该被放在
rancher_kubernetes_engine_config:
下面。Kubernetes 1.16 API Endpoint 改动 - Kubernetes 1.16 里,引入了一些新的 API,并且在旧版本中用到的一些 API 版本将会被弃用。请检查您的工作负载和应用商店,确保它们兼容新版本的 Kubernetes。Rancher 推荐您使用实验性的 Kubernetes 1.16 版本来进行兼容性测试。[#22426]
下面的版本为当前的最新版和稳定版:
类型 | Rancher 版本 | Docker 标签 | Helm 仓库 | Helm Chart 版本 |
---|---|---|---|---|
最新版 | v2.3.0 | rancher/rancher:latest | server-charts/latest | v2.3.0 |
稳定版 | v2.2.8 | rancher/rancher:stable | server-charts/stable | v2.2.8 |
您可以通过如何选择版本的文档,了解更多关于不同版本和标签的区别。
功能和优化
Windows GA [#16460] - 支持创建 Windows 集群的功能生产可用!Windows 集群支持 Kubernetes 1.15 和 Windows Server 1809/1903。如果您想使用 Windows 集群,您必须重建一个新的集群,并且需要选择 flannel 作为网络插件。您不需要明确指定 Windows 工作负载的调度规则,来确保它们被调度到 Windows 节点上。当 Rancher 创建 Windows 集群时,Rancher 会自动在 Windows 集群的 Linux 节点上添加 taints,从而确保您的 Windows Pod 不会被调度到 Linux 节点上。如果您需要把 Linux 工作负载调度到这个集群,那么您需要自己添加相应的 tolerations 和调度规则。
Istio [#19582] - 在 Rancher 中运维 Istio 变得简单,您可以按照安装和配置 Istio 组件的文档来激活 Istio。这些组件包括了开箱即用的用来来展示流量信息的 Kiali 仪表盘,用来进行追踪的 Jaeger,用来展示观察数据的 Prometheus 和 Grafana。开发人员可以正常的使用 Kubectl 来和 Istio 进行交互,来使用 Istio 的全部功能。
RKE 集群模板 [#14337] - 用户可以创建RKE 集群模板。这个模板定义了 RKE 集群的全部参数。管理员可以通过 RKE 模板,强制用户使用合规的参数创建集群。创建和修改 RKE 集群模板的权限是由 RBAC 控制的。RKE 模板创建者可以决定哪些参数可以被使用该模板的用户覆盖,哪些参数只能使用默认参数不能被使用者覆盖。
自恢复的 Node Pools [#15737] - 用户可以设置一个超时等待时间。Rancher Server 会根据这个超时时间来删除无响应的节点,并进行重建。这个参数可以确保您的节点池中可用节点的数量是您所期望的。
提供自动接收新 Kubernetes 版本的能力 [#18041] - Rancher 可以在不发布新 Rancher 版本的情况下,发布新的 Kubernetes 版本。用户将自动接收到这些新版本的 Kubernetes,并且不用升级 Rancher Server。在 Rancher 中创建 RKE 集群时,您将可以使用到这些新版本。对于离线环境用户,您需要自己手动镜像 Rancher Kubernetes Metadata,并在需要时手动同步这些元数据。
支持给节点添加 Taints [#13972] - Kubernetes 使用 node taints 来控制哪些工作负载可以被调度到这些节点上。引入给节点添加 Taints 的能力,可以帮助用户更灵活的进行工作负载的调度。Taints 除了可以在“编辑节点”页配置以外,您可以在注册自定义主机时加入 Taints,或在Node Pool和节点模版中对 Taints 进行配置。
支持 Google 认证对接 [#1411] - 您可以使用 Rancher 对接 Google 认证。由于 Google 的要求,您的 Rancher Server 必须使用 FQDN。
支持通过 UI 管理 HPA [#19084] - 支持通过 UI 管理Horizontal Pod Autoscaler。
支持应用商店模板设置可用的 Rancher 版本的最大值和最小值 [#18469] - 您现在可以给应用商店模板设置该模板所兼容的 Rancher Server 版本的最大值和最小值。这可以保证某些版本的模板只能在某些 Rancher 版本中可见,这样我们可以针对这些 Rancher 版本对应用进行更好的测试。如果应用商店的应用所用到的功能只在某些 Rancher 版本中可用,那么我们也需要通过这个配置来进行控制。
托管 Kubernetes 集群优化
支持设置 ingress controller 的 DNS policy [RKE #1531]
在
rancher app install
命令里支持—helm-wait
和—helm-timeout
选项 [#17471]支持设置 UI token 过期时间 [#16467]
支持给集群设置 labels 和 annotations [#21700]
支持创建对 Windows 操作系统友好的备份文件 [#22019]
实验性功能
我们提供了一种启停 Rancher 中实验性功能模块的能力。在这个版本里,您需要通过 API 来控制“功能开关”。详情请查阅在 Rancher 中如何开启某些功能的文档。
自 v2.2.8 以来修复的主要问题
- 修复了一个 EKS 无法选择小于三个 worker 节点的问题 [#18243]
- 修复了一个用户无法在 UI 上选择自定义项目角色的问题 [#19860]
- 修复了一个非管理员无法查看应用历史版本的问题 [#20204]
- 修复了一个 CLI 无法回滚应用的问题 [#20750]
- 修复了一个启用监控时无法设置节点选择器的问题 [#22760]
- 修复了一个在 UI 上编辑 calico-node 部署时,导致 calico 健康检查错误的问题 [#22848]
- 修复了一个无法编辑名称中含有点的 ingress 的问题 [#20809]
- 修复了一个编辑导入集群时,集群类型信息不清晰的问题 [#21562]
- 修复了一个 etcd 快照不能识别 docker 的 https_proxy 配置的问题 [RKE #1369]
- 修复了一个 Azure 节点池不支持托管磁盘的问题 [#15788]
- 修复了一个通过 CLI 升级 app 时,如果不传任何应答参数,将导致无法升级的问题 [#17405]
- 修复了一个无法正确显示导入集群中的 node port mapping 的问题 [#15482]
- 修复了一个日志和监控在
restricted
PSP 下无法工作的问题 [#22593, #21082] - 修复了一个无法备份到 AWS ap-east-1 区域的 S3 的问题 [#22355]
- 修复了一个 Rancher server chart 的外部 TLS 选项不生效的问题 [#20573]
- 修复了一个 Pod 重启时不能发送告警到 slack 的问题 [#20339]
- 修复了一个
rancher app upgrade
命令导致之前的应答丢失的问题 [#17540] - 修复了一个磁盘用量显示错误的问题 [#21254
- 修复了一个测试 fluentd 连通性时异常的的问题 [#20120]
- 修复了一个无法通过流水线部署项目级别应用商店中的应用的问题[#21282]
- 通过升级 fluetnd 版本,修复了一个 fluentd 会消耗掉全部 inodes 的问题 [#22689]
- 修复了一个无法部署含有相对路径 url 的 Catalog 的问题 [#18535]
- 修复了一个无法删除告警规则中唯一的接收者的问题 [#18616]
- 修复了一个通过 UI 部署应用商店应用时,无法传递字符串类型的数字的问题 [#13158]
- 修复了一个通过 Rancher CLI 创建集群时导致 cloud provider 信息丢失的问题 [#15098]
- 修复很多其他关于UI 缺陷和优化的问题
其他说明
离线安装和升级
在 v2.3.0+的版本里,离线安装将不在需要手动同步 system charts 的源代码仓库了。具体操作请参阅有关安装 Rancher 时,如何使用内嵌的 system charts。
主要的已知问题
Windows 集群限制 - 由于其他上游依赖的原因,Windows 集群有一些已知的限制:
Istio 限制 - Istio 无法在使用受限的 Pod 安全策略的集群中激活 [#22469]
HPA 限制 - 因为 GKE 不支持
v2beta2.autoscaling
版本的 API。所以在 Rancher UI 中无法通过 UI 管理 GKE 集群的 HPA 资源。[#22292]安全加固限制 - 如果您按照 Rancher 的安全加固手册进行了配置,那么您将会遇到一些已知的问题。
如果您是从 v2.2 升级上来的环境,在向已有节点模版中添加的 Taints 后,并使用这个节点模版来扩容 Worker 节点,那么这些新的 Worker 节点可能无法正常工作。您必须在对管理节点或 etcd 节点进行扩缩容后,或是对集群进行编辑后,这些带有 Taints 的新 Worker 节点才能正常工作。因为只有在集群 Reconcile 被触发后,系统组件才会自动添加 Tolerations [#22672]
在升级 Rancher 版本后,集群告警组件或集群日志组件有可能会卡在
Updating
状态。临时解决方案可以在这个 issue 中找到。[#21480]如果您的 Rancher Server 所在的集群配置了 OpenStack cloud provider 并设置了 LoadBalancer,并且这个 Rancher Server 所在的集群是在 v2.2.3 或者更早的版本创建的,那么直接升级到 Rancher v2.2.4 或之后的版本将会失败。您可以在这个 issue 的评论中找到这种情况下的迁移方法 [#20699]
版本信息
镜像
- rancher/rancher:v2.3.0
- rancher/rancher-agent:v2.3.0
工具
Kubernetes 版本
注:在 v2.3.0+版本中,在有新的 Kubernetes 版本可用时,即使不升级 Rancher 版本,我们也会自动向您推送这些版本。所以您在 Rancher UI 中看到的可用版本,可能会高于如下版本。
升级和回滚
Rancher 支持升级和回滚操作。在修改 Rancher 版本时,请先确认您要升级到或者回滚到的 Rancher 版本。
请注意,在升级到 v2.3.0 或者以上版本时,第一次修改通过 Rancher v2.3.0 之前版本部署的 RKE 集群时,由于要向系统组件中加入 Tolerations,该集群全部的系统组件将会自动重启。请事先规划好。
如果您的 Rancher HA 在使用 低于 v0.9.1 的 cert-manager,并且是自签名证书,由于 cert-manager 最新的变化,您需要升级 cert-manager 的版本。具体操作请参阅有关如何升级 cert-manager的文档。
:::important 重要 在回滚的时候,您将会被回滚到升级之前的状态。任何在升级后进行的改动将无法被保留。 :::
Assets
请在这里获取该版本的 Assets。