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.0rancher/rancher:latestserver-charts/latestv2.3.0
稳定版v2.2.8rancher/rancher:stableserver-charts/stablev2.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 集群优化

    • GKE
      • 支持创建 regional 的集群 [#17099]
    • EKS
      • 支持 k8s 1.13 和 1.14 [#20992]
      • 支持使用现有的 SSH key 部署 EKS [#14598]
      • 支持 Hong Kong (ap-east-1) 和 Bahrain (me-south-1) 区域[#22339, #22630]
  • 支持设置 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]
  • 修复了一个日志和监控在restrictedPSP 下无法工作的问题 [#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 集群有一些已知的限制:

    • 在使用 Flannel VXLAN (Overlay) 模式时, Windows Pods 无法访问 Kubernetes API。临时解决方案是使用 Flannel Host Gateway (L2bridge)模式。该问题将在 k8s 1.18 版本中修复。[#20968]

    • Windows 集群的日志功能仅在 Flannel Host Gateway (L2bridge)模式下可以使用。该问题将在 k8s 1.18 版本中修复。[#20510]

  • Istio 限制 - Istio 无法在使用受限的 Pod 安全策略的集群中激活 [#22469]

  • HPA 限制 - 因为 GKE 不支持v2beta2.autoscaling版本的 API。所以在 Rancher UI 中无法通过 UI 管理 GKE 集群的 HPA 资源。[#22292]

  • 安全加固限制 - 如果您按照 Rancher 的安全加固手册进行了配置,那么您将会遇到一些已知的问题。

    • 监控将无法工作 [#20884]
    • Rancher UI 中的 kubectl 将无法工作 [#19439]
    • 流水线将无法工作 [#22844]
  • 如果您是从 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。