在 Rancher 出现之前,管理在不同云提供商中运行的 kubernetes 集群从来都不是一件容易的事。Rancher 是什么?它是一个开源的 Kubernetes 管理平台,用户可以在 Rancher 上创建对接不同云的 Kubernetes 集群,或直接向导入已有的 Kubernetes 集群进行统一纳管。
在这篇文章中,我将演示如何在 Google 云、AWS Cloud 中启动 Kubernetes 集群以及如何从 Oracle Cloud 导入集群。所有这三个集群,最终都将在 Rancher Dashboard 上拥有直观的视图,并能进行统一管理。本文将逐步展示如何从 Rancher 创建 Kubernetes 集群,以及如何通过 Rancher Dashboard 轻松完成监控和部署。
除了 Rancher Kubernetes 管理平台之外,Rancher Labs 也发布过自己的 RKE(Rancher Kubernetes Engine)供用户选择使用。RKE 这是一个非常简单、闪电般快速的 Kubernetes 安装程序,可以在任何地方使用。因此,它消除了在裸机服务器或 VM 上安装 Kubernetes 集群的痛苦,并且它还提供了很多自定义的灵活性。
RKE 安装
在这一章里我将演示如何在 3 个 VM 上安装 Rancher Kubernetes 集群。首先你需要三台机器来启动 RKE 集群。我使用的是 3 个 EC2 实例与 ubuntu18.04,作为启动镜像。所以现在我已经有了一个单独的 VM,我将执行这三个节点的所有安装,其中一个将是主节点,另外两个将是工作节点。我已经按照官方文档(https://rancher.com/docs/rke/latest/en/installation/)进行了安装,为了让整个工作更简单,我稍微调整了一些步骤。
步骤 1:下载 RKE 二进制文件
步骤 2:mv rke_linux-amd64 rke
步骤 3:导出 PATH = / home / cloud_user / rke:
$
PATH步骤 4:到目前为止,我已经安装了三台安装了 docker 的 ubuntu EC2 机器(一定要运行“usermod -aG docker ubuntu”,这样才能让 docker 可以被 ubuntu 用户访问)、以及在创建这些实例时我使用的私钥文件。你需要做的是在当前的 VM 中创建文件,复制密钥的内容,更改密钥权限并尝试登录到你的 EC2 实例之一。
然后运行以下命令:
rke config --name cluster.yml(如果你还没有设置路径,此处则可以使用./rke)。
一旦你按下 Enter 键,它将开始询问你一些不同的参数值,因为它会根据这些参数值来创建 cluster.yml 文件。这些参数基本上是你定义的节点特征,rke 会自动为你创建 cluster.yml。你也可以按照 Rancher 的文档自行创建。
以上是我传递的参数,并基于它生成了 cluster.yml 文件。基本上它就是三个节点配置和我默认选择的其他一些与集群相关的配置。
以上是 Node 基于我们传递的参数在 cluster.yml 文件中的样子。 现在你已准备好了 cluster.yml 文件,就可以继续下一步了。
步骤 5:运行“rke up”以启动集群(如果你在同一位置有 cluster.yml 文件的话),或者如果你拥有 cluster.yml 以外的文件,则可以运行: rke up --config abc.yml
就这样简单!!! 然后你将可以看到集群启动了,并开始显示各种 INFO 日志,以执行各种工作来启动集群并将节点连接在一起。这也让你可以看到幕后发生的事情,以便你可以感受到集群创建的所有步骤。如果不需要这些,你只需看看我们“成功建立 Kubernetes 集群”即可。
部分日志
在此之后,rke 还会创建一个 kubeconfig 文件,你可以使用该文件与集群进行交互(在此之前需安装 kubectl),名称为“kube_config_cluster_yml”。如果你使用的 yml 文件用了其他名称,那么它将是’kube_config_test_yml’,然后就可以使用这个 config 文件与集群进行交互了。
万事俱备
Rancher 安装
现在我将向你展示如何安装 Rancher 并从 Rancher Dashboard 创建/导入集群。 我将使用我用于 RKE 安装的相同 VM。 我将在端口 80 上运行 Rancher 作为 docker 容器。
命令: docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
搞定!Rancher 现在已经运行起来了!
下面登录 Rancher <ipaddress>并设置密码,使用 URL。
Rancher 的第一屏界面
Rancher Dashboard
现在,Rancher 已启动并正在运行了,我们可以开始准备创建和导入集群。下面我将向你展示如何使用 Rancher 创建 AWS 和 Google 云集群,以及如何从 Oracle 云和最近创建的 RKE 导入集群。
使用 Rancher 创建 AWS 集群
步骤 1:单击“添加集群”并选择 Amazon EKS。选择完之后,你将需要提供集群名称、访问密钥(Access Key)和 secret Key。
步骤 2:单击“配置集群”,然后选择 Kubernetes 版本和服务角色。
集群选项
步骤 3:单击选择 VPC 和子网,以选择节点的 VPC 和公共 IP。
VPC
步骤 4:选择实例选项,以指定节点的形状和大小。
节点
步骤 5:创建集群
单击“创建”后,配置 AWS EKS 集群就开始了,这一切将显示在 AWS 仪表板和 Rancher Dashboard 中。
AWS 集群已创建
使用 Rancher 创建
Google Kubernetes 集群
步骤 1:在 Google 云端控制台中创建具有以下权限的服务帐户。
服务帐户
步骤 2:为该服务帐户创建 JSON 密钥并将其保存在你的计算机上,因为在通过 Rancher 创建集群时将需要此密钥。
创建 JSON 密钥
步骤 3:转到 Rancher Dashboard,单击“添加集群”并选择 Google GKE。 填好集群的名称,并粘贴您刚刚在步骤 2 中创建的服务帐户 JSON 文件。
添加集群并提供 JSON 文件
步骤 4:单击“配置节点”后,它将使用提供的 JSON 文件进行身份验证,并显示两者不同的部分,你可以在其中选择相应的集群选项。 你可以选择区域、Kubernetes 版本、节点数/形状/镜像、启用/禁用自动修复、自动缩放和自动升级等功能,然后单击“创建”。
就是这样,只要你点击“创建”,Google Kubernetes 集群就创建好了。
GKE
使用 Rancher 导入 RKE 集群
在本节中,我将展示如何将 RKE 集群导入你刚刚在本文开头创建的 Rancher。
步骤 1:单击添加集群,选择导入选项后,填入集群名称并单击创建。
正在导入集群
步骤 2:运行下一个屏幕上提到的命令,以创建集群管理员角色以及 Rancher 导入需要的 yaml。
命令
创建角色
将 yaml 文件应用于 RKE 集群以完成 rancher 导入
将 Oracle Kubernetes 引擎
导入 Rancher Dashboard
先创建 OKE(Oracle Kubernetes Engine),转到 Oracle OCI 控制台,从菜单中选择开发者服务,然后选择集群。我将选择快速创建选项,因为它非常简单,除了提供集群名称和节点形状和计数之外,无需再执行任何其他操作。
OKE 集群创建
Cluster 已创建成功
Rancher Dashboard
下面让我们看看 Rancher Dashboard。
各处集群,一处管理
现在,你可以使用 Rancher Dashboard 进行各种不同的操作。
启用监控
你可以直接使用 Dashboard 启用 prometheus 和 grafana 监控,并访问所有集群的 grafana 仪表板。 下面我将展示如何为 Google Kubernetes 集群执行操作,这些流程适用于其他所有各类集群。
步骤 1:选择要为其启用监控的集群。
步骤 2:从工具菜单中选择监控。
选择监控
步骤 3:单击“启用”并设置限制。单击保存。
配置
单击“保存”后,你的监控功能已启用。当你单击集群时,您将可以看到 grafana 的 logo。
单击任意一个 Grafana 的 logo,你会跳转到 Grafana 的仪表板,可以在其中查看所有指标,并根据需要创建告警。
GKE 的 Grafana 仪表板
OKE 的 Grafana 仪表板
RKE 的 Grafana 仪表板
管理集群
你可以使用 Rancher Dashboard 轻松管理集群的所有已部署的 pod、服务等。
GKE 的 pods
在这里,您可以编辑 yaml 文件,重新部署它们并根据需要更改配置。
部署应用程序
使用 Rancher Dashboard 将应用程序部署到集群非常简单。 只需打开集群的工作负载页面,即可部署应用程序。
部署
下面让我们来部署一个示例的 nginx 应用程序。 选择部署时,你可以使用各种选项来部署应用程序。
部署应用程序
你可以设置环境变量、执行节点计划、运行健康检查、创建卷以及定义扩展策略。 你还可以通过单个的应用程序部署界面做很多事情(特别酷炫!)。你也可以暴露端口(对于我的部署,我已将它暴露为外部负载均衡器)。
已经部署成功的应用程序
执行 kubectl 命令
您可以在配置集群时生成的 kubectl shell 的帮助下,通过 Rancher UI 执行 kubectl 命令。这里的一个问题是,当您尝试多次运行 kubectl shell 时,由于某些 docker 的问题会导致断开连接。另一种可行方法是下载 kubeconfig 文件并在本地运行 kubectl 命令。
你还可以创建卷,创建 CI/CD 的 Pipeline 等等。
结语
在这篇文章中,我分享了:
如何安装 Rancher
如何使用 Rancher 安装 Google GKE
RKE 设置
使用 Rancher 创建 AWS EKS
将 Oracle Cloud OKE 导入 Rancher
从 Rancher 启用对集群的监控
使用 Rancher UI 部署示例应用程序并将其作为负载均衡器公开
使用 Rancher UI 执行 Kubectl 命令
Rancher 的功能非常多,我当然无法仅用一篇文章就分享完所有 Rancher 的功能、特性等等所有方面,更多用法大家可以继续自行探索。
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论