7月QCon广州站2022,关注Web 3.0、数据架构选型、数字化转型等热门话题,点击了解 了解详情
写点什么

如何统一管理谷歌 GKE、AWS EKS 和 Oracle OKE

  • 2020 年 5 月 14 日
  • 本文字数:3550 字

    阅读完需:约 12 分钟

如何统一管理谷歌GKE、AWS EKS和Oracle OKE

在 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 的功能、特性等等所有方面,更多用法大家可以继续自行探索。


2020 年 5 月 14 日 22:26289

评论

发布
暂无评论
发现更多内容

毕业总结

施正威

有Python基础后,3天就拿Flask开发项目系列博客之一

梦想橡皮擦

3月月更

技术平台&应用开发专题月 | 如何打造强大的K8S集群

用友BIP

用友 用友iuap

3个案例,详解如何选择合适的研发模式 | 研发效能提升36计

阿里云云效

阿里云 云原生 研发团队 研发 研发提效

【愚公系列】2022年03月 Docker容器 Windows11安装Docker Desktop

愚公搬代码

3月月更

「前端CI/CD系列」第三篇:如何用建木CI构建前端项目并部署到CDN

Jianmu

开源 前端 CDN 七牛云 建木CI

可观测性能力升级,Apache APISIX 集成 OpenTelemetry

Apache APISIX 中国社区

开源 api 网关 OpenTelemetry Apache APISIX

毕业设计

施正威

眼影、口红、香水…特别的日子献给所有的她 | InfoQ 会员周女神节特别限定活动

InfoQ写作社区官方

热门活动 InfoQ会员周 38妇女节

WebGPU小白入门(一): 零基础创建第一个WebGPU项目

Orillusion

webgpu

DPDK uio 分析 丨DPDK的优势及学习总结

Linux服务器开发

Linux服务器开发 DPDK Linux后台开发 高性能网络 网络虚拟化

GDP Streaming RPC 设计

百度Geek说

后端 RPC Go 语言

以开发之名|致敬女性开发者 用“代码”创造无限可能

最新动态

基于冬奥示范效应,数字孪生将助力建筑运维和集会安全运营

易观分析

数字孪生

「国产替代」,真的是中国SaaS的发展路径吗?

ToB行业头条

重学设计模式——你真的面向对象了吗?

黄林晴

设计模式

直播预告 | PolarDB-X 动手实践系列——如何在 PolarDB-X 中优化慢 SQL

阿里云数据库开源

数据库 大数据 阿里云 开源 polarDB

java培训:内存泄漏问题排查与分析

@零度

JAVA开发

在华外企高管谈政府工作报告:共享发展成就 未来机遇可期

科技新消息

一日为期,极行千里 ——「企业级零代码黑客马拉松」正式启动报名

明道云

低代码 零代码 企业 黑客马拉松

适用于企业的销售自动化CRM系统

低代码小观

销售管理 CRM CRM系统 客户关系管理系统 企业管理软件

堪比JMeter的.Net压测工具 - Crank 入门篇

MASA技术团队

C# .net 微软 测试 压测

开源云 IDE 产品新宠儿,如何使用 Gitpod 开发 APISIX?

Apache APISIX 中国社区

ide 开发工具 Apache APISIX

两天两夜,1M图片优化到100kb!

沉默王二

Java

对容器在野安全问题的观测和分析

腾讯安全云鼎实验室

网络安全 容器安全 在野攻击

Flink 流处理在中信建投证券的实践与应用

Apache Flink

大数据 flink 开源 编程 实时计算

金融数据查询增速三倍,服务器成本减半,海尔云链的 OLAP 引擎选型之路

StarRocks

数据库 数据分析 OLAP StarRocks

基于 Apache ShardingSphere 构建高可用分布式数据库

SphereEx

Apache 开源 分布式 ShardingSphere SphereEx

【51单片机】keil5如何创建工程

泽En

单片机 3月月更 keil5

技术分享会回顾|Rust在量化领域如何应用?

非凸科技

电商秒杀系统

tony

「架构实战营」

如何统一管理谷歌GKE、AWS EKS和Oracle OKE_文化 & 方法_Rancher_InfoQ精选文章