升级单节点 Rancher

    • 从 Rancher 文档中的 已知升级问题 查看升级 Rancher 中最值得注意的问题。可以在GitHub 和 的发行说明中找到每个 Rancher 版本的已知问题的更完整列表。
    • 仅对于离线安装,拉取并上传新的 Rancher Server 版本的镜像。请按照指南,来准备您要升级的版本的镜像。

    在升级过程中,您将输入一系列命令,按照您的情况替换命令中的占位符。这些占位符用尖括号和大写字母()表示。

    这是带有占位符的命令的示例

    Copy

    在此命令中,<RANCHER_CONTAINER_NAME> 是您的 Rancher 容器的名称。

    请交叉参考下面的图片和参考表,以了解如何获取此占位符数据。在开始升级之前,写下或复制此信息。

    终端 “docker ps” 命令,显示在何处找到 <RANCHER_CONTAINER_TAG> 和 <RANCHER_CONTAINER_NAME>

    您可以通过远程连接登录到 Rancher Server 所在的主机并输入命令以查看正在运行的容器:docker ps,从而获得 <RANCHER_CONTAINER_TAG><RANCHER_CONTAINER_NAME>的值。您还可以使用其他命令查看停止的容器:docker ps -a。在创建备份期间,您可以随时使用这些命令获得帮助。

    在升级期间,您可以从当前 Rancher 容器中创建数据的副本和备份,确保可以在升级出现问题时回滚。然后,您可以使用现有数据部署新版本的 Rancher。请按照以下步骤升级 Rancher Server:

    1. 使用远程终端连接,登录运行 Rancher Server 的节点。

    2. 运行以下命令,停止当前正在运行的 Rancher Server 的容器。请将<RANCHER_CONTAINER_NAME> 替换为 Rancher 容器的名称。

      1. docker stop <RANCHER_CONTAINER_NAME>

      Copy

    3. 运行以下命令,从刚刚停止的 Rancher 容器中创建一个数据容器。请替换下面命令中每个占位符

        Copy

      创建备份压缩包

      1. 根据您刚创建的数据容器(rancher-data),创建一个备份压缩包 (rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz)。

        如果升级期间出现问题,则此备份包将用作回滚点。使用以下命令,替换每个。

        1. docker run --volumes-from rancher-data -v $PWD:/backup busybox tar zcvf /backup/rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz /var/lib/rancher

        Copy

        步骤结果: 当您输入此命令时,应运行一系列命令。

      2. 输入ls命令以确认备份压缩包创建成功。它的名称类似于 rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz

      3. 将备份压缩包移到 Rancher Server 外部的安全位置。

      拉取要升级到的 Rancher 版本的映像。

      占位符描述
      <RANCHER_VERSION_TAG>您要升级到的Rancher 版本 的发行标签。
      1. docker pull rancher/rancher:<RANCHER_VERSION_TAG>

      Copy

      启动新的 Rancher Server 容器

      使用来自rancher-data容器的数据启动一个新的 Rancher Server 容器。记住要传入启动原始容器时使用的所有环境变量。

      如果使用代理,请参阅 HTTP 代理配置

      如果您配置了自定义 CA 根证书来访问服务,请参阅。

      如果您在通过 Rancher API 记录操作事件,请参阅 API 审计

      要查看启动新的 Rancher Server 容器时要使用的命令,请从以下选项中选择:

      • 单节点 Rancher 升级
      • 离线安装的单节点 Rancher 升级

      单节点 Rancher 升级

      选择您安装 Rancher Server 时所用的选项

      选项 A - 使用 Rancher 默认的自签名证书

      如果选择使用 Rancher 生成的自签名证书,则在启动原始 Rancher Server 容器的命令中添加--volumes-from rancher-data

      占位符描述
      <RANCHER_VERSION_TAG>您要升级到的的发行标签。
      1. docker run -d --privileged --volumes-from rancher-data \
      2. --restart=unless-stopped \
      3. -p 80:80 -p 443:443 \
      4. rancher/rancher:<RANCHER_VERSION_TAG>

      Copy

      选项 B - 使用自己的自签名证书

      如果您选择携带自己的自签名证书,则在启动原始 Rancher Server 容器的命令中添加--volumes-from rancher-data,并需要可以访问到原始安装时使用的证书。

      证书先决条件提示: 证书文件必须为。在您的证书文件中,包括链中的所有中间证书。您需要对您的证书进行排序,把您的证书放在最签名,后面跟着中间证书。有关示例,请参见SSL 常见问题解答/故障排查

      1. --restart=unless-stopped \
      2. -p 80:80 -p 443:443 \
      3. -v /<CERT_DIRECTORY>/<FULL_CHAIN.pem>:/etc/rancher/ssl/cert.pem \
      4. -v /<CERT_DIRECTORY>/<PRIVATE_KEY.pem>:/etc/rancher/ssl/key.pem \
      5. -v /<CERT_DIRECTORY>/<CA_CERTS.pem>:/etc/rancher/ssl/cacerts.pem \
      6. rancher/rancher:<RANCHER_VERSION_TAG>

      Copy

      选项 C - 使用自己的由可信 CA 签名的证书

      如果选择使用由可信 CA 签名的证书,则将 --volumes-from rancher-data 添加到启动原始 Rancher Server 容器的命令中,并需要可以访问到原始安装时使用的证书。请记住,要在容器启动命令中包含--no-cacerts参数,以禁用 Rancher 生成的默认 CA 证书。

      证书先决条件提示: 证书文件必须为PEM 格式。在您的证书文件中,包括可信 CA 提供的所有中间证书。您需要对您的证书进行排序,把您的证书放在最签名,后面跟着中间证书。有关示例,请参见。

      占位符描述
      <CERT_DIRECTORY>包含证书文件的目录的路径。
      <FULL_CHAIN.pem>完整证书链的路径。
      <PRIVATE_KEY.pem>证书私钥的路径。
      <RANCHER_VERSION_TAG>您要升级到的Rancher 版本的发行标签。

      Copy

      选项 D - 使用 Let’s Encrypt 证书

      证书先决条件提示:

      • 在您的 DNS 中创建一条记录,将您的 Linux 主机 IP 地址绑定到您要用于 Rancher 访问的主机名(例如,rancher.mydomain.com)。
      • 在 Linux 主机上打开端口 TCP/80。Let’s Encrypt 的 http-01 challenge 可以来自任何源 IP 地址,因此端口TCP/80必须对所有 IP 地址开放。
      占位符描述
      <RANCHER_VERSION_TAG>您要升级到的Rancher 版本的发行标签。
      <YOUR.DNS.NAME>您最初开始使用的域地址
      1. docker run -d --privileged --volumes-from rancher-data \
      2. -p 80:80 -p 443:443 \
      3. rancher/rancher:<RANCHER_VERSION_TAG> \
      4. --acme-domain <YOUR.DNS.NAME>

      Copy

      离线安装的单节点 Rancher 升级

      为了安全起见,使用 Rancher 时需要 SSL(安全套接字层)。SSL 保护所有 Rancher 网络通信的安全,例如在您登录集群或与集群交互时。

      对于从 v2.2.0 到 v2.2.x 的 Rancher 版本,您需要将system-charts代码库镜像到网络中 Rancher 可以访问的位置。然后,在安装 Rancher 之后,您将需要配置 Rancher 以使用该代码库。有关详细信息,请参考 在 v2.3.0 之前为 Rancher 设置 System Charts

      启动新的 Rancher Server 容器时,请从以下选项中选择:

      选项 A - 使用 Rancher 默认的自签名证书

      如果选择使用 Rancher 生成的自签名证书,则在启动原始 Rancher Server 容器的命令中添加--volumes-from rancher-data

      1. docker run -d --privileged --volumes-from rancher-data \
      2. -p 80:80 -p 443:443 \
      3. -e CATTLE_SYSTEM_DEFAULT_REGISTRY=<REGISTRY.YOURDOMAIN.COM:PORT> \ # Set a default private registry to be used in Rancher
      4. -e CATTLE_SYSTEM_CATALOG=bundled \ #Available as of v2.3.0,use the packaged Rancher system charts
      5. <REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher:<RANCHER_VERSION_TAG>

      Copy

      选项 B - 使用自己的自签名证书

      如果您选择携带自己的自签名证书,则在启动原始 Rancher Server 容器的命令中添加--volumes-from rancher-data,并需要可以访问到原始安装时使用的证书。

      占位符描述
      <CERT_DIRECTORY>包含证书文件的目录的路径。
      <FULL_CHAIN.pem>完整证书链的路径。
      <PRIVATE_KEY.pem>证书私钥的路径。
      <CA_CERTS.pem>证书颁发机构的证书的路径。
      <REGISTRY.YOURDOMAIN.COM:PORT>您的私有仓库 URL 和端口。
      <RANCHER_VERSION_TAG>您要升级到的的发行标签。
      1. docker run -d --privileged --restart=unless-stopped \
      2. -p 80:80 -p 443:443 \
      3. -v /<CERT_DIRECTORY>/<FULL_CHAIN.pem>:/etc/rancher/ssl/cert.pem \
      4. -v /<CERT_DIRECTORY>/<PRIVATE_KEY.pem>:/etc/rancher/ssl/key.pem \
      5. -v /<CERT_DIRECTORY>/<CA_CERTS.pem>:/etc/rancher/ssl/cacerts.pem \
      6. -e CATTLE_SYSTEM_DEFAULT_REGISTRY=<REGISTRY.YOURDOMAIN.COM:PORT> \ # Set a default private registry to be used in Rancher
      7. -e CATTLE_SYSTEM_CATALOG=bundled \ #Available as of v2.3.0,use the packaged Rancher system charts

      Copy

      选项 C - 使用自己的由可信 CA 签名的证书

      如果选择使用由可信 CA 签名的证书,则将 --volumes-from rancher-data 添加到启动原始 Rancher Server 容器的命令中,并需要可以访问到原始安装时使用的证书。请记住,要在容器启动命令中包含--no-cacerts参数,以禁用 Rancher 生成的默认 CA 证书。

      证书先决条件提示: 证书文件必须为。在您的证书文件中,包括可信 CA 提供的所有中间证书。您需要对您的证书进行排序,把您的证书放在最签名,后面跟着中间证书。有关示例,请参见SSL 常见问题解答/故障排查

      占位符描述
      <CERT_DIRECTORY>包含证书文件的目录的路径。
      <FULL_CHAIN.pem>完整证书链的路径。
      <PRIVATE_KEY.pem>证书私钥的路径。
      <REGISTRY.YOURDOMAIN.COM:PORT>您的私有仓库 URL 和端口。
      <RANCHER_VERSION_TAG>您要升级到的 的发行标签。

      注意: 使用--no-cacerts作为容器的参数来禁用 Rancher 生成的默认 CA 证书。

      Copy

      结果: 您已经升级了 Rancher。现在,已升级服务器中的数据将保存到rancher-data容器中,以用于将来的升级。

      登录 Rancher,查看浏览器窗口左下角显示的版本号,确认升级成功。

      删除旧的 Rancher Server 容器

      如果仅停止了 Rancher Server 容器,则该容器可能会在下一个服务器重启后重新启动。所以您需要删除旧版 Rancher Server 容器。