部署容器平台

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 日志。

results matching ""

    No results matching ""