一、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。