Rancher Installation Guide

在容器的江湖里,如果你没听过 k8s, 那可能你就 out 了,但原生的 k8s 对于程序员来说,是有一定门槛的。本文介绍的 Rancher 则作为一款完全开源的容器管理平台,它极大的降低了我们的使用门槛,那么本文将围绕 安装 + 使用 两个方面作一个入门介绍。

Rancher 介绍

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

环境准备

最好的情况是有三台的服务器, 这样能看到集群的效果

安装 Docker

前面有介绍 Docker Installation 这里就不再赘述了

安装 Kubectl

这里有官方的安装文档, 但需要翻墙, 国内用户可以找下其他方式

Rancher 安装

官方文档

选择一台机器来安装

1
2
3
4
5
6
docker run -d --restart=unless-stopped \
-p 8282:80 -p 8443:443 \
-v /home/rancher/data:/var/lib/rancher/ \
-v /home/rancher/log/auditlog:/var/log/auditlog \
-e AUDIT_LEVEL=3 \
rancher/rancher:stable

请按照自己的实际要求, 映射端口和数据卷

Rancher 配置

官方文档

访问上一步选择安装的服务器 IP:8282

第一次打开, 会要求设置管理员密码

要求设置 Rancher Server URL, 这里要保证其他的 Rancher Agent 机器能够访问到

创建 K8s 集群

官方文档

注意:

  • 在集群注册后, 要耐心等待一段时间(比较长, 笔者预计10min), 这个期间集群节点的状态会出现很多异常, 最终会显示 Active 状态.

Rancher k8s Node

安装 Webhooks

官方文档

注意:

  • 邮件的配置可以忽略
  • webhook_url 为 webhooks 对外服务的IP:Port
  • Jenkins 请使用 自定义webhooks 格式, 提交的 json 中 repository.namespace 为 harbor 项目
  • webhooks-conf 的json 配置实际上是一个表达式的验证, Webhooks 中的参数与配置的对应, 即可触发
    • APP_NS 对应的 Rancher 的命名空间
    • APP_WORKLOAD 对应的是 部署类型
    • APP_CONTAINER 对应的是 容器名称

Rancher webhooks Conf

使用心得

  • 在传统的 docker-compose 中, 如果我们依赖某个服务, 一般会使用 link, 例如 app 依赖 db, 那么在 rancher 中我们可以将数据库服务命名为 db, app 与 db 在同一个命名空间里的话, 会自动解析 db, 应用内部可以直接使用 db
  • 自动化部署集成思路
    • Gitlab : Commit 触发 Jenkins Webhooks
    • Jenkins : 自动编译及打包镜像 推送到 Harbor, 触发 Rancher Webhooks
    • Harbor : 存储及分发镜像
    • Rancher : 部署 APP 集群, 接收 Webhooks 自动升级镜像