通过rancher快速部署Kubernetes集群

概述

What’s Rancher?
Rancher是一套容器管理平台,它可以帮助组织在生产环境中轻松快捷的部署和管理容器。 Rancher可以轻松地管理各种环境的Kubernetes,满足IT需求并为DevOps团队提供支持。

Kubernetes不仅已经成为的容器编排标准,它也正在迅速成为各类云和虚拟化厂商提供的标准基础架构。Rancher用户可以选择使用Rancher Kubernetes Engine(RKE)创建K8S集群,也可以使用GKE,AKS和EKS等云Kubernetes服务。 Rancher用户还可以导入和管理现有的Kubernetes集群。

Rancher为DevOps工程师提供了一个直观的用户界面来管理他们的服务容器,用户不需要深入了解Kubernetes概念就可以开始使用Rancher。 Rancher包含应用商店,支持一键式部署Helm和Compose模板。Rancher通过各种云、本地生态系统产品认证,其中包括安全工具,监控系统,容器仓库以及存储和网络驱动程序。下图说明了Rancher在IT和DevOps组织中扮演的角色。每个团队都会在他们选择的公共云或私有云上部署应用程序。
在这里插入图片描述
早期的Rancher1.X版本是基于Docker以Cattle为调度引擎的容器管理平台。在Rancher1.X成功和经验的基础上,基于Kubernetes基础上重新设计Rancher2.0版本。 Rancher2.0保留了1.6版的友好功能,如UI和应用商店。但是,2.0包含许多新功能,例如:

  • 内置CI/CD;
  • 告警和日志收集;
  • 多集群管理;
  • Rancher Kubernetes Engine (RKE);
  • 与云Kubernetes服务(如GKE,EKS和AKS)集成;

架构设计

Kubernetes

Kubernetes已成为容器集群管理标准,通过YAML文件来管理配置应用程序容器和其他资源。Kubernetes执行诸如调度,扩展,服务发现,健康检查,密文管理和配置管理等功能。

一个Kubernetes集群由多个节点组成:

  • etcd database

通常在一个节点上运行一个etcd实例服务,但生产环境上,建议通过3个或5个(奇数)以上的节点来创建ETCD HA配置。

  • Master nodes

主节点是无状态的,用于运行API Server,调度服务和控制器服务。

  • Worker nodes

工作负载在工作节点上运行。
默认情况下Master节点也会有工作负载调度上去, 可通过命令设置其不加入调度

Rancher

大多数Rancher2.0软件运行在Rancher Server节点上,Rancher Server包括用于管理整个Rancher部署的所有组件。

下图说明了Rancher2.0的运行架构。该图描绘了管理两个Kubernetes集群的Rancher Server安装:一个由RKE创建,另一个由GKE创建。
在这里插入图片描述

准备工作

基础环境安装docker配置,请参考rancher部署Kubernetes集群之基础环境docker-ce部署

安装Rancher

sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:stable

登录Rancher

登录并开始使用Rancher。登录后,您将进行一些一次性配置。

  1. 打开浏览器,输入https://<server_ip>,server_ip替换为运行Rancher容器主机的ip;
  2. 因为是自动使用的自签名证书,在第一次登录会提示安全授信问题,信任即可;
  3. 设置管理员密码
    第一次登录会要求设置管理员密码,默认管理员账号密码为: admin/admin
    在这里插入图片描述
    4.设置Rancher Server URL
    Rancher Server URL是agent节点注册到Rancher Serverd的地址,需要保证这个地址能够被agent主机访问,不要设置为127.0.0.1或者localhost

创建K8S集群

现在创建第一个Kubernetes集群,可以使用自定义选项。您可以添加云主机、内部虚拟机或物理主机作为集群节点,节点可以运行任何一种或多种主流Linux发行版:

  1. 页面右下角可以切换语言;

在这里插入图片描述

  1. 在全局视图下,点击菜单中的集群 , 并点击添加集群
    在这里插入图片描述

  2. 选择 Custom,并设置集群名称,其他参数可不用修改,点击下一步;
    在这里插入图片描述

  3. 选择节点运行的角色
    默认会勾选Worker角色,根据需要可以一次勾选多种角色。比如,假设我只有一个节点,那就需要把所有角色都选择上,选择后上面的命令行会自动添加相应的命令参数;

在这里插入图片描述
如果是云主机,需要添加主机的内网地址和对应的公网地址,如果是没有公网的云主机,可以跳过这步;

  1. 其他参数保持默认,点击命令行右侧的复制按钮,复制命令参数
    在这里插入图片描述

  2. 如果是多台主机,根据不同主机规划,选择不同角色,复制命令,需要执行多次
    在这里插入图片描述
    在主机上执行完命令后,最后点击完成;

  3. 回到全局视图,可以查看集群的部署状态;
    若集群显示Provisioning,等正在部署的任务完成就OK了
    在这里插入图片描述

  4. 点击集群名称,进入集群视图
    在这里插入图片描述

  5. 点击菜单栏主机按钮
    在这里插入图片描述

  6. 集群创建完成
    在这里插入图片描述

  7. 集群创建完成后,默认会生成Default项目,点击Default切换到项目视图;
    在这里插入图片描述

部署工作负载

工作负载是一个对象,包括pod以及部署应用程序所需的其他文件和信息。我们以nginx作为例如:

  1. 在Default视图下,点击工作负载—部署服务
    在这里插入图片描述

  2. 在部署工作负载页面,设置工作负载名称、副本数量、镜像名称、命名空间、端口映射,其他参数保持默认,最后点击启动;
    在这里插入图片描述

  3. 部署完成
    在这里插入图片描述

  4. 通过32556端口去访问nginx服务。
    因为刚才创建的时候,主机地址选的随机,所以会随机分配一个端口映射到该pod

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章