升级Rancher服务器


注意:如果要升级到v1.6.x,请阅读我们关于v1.6.0的发行说明,了解此次升级的新增功能。

根据您如何安装Rancher服务器,升级步骤可能会有所不同。

注意:如果您在原始的Rancher服务器设置中设置了一些环境变量或ldap证书,则需要在新命令中添加这些环境变量或证书。

Rancher服务器标签

Rancher服务器有2个不同的标签。对于每个主要版本标签,我们将提供特定版本的文档。

  • rancher/server:latest标签将是我们最新的开发版本。这些构建将通过我们的CI自动化框架进行验证。这些版本不适用于部署在生产中。
  • rancher/server:stable标签将是我们最新的稳定发布版本。此标签是我们推荐用于生产的版本。

请不要使用任何带有rc{n}后缀的版本。这些rc构建意味着Rancher团队测试构建。

基础设施服务

在Rancher服务器升级后,您的基础架构服务可能有可用的升级。升级Rancher服务器后,我们建议您检查基础架构堆栈,以查看是否有堆栈升级可用。如果有升级可用,请一次性升级这些堆栈。请完成升级,然后继续升级下一个基础架构堆栈。

Rancher Agents

每个Rancher代理版本对应一个Rancher服务器版本。如果升级Rancher服务器那么Rancher代理也需要升级,我们将自动将代理升级到最新版本的Rancher代理。

升级单个容器(非HA)

如果您在使用外部数据库或绑定的MySQL卷的情况下启动Rancher服务器,则Rancher服务器数据库位于Rancher服务器容器中。我们将使用正在运行的Rancher服务器容器来创建一个数据容器。该数据容器将通过 --volumes-from去启动一个新的Rancher服务器容器。或者,您可以将数据库从容器中复制到主机上的目录,并绑定挂接数据库。

  1. 停止容器

    $ docker stop < container_name_of_original_server >
    
  2. 创建一个rancher-data容器。注意:如果您以前已经升级并且已经有一个rancher-data容器,则可以跳过此步骤。

    $ docker create --volumes-from < container_name_of_original_server > \
     --name rancher-data rancher/server:< tag_of_previous_rancher_server >
    
  3. 拉取Rancher Server的最新镜像。注意:如果您跳过此步骤并尝试运行latest镜像,则不会自动拉出更新的镜像。

    $ docker pull rancher/server:latest
    
  4. 使用 rancher-data的数据运行一个新的Rancher Server 容器。Rancher中的任何更改将保存在rancher-data容器中。如果您在服务器中看到有关日志锁的异常,请参阅如何修复日志锁

    注意:根据您有Rancher服务器的时间长短,某些数据库迁移可能需要比预期的更长的时间。请不要在升级过程中停止升级,因为下次升级时会遇到数据库迁移错误。

    $ docker run -d --volumes-from rancher-data --restart=unless-stopped \
         -p 8080:8080 rancher/server:latest
    

  5. 删除旧的Rancher服务器容器。注意:如果您用的 --restart=always参数,那么即使停止该容器,重启机器后它将会重新运行。-我们建议使用参数-restart=unless-stopped并且升级成功后,建议您移除该容器。

升级单个容器(非HA) - 外部数据库

如果您使用外部数据库启动Rancher服务器,则可以停止原始的Rancher服务器容器,并使用相同的外部DB指令启动新版本的Rancher服务器。升级您的Rancher服务器之前,建议您备份外部数据库。新服务器启动并运行后,您可以删除旧的Rancher服务器容器。

升级单个容器(非HA) - 绑定的MySQL卷

  1. 停止运行的Rancher Server容器。

    $ docker stop < container_name_of_original_server >
    
  2. 将数据库文件从服务器容器中复制出来。注意:如果您已将数据库存储在主机上,则可以跳过此步骤。另外,如果DB被复制出容器,那么它将在/ mysql /里面,因为Docker把它复制出来。当装入到容器中时,一定要考虑到这一点。如果你启动了bind mount,你将不需要mysql /。

    $docker cp <container_name_of_original_server>:/var/lib/mysql <path on host>
    
  3. 现在为文件夹设置UID / GID,以便容器内的mysql用户拥有正确的mysql mount的所有权。

    $ sudo chown -R 102:105 <path on host>
    
  4. 启动新的服务器容器。

    $ docker run -d -v < path_on_host >:/ var / lib / mysql -p 8080:8080 \
      --restart = unless-stopped rancher / server:latest
    

注意:如果从上一个容器中复制了一个数据库,那么在主机路径的末端,你必须拖尾'/'。否则,目录最终会在错误的地方。

  1. 删除旧的Rancher服务器容器。注意:如果您只停止容器,如果您使用的是--restart=always,如果重新启动机器,则容器将重新启动。我们建议使用--restart=unless-stopped并且升级成功后,建议您移除该容器。

升级HA设置

如果您在高可用性(HA)中启动了Rancher服务器,新Rancher HA设置将继续使用外部数据库,用于安装原来的HA设置。

注意:升级HA设置时,Rancher服务器设置将在升级期间关闭。

  1. 升级您的Rancher服务器之前,建议您备份外部数据库。

  2. 在HA设置中的每个节点上,停止并删除正在运行的Rancher容器,然后使用您在安装Rancher服务器时使用的相同命令启动一个新的Rancher服务器容器,但使用一个新的Rancher服务器映像标记。

     On all nodes, stop all Rancher server containers
       $ docker stop <container_name_of_original_server>
       # Execute the scrip with the latest rancher/server version
       $ docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 rancher/server --db-host myhost.example.com --db-port 3306 --db-user username --db-pass password --db-name cattle --advertise-address <IP_of_the_Node>
    

    注意:如果要从运行旧版本的HA,您将需要删除所有正在运行的Rancher HA容器。$ sudo docker rm -f $(sudo docker ps -a | grep rancher | awk {'print $ 1'})

没有互联网访问的Rancher服务器

没有互联网的用户将需要下载最新的基础架构服务镜像,以便升级成功。没有最新默认模板中的镜像,基础架构服务将无法升级。

results matching ""

    No results matching ""