一、rancher简介

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

二、rancher离线安装

本文基于rancher2.5.1版本进行安装部署。

如果有网络环境,直接运行下面的命令就可自动安装成功。

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

大多时候,我们内网的环境可能是没有网络环境,这个时候就需要离线安装,rancher提供离线安装方式,首先在外网下载好需要用的脚本与docker镜像:
下载地址:https://github.com/rancher/rancher/releases 推荐下载Stable版本,bug相对较少,不要下载标记为 rc 或 Pre-release 的版本,因为它们在生产环境下是不稳定的。下载好rancher-save-images.shrancher-load-images.shrancher-images.txt、三个脚本,脚本执行 ./rancher-save-images.sh --image-list ./rancher-images.txt。这个脚本会自动下载rancher需要用的docker镜像。下载完成后将生成的ancher-images.tar.gz与上面的三个脚本一同复制到内网放在同一目录下。

注:里面存在同一镜像多个版本,可保留一个版本即可

去除重复的镜像源:

sort -u rancher-images.txt -o rancher-images.txt

Release

文件描述

rancher-images.txt

此文件包含安装 Rancher、创建集群和运行Rancher 工具所需的镜像列表。

rancher-save-images.sh

这个脚本会从 DockerHub 中拉取在文件rancher-images.txt中描述的所有镜像,并将它们保存为文件rancher-images.tar.gz。

rancher-load-images.sh

这个脚本会载入文件rancher-images.tar.gz中的镜像,并将它们推送到您自己的私有镜像库。

将打包好的镜像导入到docker中,执行:
docker load -i rancher.tar。 稍等片刻便会导入成功。

rancher-load-images.sh用于将打包好的镜像导入到docker。导入成功后启动rancher,执行:

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

稍等片刻访问 https://ipaddress就能进入rancher

三、使用Harbor配置Docker镜像仓库

Harbor是企业级镜像仓库,官方地址:https://github.com/goharbor/harbor/releases 下载离线安装包:harbor-offline-installer-v2.0.5.tgz 并复制到内网。harbor需要用到证书,先生成自己的证书,证书的CN需要与域名或者ip完全一致:

$ mkdir -p certs

$ openssl req \
  -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
  -x509 -days 365 -out certs/domain.crt

编辑配置文件harbor.yml, 修改 hostname 域名、https 证书等配置信息,其它的可按需修改:

# Configuration file of Harbor
# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 10.10.10.10 # hostname不能是localhost或127.0.0.1
# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 80
# https related config
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /certs/domain.crt # 证书路径
  private_key: /certs/domain.key  #私钥路径

接着执行如下命令进行安装:

$ ./install.sh --with-clair

--with-clair 指定安装 Clair 服务,一个用户镜像漏洞静态分析的工具。如果不需要,可以省略该选项。

安装成功后, 可通过https://ipadress来访问web UI .默认的账号密码是admin/Harbor12345

四、推送镜像到私仓

推送之前需要先登录,使用docker login命令,如下。

$ docker login 10.10.10.10
Username: admin
Password: Harbor12345

Login Succeeded

因为我们用的自签证书,docker可能会提示证书不受信,需要配置docker信任我们的自签证书

1、复制证书到:etc/docker/certs.d/10.10.10.10/ca.crt , 其中文件夹
10.10.10.10需要根据实际ip地址或者域名填写。

如果是windows服务器上需要安装到受信任的根证书目录

其它服务器可参考docker官网文档:https://docs.docker.com/registry/insecure/

如果提示:

docker: Error response from daemon: Get https://x.x.x.x/v2/: x509: cannot validate certificate for x.x.x.x because it doesn't contain any IP SANs

简单的方案是加入--insecure-registry参数:

vim /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 一行后面添加 --insecure-registry==你的ip或者域名

然后重启docker

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

使用rancher-load-images.sh将下载好的镜像导入到私仓

./rancher-load-images.sh --image-list ./rancher-images.txt --registry <REGISTRY.YOURDOMAIN.COM:PORT>`

<REGISTRY.YOURDOMAIN.COM:PORT>是harbor的地址,443可以不用填写

五、rancher集群配置

rancher 默认创建了local集群,里面有两个项目,一个system,一个default。关于命令空间与项目,可访问https://docs.rancher.cn/docs/rancher2/cluster-admin/projects-and-namespaces/_index/ 官网查看详细解释。官方不推荐去操作local集群里面的服务。所以我们新建一个集群。

新建一个集群,指定私仓为我们刚搭建的ip。

rancher配置docker rancher配置harbo_docker