• 产品简介
    • #什么是 Pandaria?">#什么是 Pandaria?
    • #主要功能">#主要功能
      • #Harbor 集成">#Harbor 集成
      • #审计日志">#审计日志
      • #容器高性能网络">#容器高性能网络
      • #GPU 卡管理">#GPU 卡管理
      • #竖版菜单体验">#竖版菜单体验
      • #两地三中心">#两地三中心
      • #跨集群应用克隆">#跨集群应用克隆
      • #全局监控">#全局监控
      • #私有域名服务(RDNS)">#私有域名服务(RDNS)
      • #项目(租户)配额总览">#项目(租户)配额总览
      • #API 安全过滤器">#API 安全过滤器
    • #其他改善">#其他改善
      • #集群级别监控">#集群级别监控
      • #云驱动解耦">#云驱动解耦
      • #容器文件下载">#容器文件下载
      • #告警通知增强">#告警通知增强
      • #登录接口安全增强">#登录接口安全增强
      • #自定义扩展菜单">#自定义扩展菜单
      • #自定义站点元素">#自定义站点元素
    • cnrancher 部署

    https://github.com/cnrancher

    rancher中国镜像仓库
    https://hub.docker.com/u/cnrancher

    产品简介

    #什么是 Pandaria?

    Pandaria 基于开源版本的 Rancher2.x 研发,是 Rancher 中国团队专门为中国区市场开发的一款产品,其目标是本土化,以便更佳贴合国内用户的使用习惯。Pandaria 是著名网游魔兽世界的一个地名,那里生活着一个神秘的种族熊猫人。众所周知,熊猫是中国的著名的标识,以 Pandaria 来命名产品名,意义在于东方的需求还得需要来自东方的智慧来解决。

    #主要功能

    Pandaria 继承了一切 Rancher 开源版本的能力,并在此基础上扩展了以下功能。

    #Harbor 集成

    Pandaria 支持对接外部的 Harbor(兼容其 1.x 和 2.0 版本)平台,用户可以在全局设置中配置 Harbor 的访问授权,所有在 Pandaria 托管的 Kubernetes 集群都可以使用这个 Harbor。对于 Workload,用户可以快速设置 Harbor 仓库的镜像库凭证,并在创建 Workload 时可以检索 Harbor 仓库中的镜像。

    #审计日志

    Pandaria 可以自动收集用户的操作请求,并按照审计需求进行展示。用户可以在全局/集群/项目等三个维度查看审计日志。通过审计日志功能,管理员可以清楚的知道集群资源发生的变更操作。

    #容器高性能网络

    为了应对企业对容器网络的复杂需求,Pandaria 提供了双网卡扩展机制,即容器内 eth0 用于 Kubernetes 业务内部本身的访问,扩展网卡 eth1 可用于专有的数据通道。基于此机制,Pandaria 额外提供了 Flannel+Macvlan 和 Canal+Macvlan 两种网络插件,其中 Macvlan 对应的 eth1 网卡可以用于高性能数据通道,并且会为 Macvlan 网络自动生成服务发现地址,方便用户使用,这两款插件除了应用在 Baremetal 网络外,还可以应用在 vSphere/OpenStack 等虚拟化平台上。此特性除了可以带来高性能网络之外,用户还可以实现 POD IP 直连方式访问。与此同时,还针对 Macvlan 支持了简化版的 IPv6,Pod 可以基于分配的 IPv4 地址自动获取一个 IPv6 地址,对于过渡期使用 IPv6 的用户有一定帮助

    #GPU 卡管理

    Kubernetes 本身提供了对 GPU 卡的使用机制,但是比较大的使用限制是申请 GPU 卡时只能以独占方式,对于研发测试环境容器独占 GPU 卡非常浪费资源。Pandaria 在开源 GPU 方案的基础上还提供 GPU 卡共享机制,用户可以通过 GPU 显存调度方式来分割 GPU 卡的资源,进而实现多 Pod 对单个 GPU 卡的共享使用,此机制下可以极大程度节省用户的 GPU 资源。除此之外,Pandaria 还可以为不同租户设置 GPU 相关的配额,以及针对每个 GPU 卡进行一些监控信息采集。对于深度使用 GPU 的用户,Pandaria 还可以通过对接第三方平台提供 GPU 池化管理的解决方案,GPU 远程调用,vGPU 资源分割等。

    #竖版菜单体验

    Pandaria 提供了 UI 视图切换机制,并对竖版 UI 进行了重新定制,用户会默认进入竖版菜单。对于喜欢横版菜单体验的用户可以在用户选项中切换视图样式。

    #两地三中心

    Pandaria 本身依托 Rancher 的多集群管理优势,针对具备多数据中心资源管理的场景,提供管理平面的两地三中心支持。用户可以在多数据中心中部署一套 Pandaria 管理平面,管理来自不同数据中心的 Kubernetes 集群。

    #跨集群应用克隆

    随着多集群的使用理念逐步深入人心,应用部署也从单一集群部署跨向多集群部署。在这个过程中,随着纳管集群的不断加入,应用迁移就是一个比较大的工作量。Pandaria 可以通过跨集群应用克隆功能,用户可以在一个集群中将应用编排克隆到其他集群中,减少应用迁移时产生的工作量。

    #全局监控

    在多集群管理场景下,每个集群都各自开启监控,各个集群的监控管理是割裂的,无法统一聚合各个集群的监控信息。全局监控可以整合各个集群 Prometheus 的监控指标,用户可以通过它一次性监控所有 Rancher 托管的集群,实现监控大屏的体验。

    #私有域名服务(RDNS)

    RDNS 是中国团队开发的轻量级私有域名服务,支持对接 Route53 和 CoreDNS 等并暴露 API,该服务可以和 Pandaria 集成并提供以下新特性:

    • 针对 Ingress Hostname 提供私有域名访问,对于企业用户的研发测试环境,可以为每个服务的访问入口提供域名访问机制。
    • 针对多集群应用的 Global DNS,提供对接 RDNS 的选项,这样当用户脱离公有云体系,多集群应用依然可以运作。

      #项目(租户)配额总览

      开源版本中,用户无法在 UI 上一次性查看某 Project 内所有 Namespace 的配额分配和使用情况,用户甚至可能需要通过 CLI 工具进行统计,体验上不是特别友好。 Pandaria 将数据聚合到同一个页面上,一次性就可以查询某个 Project 内的配额用量情况,同时支持在这个页面上进行各个资源配额分配的管理。

      #API 安全过滤器

      为满足一些对安全性要求较高的用户的需求,企业版为后端 API 增加了敏感字段过滤器的功能,可以根据的用户角色,配置不同的过滤规则,进而对一些资源对象的敏感字段加以控制,以保证接口返回信息的安全性。

      #其他改善

      除了上面提到的一些比较大的特性,企业版中还对一些功能体验进行了改善增强。

      #集群级别监控

      Pandaria 中实现了通过集群级别监控来覆盖所有项目监控的功能,用户无需再额外启用项目监控,一定程度可以节省用户的基础设施资源。同时,也可以配置禁用项目监控的菜单,以便从用户侧完全屏蔽项目监控功能。

      #云驱动解耦

      针对各种公有云 Kubernetes 驱动,如阿里云 ACK、腾讯 TKE、华为 CCE 等,Pandaria 可以支持驱动及其关联 UI 独立升级,此过程可不必升级管控程序,从而减少生产环境变更的压力。

      #容器文件下载

      Pandaria 在 UI 上提供了从容器中下载文件的特性,可以方便用户下载容器内配置文件和日志等内容。尤其是当用户在研发测试场景排错时,这个功能可以很大程度提高效率。

      #告警通知增强

      告警通知除了开源版本内置的 notifier 外,还额外对接了国内常用的 阿里云短信/钉钉/微软 Teams/ServiceNow 等通知接口。同时,也可以支持自定义告警信息模板,告警信息的可读性更好,方便定位问题。在 Pandaria UI 中,也内置了常用的告警表达式,降低用户的使用成本。

      #登录接口安全增强

      激活该能力后,同一个用户登录时,连续输入错误密码会冻结登陆 API 接口,同时 UI 上也会体现相应展示,并且,请求限制和冻结时间都是可配置的。此外所有涉及密码传输的表单,也都会对密码明文进行加密。

      #自定义扩展菜单

      用户可以在 UI 上添加自定义的菜单,并加入菜单的跳转链接。用户可以分别在全局/集群/项目层级进行添加,尤其是用户想以 Rancher 作为所有管理平台的入口,可以依托此功能进行整合。

      #自定义站点元素

      用户可以添加额外 UI Footer,便于配置备案号。对于想把服务开放到公网的用户,这是很有意义的功能。除此之外,还提供更换 Logo 等其他站点元素的工具。

    image.png

    cnrancher 部署

    1. docker run -d --privileged --restart=unless-stopped -p 80:80 -p 443:443 cnrancher/rancher:v2.5.9-ent

    docker pull cnrancher/rancher:v2.5.9-ent

    1. [root@rancher-server ~]# docker run --name rancher -d --privileged --restart=unless-stopped -p 80:80 -p 443:443 cnrancher/rancher:v2.4.13-ent2
    2. 7b2d0faaed37431d7799940fa41c31a2fff7332d15c656019d5cd049ef558c02
    3. [root@rancher-server ~]# docker ps
    4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    5. 7b2d0faaed37 cnrancher/rancher:v2.4.13-ent2 "entrypoint.sh" 10 seconds ago Up 8 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp rancher
    6. [root@rancher-server ~]#

    image.png
    rancher-server 密码重置

    1. [root@n9e ~]# docker ps
    2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3. 38d6f7e7bfe1 cnrancher/rancher:v2.5-9da4650b4afdf71f98a63b5e997a4c63d87c13a5 "entrypoint.sh" 10 minutes ago Up 10 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp determined_mcnulty
    4. [root@n9e ~]# docker exec -ti 38d reset-password
    5. New password for default admin user (user-w4jds):
    6. HPDNiG1KtvAJKpVR6Tld
    7. [root@n9e ~]#

    image.png

    image.png
    image.png
    image.png

    RKE 部署 k8s 再用helm部署rancher

    版本升级 数据备份

    1. docker ps |grep cnrancher
    2. docker stop cnrancher
    3. docker create --volumes-from rancher --name rancher-data cnrancher/rancher:v2.4.13-ent2
    4. docker run --volumes-from rancher-data -v $PWD:/backup busybox tar zcvf /backup/rancher-data-backup-v2.4.13.tar.gz /var/lib/rancher
    1. [root@rancher-server ~]# docker run --name cnrancher -d --privileged --restart=unless-stopped --volumes-from rancher-data -p 80:80 -p 443:443 cnrancher/rancher:v2.5.7-ent-rc3-linux-amd64
    2. 9f366e8c6c90f4482d3bb2252ab637df1398136a37e9f1f8afd460e5479bb12a
    3. [root@rancher-server ~]#
    4. [root@rancher-server ~]# docker ps |grep cnrancher
    5. 9f366e8c6c90 cnrancher/rancher:v2.5.7-ent-rc3-linux-amd64 "entrypoint.sh" 13 seconds ago Up 11 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp cnrancher
    6. [root@rancher-server ~]#

    image.png

    image.png
    image.png
    image.png
    image.png
    image.png
    image.png

    1. docker run --name docs-pandaria -itd -p 80:80 cnrancher/docs-pandaria

    image.png