Rancher是什么
Rancher 是一个开源的企业级容器管理平台。通过 Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher 提供了在生产环境中使用的管理 Docker 和 Kubernetes 的全栈化容器部署与管理平台。Rancher1.x版本可以用来管理Docker容器,Rancher2.x版本主要用来创建和管理k8s集群。目前1.x版本更新到1.6。
Rancher官网文档介绍:Rancher1.x官方文档
Rancher组成
Rancher由以下四个部分组成:
- 基础设施编排
- 容器编排与调度
- 应用商店
- 企业级权限管理
Rancher安装
官方配置要求:
所有安装有支持的Docker版本的现代Linux发行版。 RancherOS, Ubuntu, RHEL/CentOS 7 都是经过严格的测试。
对于 RHEL/CentOS, 默认的 storage driver, 例如 devicemapper using loopback, 并不被Docker推荐。 请参考Docker的文档去修改使用其他的storage driver。
对于 RHEL/CentOS, 如果你想使用 SELinux, 你需要安装额外的 SELinux 组件.
1GB内存
精确的时钟同步服务 (例如 ntpd)
确保推荐的8080主机端口不被占用
MySQL服务器需要 max_connections 的设置 > 150
MYSQL配置需求
选项1: 用默认COMPACT选项运行Antelope
选项2: 运行MySQL 5.7,使用Barracuda。默认选项ROW_FORMAT需设置成Dynamic
推荐设定
max_packet_size >= 32M
innodb_log_file_size >= 256M (如果你已有现存数据库,请根据实际情况更改此设定)
innodb_file_per_table=1
innodb_buffer_pool_size >= 1GB (对于更高需求的配置,请在专属MySQL服务器机器上使用4-8G的值)
注意:
目前Rancher中并不支持Docker for Mac
快速安装
如果想体验或者测试,推荐采用如下快速安装方式,此方式使用Rancher内置数据库,未做数据持久化,生产环境切勿使用:
[root@node-01 ~]# docker run -d --restart=unless-stopped -p 8080:8080 rancher/server
高可用安装
Rancher的高可用只需要做好数据库的高可用即可,因此采用至少带有一个副本的外置数据库,同时Rancher Server节点需要有8 GB或者16 GB内存。
以下是创建数据库和数据库用户的SQL命令例子
> 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的例子
[root@node-01 ~]# docker run -d --restart=unless-stopped -p 8080:8080 rancher/server --db-host myhost.example.com --db-port 3306 --db-user username --db-pass password --db-name cattle
大部分的输入参数都有默认值并且是可选的,只有MySQL server的地址是必须输入的。
–db-host IP or hostname of MySQL server
–db-port port of MySQL server (default: 3306)
–db-user username for MySQL login (default: cattle)
–db-pass password for MySQL login (default: cattle)
–db-name MySQL database name to use (default: cattle)
web 访问和使用
访问如下的URL: http://<SERVER_IP>:8080。<SERVER_IP> 是运行Rancher Server的主机的IP地址。
如上图,我安装的版本为v1.6.30,左下角可以修改语言,上方:系统管理-访问控制可以配置登录账户密码。
添加主机
选择:基础架构-主机-添加主机,根据主机类型选择对应驱动类型。由于我这里是传统物理机,因此我选择“custom”,之后复制下面添加命令去对应主机执行即可。
添加对应开发环境
选择左上角的default-环境管理,对所需环境进行添加配置
添加应用
添加应用的方式可以选择直接yml格式的文件直接导入,也可选择手动创建。下面我分别演示一下两种添加方式:
1.yml方式创建zookeeper集群:首先创建docker-compose.yml,内容如下:
version: '2'
services:
zoo:
image: docker.io/zookeeper #镜像
network_mode: host # 网络模式选择主机
volumes:
- /data/zookeeper_data/data/:/data # 数据持久化,外置
- /data/zookeeper_data/conf:/conf # 配置文件外置,方便调整
ports:
- 2181:2181/tcp #暴露端口
labels:
io.rancher.scheduler.affinity:host_label: io.rancher.host.role=zookeeper #指定发布在特定主机标签的机器上
io.rancher.scheduler.global: 'true'
之后选择新建应用,导入即可,如下图:
2.手动创建
当上一步创建应用时如果不导入yml格式的文件,则应用创建成功后需要手动添加服务:
手动添加服务非常简单,如下图:
根据需求,手动创建服务的时候进行部分修改调整即可。最后即可看到发布的服务。