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

在Rancher出现以前,管理在不一样云提供商中运行的kubernetes集群历来都不是一件容易的事。Rancher是什么?它是一个开源的Kubernetes管理平台,用户能够在Rancher上建立对接不一样云的Kubernetes集群,或直接向导入已有的Kubernetes集群进行统一纳管。linux

在这篇文章中,我将演示如何在Google云、AWS Cloud中启动Kubernetes集群以及如何从Oracle Cloud导入集群。全部这三个集群,最终都将在Rancher Dashboard上拥有直观的视图,并能进行统一管理。本文将逐步展现如何从Rancher建立Kubernetes集群,以及如何经过Rancher Dashboard轻松完成监控和部署。nginx

除了Rancher Kubernetes管理平台以外,Rancher Labs也发布过本身的RKE(Rancher Kubernetes Engine)供用户选择使用。RKE这是一个很是简单、闪电般快速的Kubernetes安装程序,能够在任何地方使用。所以,它消除了在裸机服务器或VM上安装Kubernetes集群的痛苦,而且它还提供了不少自定义的灵活性。git

RKE安装github

在这一章里我将演示如何在3个VM上安装Rancher Kubernetes集群。首先你须要三台机器来启动RKE集群。我使用的是3个EC2实例与ubuntu18.04,做为启动镜像。因此如今我已经有了一个单独的VM,我将执行这三个节点的全部安装,其中一个将是主节点,另外两个将是工做节点。我已经按照官方文档(https://rancher.com/docs/rke/...)进行了安装,为了让整个工做更简单,我稍微调整了一些步骤。docker

步骤1:下载RKE二进制文件shell

wgetubuntu

https://github.com/rancher/rk...服务器

步骤2:mv rke_linux-amd64 rke负载均衡

步骤3:导出PATH = / home / cloud_user / rke:$ PATHless

步骤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的功能、特性等等全部方面,更多用法你们能够继续自行探索。

相关文章
相关标签/搜索