企业级容器管理平台 Rancher 介绍入门及如何备份数据

是什么

  • Rancher 是一个为 DevOps 团队提供的完整的 Kubernetes 与容器管理解决方案的开源的企业级容器管理平台。它解决了多 Kubernetes 集群管理、操作和安全的难题,同时为 DevOps 团队提供了运行容器化工作负载的管理工具

为什么

  • docker 的使用其实很简单很方便,一条docker run命令就可以跑起一个服务,比如一个 web 系统、一个数据库。可能有的软件配置很复杂,但是用 docker 你可以一条命令就快速跑起来
  • 生产中的跑在 docker 中的服务,跟平常方式部署的服务一样,也需要管理。部署、数据备份、升级、扩容,服务多了大了,还有服务发现、负载均衡等。如果手工操作,面对成千上百的服务,运维成本过大。于是有了 k8s,进行容器编排管理
  • Kubernetes 集群管理并不是那么容易, 而 Rancher 作为 Kubernetes 管理工具,它可以轻松部署新 K8S 集群,启动 EKS、GKE 和 AKS 集群,甚至导入现有的 Kubernetes 集群。

怎么用

  • 友好 ui 界面,傻瓜式操作,请看下文教程

创建

  • 本教程对应的版本是 2.17,网上很多是 1.x 的版本教程
  • 由于是单节点部署,注意不要占用 80 和 443 端口,rancher 内置的 nginx-ingress 默认使用的就是 80 和 443 端口,会造成端口冲突,导致 nginx-ingress 服务不正常
  • 而且访问 rancher 的 8080 端口,重定向到 https 的连接,默认用的是 8443 端口,所以这些端口最好不要乱改
sudo docker run -d --restart=unless-stopped --name rancher -p 8080:80 -p 8443:443 rancher/rancher
  • 基础步骤请参考文档

  • 创建完集群的过程可能是一两分钟,创建完成之后在所创建的集群菜单下会有 default 和 system 两个选项卡,平时我们的操作主要是在 default

注册主机

  • 注意服务器地址,如果使用了其他端口,要加端口,这里由于是重新修改的端口,改成 8080 了,但是图中配置还是默认 80 端口

部署服务

  • 集群创建完成,部署服务,仅是在 ui 界面简单配置一下即可,并且该服务还有重新部署、部署备份、回滚等功能。就是这么强大方便

出现的问题

  • 添加 ingress 后,一直初始化失败,经过排查,就是上述说的端口占用问题,如图

  • 点击到 system 选项进去查看,可以看到 nginx-ingress 服务用的就是 80 和 443 端口,所以才会一直是初始化状态



  • 相关 issues https://github.com/rancher/rancher/issues/16172

备份

  • 出现了上述问题,除了全部删除重建,还可以备份一下,修改端口重新部署,然后还原备份,可以趁机学习一下备份操作

  • 官方备份相关文档

  • 命令说明,通过docker ps -a查看所有容器,得到版本等相关信息

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

<DATE>替换为日期 2019-03-14

<RANCHER_VERSION>替换 rancher 版本为 v2.1.7

1.创建数据卷

docker run --volumes-from rancher-data-2019-03-14 -v $PWD:/backup alpine tar zcvf /backup/rancher-data-backup-v2.1.7-2019-03-14.tar.gz /var/lib/rancher

2.停止容器

docker ps 可看到容器列表,查看镜像名为 rancher 的一项找到名称

docker stop <RANCHER_CONTAINER_NAME>

<RANCHER_CONTAINER_NAME>替换为容器名

docker stop rancher

3.创建数据容器

docker create --volumes-from <RANCHER_CONTAINER_NAME> --name rancher-data-<DATE> rancher/rancher:<RANCHER_CONTAINER_TAG>

<RANCHER_CONTAINER_NAME>替换为容器名 rancher

<DATE>替换为日期 2019-03-14

<RANCHER_CONTAINER_TAG>替换为镜像名后面的 tag 标签,没有则不填,连同冒号删掉

docker create --volumes-from rancher --name rancher-data-2019-03-14 rancher/rancher

4.创建一个备份 tarball

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

<DATE>替换为日期 2019-03-14

<RANCHER_VERSION>替换为 rancher 版本 v2.1.7

docker run --volumes-from rancher-data-2019-03-14 -v $PWD:/backup:z alpine tar zcvf /backup/rancher-data-backup-v2.1.7-2019-03-14.tar.gz /var/lib/rancher

5.运行结果

输入 ls 命令查看文件,可以看到名字类似于 rancher-data-backup-<RANCHER_VERSION>-<DATE>.tar.gz 的文件

6.保存备份

将备份 tarball 移动到 Rancher Server 外部的安全位置。然后把 rancher-data-<DATE>容器删除

docker rm rancher-data-2019-03-14

7.启动 rancher

docker start rancher

恢复

docker run --volumes-from <RANCHER_CONTAINER_NAME> -v $PWD:/backup

alpine sh -c "rm /var/lib/rancher/* -rf &&

tar zxvf /backup/rancher-data-backup-<RANCHER_VERSION>-.tar.gz"

docker run --volumes-from rancher -v $PWD:/backup \

alpine sh -c "rm /var/lib/rancher/* -rf && \

tar zxvf /backup/rancher-data-backup-v2.1.7-2019-03-14.tar.gz"

总结

  • 官方的入门文档是图文式的,一步步来还是没什么问题的,但是小问题总会有,不熟悉的人很容易被坑。如何顺利排坑呢,还是需要熟悉相关知识,比如 k8s 命令,错误日志查看,nginx 负载均衡等,涉及知识面广。都不熟悉的话,出了问题便很难解决

企业级容器管理平台 Rancher 介绍入门及如何备份数据的更多相关文章

  1. Docker容器管理平台Rancher高可用部署——看这篇就够了

    记得刚接触Rancher时,看了官方文档云里雾里,跟着官网文档部署了高可用Rancher,发现不管怎么折腾都无法部署成功(相信已尝试的朋友也有类似的感觉),今天腾出空来写个总结,给看到的朋友留个参考( ...

  2. [转帖]devops 容器管理平台 rancher 简介

    https://testerhome.com/topics/10828 chenhengjie123 for PPmoney · 2017年11月13日 · 最后由 c19950809 回复于 201 ...

  3. 物联网架构成长之路(45)-容器管理平台Rancher

    0.前言 按照上一篇博客,我已经把需要下载的rancher docker 依赖镜像下载上传到Harbor了. 1. 安装 执行如下,实现一键安装 docker run -d --restart=unl ...

  4. 微服务下的容器部署和管理平台Rancher

    Rancher是什么 Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台.Rancher提供了在生产环境中使用的管理Docke ...

  5. Rancher 容器管理平台-免费视频培训-链接及内容-第三季

    Rancher 容器管理平台-免费视频培训-链接及内容 第三季 第5期-2018年05月10日-持续集成的容器化实践回放网址:http://www.itdks.com/liveevent/detail ...

  6. 【Docker】Docker管理平台 Rancher ---- 你应该学学Rancher是怎么做容器的管理的

    Elasticsearch is a Lucene-based search engine developed by the open-source vendor, elastic. With pri ...

  7. 强大多云混合多K8S集群管理平台Rancher入门实战

    @ 目录 概述 定义 为何使用 其他产品 安装 简述 规划 基础环境 Docker安装 Rancher安装 创建用户 创建集群 添加Node节点 配置kubectl 创建项目和名称空间 发布应用 偏好 ...

  8. KubeSphere企业级分布式多租户容器管理平台

    KubeSphere企业级分布式多租户容器管理平台 KubeSphere安装部署2.1.0DEV版本

  9. 轻量化安装 TKEStack:让已有 K8s 集群拥有企业级容器云平台的能力

    关于我们 更多关于云原生的案例和知识,可关注同名[腾讯云原生]公众号~ 福利: ①公众号后台回复[手册],可获得<腾讯云原生路线图手册>&<腾讯云原生最佳实践>~ ②公 ...

随机推荐

  1. 洛谷P1265 公路修建题解

    题目描述 某国有n个城市,它们互相之间没有公路相通,因此交通十分不便.为解决这一“行路难”的问题,政府决定修建公路.修建公路的任务由各城市共同完成. 修建工程分若干轮完成.在每一轮中,每个城市选择一个 ...

  2. MongoDB 数据库创建删除

    在MongoDB数据库里面是存在有数据库的概念,但是没有模式(所有的信息都是按照文档保存的),保存数据的结构就是JSON结构,只不过在进行一些数据处理的时候才会使用到MongoDB自己的一些操作符号 ...

  3. GO语言GIN框架入门

    Gin框架介绍 Gin是一个用Go语言编写的web框架.它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍. 中文文档 Gin框架安装与使用 ...

  4. java操作数据库,以页面显示学生信息为例

    该部分内容实现的功能主要是:从数据库中查询数据并展示到页面,在页面中新增数据信息,在页面中修改数据信息,在页面中删除数据信息. =================stuList.jsp======== ...

  5. Spring重定向

    1.使用HttpServletResponse的sendRedirect()方法. 示例: @PostMapping("/user/product/id") public void ...

  6. 对snapshot isolation和write-snapshot isolation的一些思考

    数据库中存在读异常和写异常. 所谓snapshot,目的在于保证事务执行的各个阶段,读相同的数据项得到的结果没有变化,这样一来就避免了不可重复读.幻读等读数据异常. 但是仅仅是读数据不变还不够,因为这 ...

  7. vue-cli 3.0脚手架搭建项目

    1.安装vue-cli 3.0 npm install -g @vue/cli # or yarn global add @vue/cli 安装成功后查看版本:vue -v 2.命令变化 vue cr ...

  8. 分布式事务之最终一致性BASE理论

    一.事务 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都将导致整个事务的回滚.简单地说 ...

  9. 【转】23 个安卓重难点突破,带你吃透 Service 知识点「长达 1W+ 字」

    前言 学 Android 有一段时间了,想必不少人也和我一样,平时经常东学西凑,感觉知识点有些凌乱难成体系.所以趁着这几天忙里偷闲,把学的东西归纳下,捋捋思路. 这篇文章主要针对 Service 相关 ...

  10. java8 中 ImageIO 读取 tiff 格式的图片失败

    在java8 及之前版本中,jdk 中的 ImageIO 读取图片内容会失败,解决办法使用 java9 或者使用第三方插件. 插件可以使用 TwelveMonkeys ImageIO,地址:https ...