部署容器平台
TSF 可以对接 Rancher 作为容器平台,对接 Harbor 作为镜像仓库。这篇文档描述如何部署及对接 Rancher 及 Harbor。
与 TSF 对接的版本分别为:
- Rancher 2.2.2,实际部署时 必须 是这个版本,代码中有一些配置写死了
- Harbor 1.7.0,1.7.0 及 API 兼容的新版本均可
同时有一个 tsf-rancher-adapter 模块作为 TSF 跟 Rancher 间的适配层。访问关系如下:
- TSF Resource => tsf-rancher-adapter => Rancher API
- TSF Resource => Harbor API
部署一套演示用的容器平台组件时,不做高可用,所需部署的模块及机器要求如下:
模块 | 机器需求 |
---|---|
Harbor | 2C4Gx1 |
Rancher | 4C8Gx1 |
tsf-rancher-adapter | 与 Rancher 同机部署 |
业务计算节点 | 4C8Gx1(具体机器资源视业务情况而定) |
机器的网络配置,需要使用 按量计费 并给比较大的带宽(建议 20M),因为 Rancher 部署过程是在线的,需要在机器拉镜像。
部署完及对接完后,即可以在 TSF 上创建容器集群及导入机器,以及做与容器相关的其他操作。
下面的内容会一步步讲解整个部署过程。
部署 Docker
Harbor 及 Rancher 都是用 Docker 来运行的。分别在这两台机器上安装 Docker。需要分别在这两台机器上安装 Docker。为了安装简便,tsf-yum-repo
上已经放置了 Docker 相关的包,替换 tsf-yum-repo
的 IP 后执行下述命令安装它:
curl -o /etc/yum.repos.d/tsf.repo http://$TSF_YUM_REPO_IP:8081/tsf.repo
yum --disablerepo="*" --enablerepo=tsf install yum-utils device-mapper-persistent-data lvm2 docker-ce containerd.io
然后配置 Dockerhub 国内镜像并启动 Docker:
mkdir -p /etc/docker
touch /etc/docker/daemon.json
cat >> /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://7bezldxe.mirror.aliyuncs.com", "https://kw88y6eh.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload && systemctl restart docker
部署 Harbor
Harbor 需要通过 docker compose 来部署。执行下面指令安装 docker compose 并下载 Harbor 部署文件:
curl -L "https://tsf-deployment-1257356411.cos.ap-guangzhou.myqcloud.com/rancher/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
curl -L "https://tsf-deployment-1257356411.cos.ap-guangzhou.myqcloud.com/rancher/harbor-offline-installer-v1.8.1.tgz" -o harbor-offline-installer-v1.8.1.tgz
tar xfz harbor-offline-installer-v1.8.1.tgz
cd harbor
打开 harbor.yml
,将 hostname
改为本机内网 IP。运行 sh install.sh
进行安装。
安装完成后通过机器外网 IP 打开 Harbor 控制台,用户名密码为初始的 admin
/ Harbor12345
。系统会提示要你设置一个 URL,填入机器的内网 IP 即可。至此 Harbor 安装完成。
有更多的需求或者问题,可以参考 Harbor 的 安装文档。
部署 Rancher
在 Rancher 机器上运行:
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest
等待安装完成后,通过机器外网 IP 打开 Rancher 控制台,需要配置初始用户名密码,并设置一个 API URL。这个 URL 填写 Rancher 机器内网 IP 地址即可。
有更多的需求或者问题,可以参考 Harbor 的 安装文档。
部署 tsf-rancher-adapter
部署adapter的机器需要先安装jdk,然后再到 tsf-rancher-adapter 机器上执行下述命令:
curl -L https://tsf-deployment-1257356411.cos.ap-guangzhou.myqcloud.com/rancher/install-tsf-rancher-adapter.sh | /bin/bash -s -- <本机内网IP>
配置 TSF 运营端参数
进入 TSF 运营端参数配置页面,点击「修改当前值」,容器平台选 standard,然后配置下述的相关参数:
tsf.container.cp-cluster-name-prefix
:填tsf-
tsf.container.master.address
: 填https://<rancher 机器内网 IP>:10001
,如http://172.16.16.83:10001
tsf.container.master.pathPrefix
: 填/v1.x
tsf.container.master.authorization
: 登陆 Rancher 控制台,在界面右上角点击用户头像,选「API & Keys」,点「Add Key」,Description 填 TSF,点 Create,复制下生成的 Bearer Token 填入。比如Bearer token-mqvtb:nq6frgzxw6gjs8h222mbx2b7gkfzgqc8h2prpvcgjrzk6ztsdq4xqq
tsf.container.master.addtional-headers.username
: 填-
tsf.container.registry.type
: 填harbor
tsf.container.registry.address
: 填http://<harbor 机器内网 IP>
,如http://172.16.16.130
tsf.container.registry.pathPrefix
: 填/api
tsf.container.registry.authorization
: 填Basic YWRtaW46SGFyYm9yMTIzNDU=
,即默认的用户名密码admin
/Harbor12345
生成的 Base64 串tsf.container.registry-usage.address
: 填http://<harbor 机器内网 IP>
,如http://172.16.16.130
tsf.container.registry-usage.username
: 填admin
tsf.container.image.agent
: 填tsf_base/agent:1.12
,最后的1.12
视当前 TSF 版本而定tsf.container.image.istio-proxy
: 填tsf_base/istio_proxy:1.12
,最后的1.12
视当前 TSF 版本而定tsf.container.instance-import-mode
: 填S
tsf.container.master-num-limit
: 填1
tsf.container.node-num-limit-per-setup
: 填5
tsf.container.allow-empty-nodes
: 填true
填好并保存后,需要在运营端重启 tsf-resource 模块。
上传公共镜像
这块参考 TSF 部署文档中的「容器公共镜像上传」一节。注意 Harbor 默认用的是 HTTP 模式,需要给 Docker daemon 加 insecure-registries
配置。docker login 用的 username 为 admin
,密码默认为 Harbor12345
。
创建容器集群及导入机器
至此部署及对接容器平台已经完成,可以到 TSF 上创建容器集群及做后续验证。集群初始化或导入机器时,注意被导入的机器上需要满足这些条件:
- 安装好 Docker,可以按上文描述的方法,同时配置好 Dockerhub 国内镜像
- Docker daemon 配置了
insecure-registries
,值为 Harbor 的地址 - 主机名只能有小写字母(
a-z
)、数字(0-9
)及横杆(-
),不能有下划线(_
)。使用hostnamectl set-hostname
修改主机名 - 机器带宽最好有 20M
一些排障方法:
- 集群初始化一般需要不到 5 分钟。如果你的集群状态一直是未知,可以登陆 Rancher 控制台观察是否有错误信息。
- 可以在 Rancher 机器上运行
journalctl -xe -u tsf-rancher-adapter | less
观察tsf-rancher-adapter
日志。