Docker容器技术

Rancher容器管理平台搭建

2018-11-21  本文已影响0人  garyond

1. Rancher容器管理平台简介

Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。

Rancher由以下四个部分组成:

Rancher可以使用任何公有云或者私有云的Linux主机资源。Linux主机可以是虚拟机,也可以是物理机。Rancher仅需要主机有CPU,内存,本地磁盘和网络资源。从Rancher的角度来说,一台云厂商提供的云主机和一台自己的物理机是一样的。

Rancher为运行容器化的应用实现了一层灵活的基础设施服务。Rancher的基础设施服务包括网络存储负载均衡DNS和安全模块。Rancher的基础设施服务也是通过容器部署的,所以同样Rancher的基础设施服务可以运行在任何Linux主机上。

很多用户都会选择使用容器编排调度框架来运行容器化应用。Rancher包含了当前全部主流的编排调度引擎,例如Docker SwarmKubernetesMesos。同一个用户可以创建Swarm或者Kubernetes集群。并且可以使用原生的Swarm或者Kubernetes工具管理应用。

除了Swarm,Kubernetes和Mesos之外,Rancher还支持自己的Cattle容器编排调度引擎。Cattle被广泛用于编排Rancher自己的基础设施服务以及用于Swarm集群,Kubernetes集群和Mesos集群的配置,管理与升级。

Rancher的用户可以在应用商店里一键部署由多个容器组成的应用。用户可以管理这个部署的应用,并且可以在这个应用有新的可用版本时进行自动化的升级。Rancher提供了一个由Rancher社区维护的应用商店,其中包括了一系列的流行应用。Rancher的用户也可以创建自己的私有应用商店

Rancher支持灵活的插件式的用户认证。支持Active Directory,LDAP, Github等 认证方式。 Rancher支持在环境级别的基于角色的访问控制 (RBAC),可以通过角色来配置某个用户或者用户组对开发环境或者生产环境的访问权限。

下图展示了Rancher的主要组件和功能:

Rancher组件和功能

2. Rancher容器管理平台搭建

2.1 安装环境要求

2.2 Rancher Server版本说明

Rancher Server当前版本中有2个不同的标签。对于每一个主要的release标签,我们都会提供对应版本的文档。

注: 请不要使用任何带有 rancher/server:rc{n} 前缀的release。这些都是Rancher构建的测试版本。

2.3 Rancher部署

2.3.1 单容器部署(使用容器内部自带的MySQL数据库)

在安装和部署了Docker容器环境的Linux服务器上,使用一个简单的命令就可以启动一个单实例的Rancher。

$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server

2.3.2 单容器部署(使用外部MySQL数据库)

除了使用内部的数据库,你可以启动一个Rancher Server并使用一个外部的数据库。启动命令与之前一样,但添加了一些额外的参数去说明如何连接你的外部数据库。

使用外部数据库,需要提前创建数据库名和数据库用户,Rancher服务启动后会自动创建Rancher管理平台需要的数据库表。以下为相关的建库脚本, 可供参考:

> CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
> GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';
> GRANT ALL ON cattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle';

启动一个Rancher连接一个外部数据库,你需要在启动容器的命令中添加额外参数。

$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server \
    --db-host 192.168.202.44 --db-port 3306 --db-user username --db-pass password --db-name cattle

大部分的输入参数都有默认值并且是可选的,只有MySQL数据库主机地址配置项是必须配置的。

--db-host               数据库主机名或IP地址
--db-port               数据库服务端口(默认为:3306)
--db-user               数据库用户名(默认为:cattle)
--db-pass               数据库用户密码(默认为:cattle)
--db-name               数据库名(默认为:cattle)

2.3.3 高可用集群部署

在高可用(HA)的模式下运行Rancher Server与单容器部署方式一样简单,但需要暴露一个额外的服务端口用于实现集群节点之间的通讯,需要添加额外的参数到启动命令中,并且运行一个外部的负载均衡就可以了。

1. HA部署需求

注意:目前Rancher中并不支持Docker for Mac

2. 大规模部署建议

3. 部署步骤

  1. 在每个需要加入Rancher Server HA集群的节点上,运行以下命令:

    $ docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 \
        rancher/server --db-host 1952.168.202.44 --db-port 3306 \
        --db-user Cattle --db-pass cattle --db-name cattle \
        --advertise-address <IP_of_the_Node>
    

    在每个节点上,<IP_of_the_Node> 需要在每个节点上唯一,因为这个IP会被添加到HA的设置中。

    如果你修改了 -p 8080:8080 并在host上暴露了一个不一样的端口,你需要添加 --advertise-http-port <host_port> 参数到命令中, 如下所示:

    $ docker run -d --restart=unless-stopped -p 8000:8080 -p 9345:9345 \
        rancher/server --db-host 1952.168.202.44 --db-port 3306 \
        --db-user Cattle --db-pass cattle --db-name cattle \
        --advertise-address 192.168.202.15 --advertise-http-port 8000
    

    ADVERTISE-ADDRESS参数配置说明:

    • 使用IP地址 --advertise-address 192.168.202.14
    • 使用网络接口 --advertise-address eth0
  2. 在负载均衡应用(如Nginx、HAProxy等)中添加负载均衡配置,这个负责均衡负责将例如80443端口的流量,转发到运行Rancher Server的节点的8080端口中。负载均衡器必须支持websockets 以及 forwarded-for 的Http请求头以支持Rancher的功能。

4. 注意事项

如果修改了Rancher集群节点上的IP地址,Rancher集群上该节点将不会再提供服务,此时需要删除修改IP地址的容器节点服务, 并重新运行新的容器并配置修改后的IP地址。

上一篇 下一篇

猜你喜欢

热点阅读