一、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.sh
、rancher-load-images.sh
、rancher-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。