Rancher 1.6 是一个深受广大用户喜爱的容器编排平台,帮助企业用户在生产环境中运行和管理 Docker 和 Kubernetes。Rancher 1.6 支持多种容器编排框架,包括 Kubernetes、Mesos、Docker Swarm,默认的基础编排引擎是 Cattle,Cattle 极简的操作体验受到了大量开源社区用户和企业用户的青睐。
过去一年,Kubernetes 流行度快速上升,成为业界公认的容器编排框架标准。Rancher 极具前瞻性地早在 2017 年 9 月便宣布全面拥抱 Kubernetes,Rancher 2.0 发布之后,基础编排平台从 Cattle 变成了 Kubernetes。 Rancher 2.0 旨在将基础架构及云计算领域 Kubernetes Everywhere 的愿景变成现实。
然而,也正因为 Rancher 2.0 使用的编排技术完成转向成为 Kubernetes,Rancher 2.0 与 Rancher 1.6 有了很大区别。目前,在这两个版本之间还没有直接的升级路径。
那么,希望从 Rancher 1.6 迁移到 Rancher 2.0 的用户们,应该如何操作呢?
在这篇文章里,我将提供一则简短的清单,你可以依据此进行迁移:
安装
有关 Rancher 2.0 安装的说明,请参阅 Rancher 文档:
https://rancher.com/docs/rancher/v2.x/en/installation/
请注意,目前 Rancher 2.0 只支持以下 Docker 版本:
1.12.6
1.13.1
17.03.2
这些 Docker 版本是根据 Kubernetes 上游版本中的外部依赖项下找到的,以上列出的所有版本都是经过验证的。
Rancher 目前使用的是 Kubernetes 1.10 版本并且计划在 2.0.7 版本中使用 1.11 版本。Rancher 会持续更新最新的 Kubernetes 上游版本。
至于单节点的开发安装,你可以使用类似的 docker run 命令配置一个带有 Docker 的 Linux 主机并在 Docker 容器中安装 Rancher,和安装 Rancher 1.6 一样。
对于开发环境,我们建议通过运行单个 Docker 容器来安装 Rancher。
与 Rancher 1.6 版本的一个区别是 Rancher 2.0 要求你使用 SSL 来提高安全性,所以你需要在安装期间提供一个证书。如果你没有提供证书,Rancher 会自动为你生成一个自签名证书。有关证书的选项,请参阅此处:
与 1.6 相比,安装高可用性 Rancher2.0 的设置有很大不同。具体步骤请参考:
https://rancher.com/blog/2018/2018-08-09-migrate-1dot6-setup-to-2dot0/
请注意,在 HA 模式下的 1.6Rancher Server 任何的现有自动化脚本在 Rancher 2.0 的安装中都需要重新设定。
配置身份验证
如果你之前在 Rancher 1.6 中设置过身份验证,那么想必你对下图中的这些 Rancher 支持的身份验证方式都十分熟悉。
在 Rancher 2.0 中,上述所有的身份验证方式都是依旧支持的,同时我们还添加了对几个新的身份验证提供商的支持,如下图所示:
身份验证的基础配置要求设置和 Rancher1.6 上的是一样的。你可以查看文档了解配置不同身份验证的细节。
(https://rancher.com/docs/rancher/v2.x/en/admin-settings/authentication/)
有一个区别值得注意,在 Rancher 2.0 的设置中,即使你配置任何其他的身份验证机制,local auth 始终打开。
添加集群和项目
当你运行 Rancher 安装并且启用身份验证之后,接下来要做的事情是创建一个集群和一个可以部署工作负载的项目。在 Rancher 1.6 的设置中,安装之后,你应该创建一个可以添加计算节点的环境。在 Rancher 2.0 中,你需要创建一个集群并且添加计算节点到集群中。
如果你不了解集群,或不知道如何创建集群,请参阅官网:
https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/#what-s-a-kubernetes-cluster
集群设置好之后的视图如下,在每个集群中,都会有一个可用的【默认】项目。
1.6 中 Cattle 的“环境” 相当于 2.0 中 “带有项目的集群” ,原因如下:
在1.6中,计算资源被分配给环境。
在2.0中,你将它们分配给集群。
在1.6中,用户被添加到环境中,在那里他们可以部署服务并共享对属于该环境的主机的访问权限。
在2.0,用户被添加到项目中,他们部署的工作负载可以访问该项目中的资源。
这种集群和项目模型允许多租户,因为主机由集群所拥有,并且集群可以进一步划分为多个项目,用户们可以在其中管理他们的应用。
创建命名空间
在添加集群和项目之后,下一步是要定义用于为应用工作负载进行分组的命名空间。在 Rancher 1.6 中,创建堆栈则可以将属于你的应用程序的服务组合到一起。在 2.0 中,你需要以同样的目的创建命名空间。项目中将提供默认命名空间,如果未明确提供工作负载,则该命名空间将部署工作负载。与 1.6 类似,Rancher 2.0 支持命名空间内和跨命名空间的服务发现。
迁移应用
当你的 Kubernetes 集群和项目已经就位,下一步就是迁移工作负载。
如果你是一个 Rancher 1.6 的用户并且使用 Cattle 环境,那么在迁移你的工作负载过程中,你需要了解在 Rancher 2.0 中在调度、负载均衡、服务发现、服务监控等方面的改变。你可以关注即将推出的系列文章(https://rancher.com/blog/2018/2018-08-02-journey-from-cattle-to-k8s/),该系列文章介绍了 如何使用 Rancher 2.0 UI 或从 Docker Compose 配置转换为 Kubernetes YAML 进行迁移。 它旨在探索有关工作负载部署的各个领域以及 Rancher 2.0 中提供的等效选项。
如果你已经在 Rancher 1.6 Kubernetes 环境中运行你的工作负载,那么你可以用 UI 或者 Rancher CLI 直接将 Kubernetes YAML 文件导入 Rancher 2.0 集群中。
希望这份迁移清单可以帮助你快速上手由 Rancher 1.6 迁移至 Rancher 2.0 的工作,和 Rancher 一起开启 Kubernetes 之旅!
评论