Rancher目前是企业级Kubernetes集群管理中比较好的工具,通过Rancher搭建好Kubernetes集群后怎么实现项目的自动部署呢,虽然Rancher提供了持续集成能力,但失败概率很高同时工具链都不是太成熟,一般持续集成我们还是推荐Jenkins做。

首先需要安装Jenkins的Kubernetes CLI Plugin 插件,他依赖Kubernetes plugin 同时对其进行了拓展。

其次是需要在Jenkins的宿主机上安装kubectl ,让我们可以通过命令远程操作Kubernetes,根据Jenkins安装方式不同选择相应安装,由于我们是基于Docker安装,所以我们对官方镜像进行了二次打包,方便我们使用。下面是我们使用的Dockerfile.

FROM jenkins:latest

# 使用root用户
USER root

# 替换阿里云软件源
RUN echo "deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib\n\
deb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib\n\
deb http://mirrors.aliyun.com/debian-security stretch/updates main\n\
deb-src http://mirrors.aliyun.com/debian-security stretch/updates main\n\
deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib\n\
deb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib\n\
deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib\n\
deb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib\n\
deb http://deb.debian.org/debian stretch main\n\
deb http://security.debian.org/debian-security stretch/updates main\n\
deb http://deb.debian.org/debian stretch-updates main" > /etc/apt/sources.list

# 安装make(NodeJS要用)
RUN apt-get update
RUN apt-get install -y make gcc g++

# 安装kubernetes 阿里源
RUN apt-get install -y apt-transport-https
RUN curl -O https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg
RUN apt-key add apt-key.gpg
RUN echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list

# 安装kubectl
RUN apt-get update
RUN apt-get install -y kubectl

# 切换回原用户
USER jenkins

当上述前置工作做好之后,我们就可以去Rancher找到我们需要部署的Kubernetes集群获取相应远程操作URL和Token信息,同时Rancher的权限是和用户绑定的,我们建议单独创建用户,同时登录改用户去获取Kubernetes配置信息。

接下来就可以通过Jenkins远程部署Kubernetes项目了,随意创建一个项目,在项目的构建环境中就可以加入kubectl环境,然后具体构建中就可以通过shell操作Kubernetes集群!