zoukankan      html  css  js  c++  java
  • ranche2.0-CN

    遵循以下两步,快速运行rancher2.0

    Step1:准备一台linux主机

    准备一台64位Linux主机(推荐centos7.5+),至少4GB内存。安装Kubernetes支持的Docker-ce版本;

    • 推荐:18.09.2

    这里安装指定版本的docker-ce.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    yum install -y yum-utils device-mapper-persistent-data lvm2
    # 添加Docker软件包源
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    #关闭测试版本list(只显示稳定版)
    sudo yum-config-manager --enable docker-ce-edge
    sudo yum-config-manager --disable docker-ce-test
    # 更新yum包索引
    yum makecache fast
    # 改变docker的部署目录(home下可以挂载很大的磁盘)
    ln -s /home/docker /var/lib/docker
    # 直接安装Docker CE (will always install the highest possible version,可能不符合你的需求)
    yum install docker-ce
    # 指定版本安装
    yum list docker-ce --showduplicates|sort -r
    [root@rancherserver ~]# yum list docker-ce --showduplicates|sort -r
    已加载插件:fastestmirror
    已安装的软件包
    可安装的软件包
    * updates: centos.01link.hk
    Loading mirror speeds from cached hostfile
    * extras: centos.01link.hk
    * epel: mirror01.idc.hinet.net
    docker-ce.x86_64 3:18.09.6-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.5-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.4-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
    docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
    docker-ce.x86_64 18.06.3.ce-3.el7 @docker-ce-stable
    docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable
    docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
    docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
    docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
    docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
    docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
    docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
    docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable
    docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
    docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable
    docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable
    docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable
    docker-ce.x86_64 17.03.3.ce-1.el7 docker-ce-stable
    docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable
    docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
    docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
    * base: centos.01link.hk
    yum install docker-ce-3:18.09.2-3.el7 -y
    #找到需要安装的
    yum install docker-ce-3:18.09.2-3.el7 -y
    #启动docker
    systemctl start docker & systemctl enable docker

    Step2:运行Rancher Server

    若要安装和运行Rancher Server,请在主机上执行一下Docker命令:

    1
    2
    $sudo mkdir -p /home/var/lib/rancher
    $sudo docker run -d -v /home/var/lib/rancher:/var/lib/rancher/ --restart=unless-stopped -p 18080:80 -p 1443:443 rancher/rancher:stable

    Rancher Server容器启动很快速,不到一分钟就可以通过https://:1443访问Rancher UI.一旦Rancher Server成功启动安装,用户界面知道你添加第一个集群

    Rancher概述

    架构涉及

    ### Docker

    Docker是容器打包和runtime标准。开发人员从Dockerfiles构建容器镜像,并从Docker镜像仓库中分发容器镜像。DockerHub是最受欢迎的公共镜像仓库,许多组织还设置了私有的Docker镜像仓库,Docker主要用于管理各个节点上的容器。

    Note:

    虽然Rancher1.6支持Docker Swarm集群技术,但由于Rancher2.0基于kubernetes调度引擎,所以Rancher2.0不再支持Docker Swarm.

    Kubernetes

    kubernetes已称为容器集群管理标准,通过YAML文件来管理配置应用程序容器和其它资源。Kubernetes执行诸如调度,扩展,服务发现,健康检查,密文管理和配置管理等功能。

    一个kubernetes集群由多个节点组成:

    • etcd database

    通常在一个节点上运行一个etcd实例服务,但生产环境上,建议通过3个或5个(奇数)以上的节点来创建ETCD HA配置。

    • Master nodes

    主节点是无状态的,用于运行Kube-API Server,调度服务(Kube-Scheduler)和控制器服务(Kube-Controll Manager)。

    • Worker nodes

    工作负载在工作节点上运行。

    默认情况下Master节点也会有工作负载调度上去,可通过命令设置其不加入调度。

    出于安全考虑,默认配置下Kubernetes不会将Pod调度到Master节点。如果希望将master也当作Node使用,可以执行如下命令:

    1
    kubectl taint node k8s-master node-role.kubernetes.io/master-

    如果想恢复Master Only状态,执行如下命令:

    1
    kubectl taint node k8s-master node-role.kubernetes.io/master="":NoSchedule

    Rancher

    大多数Rancher2.0软件运行在Rancher Server节点上,Rancher Server包括用于管理整个Rancher部署的所有组件。

    下图说明了Rancher2.0的运行架构。该图描绘了管理两个Kubernetes集群的Rancher server安装:一个由RKE创建,一个由GKE创建:

    架构图

    在本节中,我们将介绍Rancher Server组件的功能:

    Rancher API服务器

    Rancher API server建立在嵌入式Kubernetes API服务器和etcd数据库之上。它实现了一下功能:

    • Rancher API服务器

    Rancher API server管理与外部身份验证提供程序(如Active Directory或GitHub)对应的用户身份

    • 认证授权

    Rancher API server管理访问控制和安全策略

    • 项目

    项目是集群中的一组多个命名空间和访问控制策略的集合

    • 节点

    Rancher API server跟踪所有集群中所有节点的标识。

    集群控制和Agent

    集群控制器和集群代理实现管理kubernetes集群所续的业务逻辑:

    • 集群控制器实现Rancher安装所需的全局逻辑。它执行一下操作:
    • ​ 为集群和项目配置访问控制策略
    • ​ 通过调用一下方式配置集群
    • ​ 所需的Docker machine驱动程序
    • ​ 像RKE和GKE这样的Kubernetes引擎
    • 单独的集群代理实例实现相应集群所需的逻辑,它执行以下活动:
    • ​ 工作负载管理,例如每个集群中的pod创建和部署
    • ​ 绑定并应用每个集群全局策略中定义的角色
    • ​ 集群与Rancher Server之间的通信:事件,统计信息,节点信息和运行状况

    认证代理

    该认证代理转发所有kubernetes API调用。它集成了身份验证服务,如本地身份验证,Active Directory和GitHub.在每个kubernetes API调用中,身份验证代理会对调用放进行身份验证,并在将调用转发给kubernetes主服务器之前设置的kubernetes模拟标头。rancher使用服务账户与kubernetes集群通信。

    相关术语

    一 全局层

    全局层主要对rancher server自身的基础配置,比如rancher server url、登录认证等。

    • 1:集群
    • ​ 全局层的集群菜单,用于列出集群中所有的k8s集群
    • 2:主机驱动
    • ​ 用于与第三方云平台API对接的中间件程序
    • 3:应用商店-全局
    • ​ 全局层的应用商店,负责应用商店的开关和添加
    • 4:用户
    • ​ 添加或者删除用户,或者修改用户的权限。
    • 5:系统设置
    • ​ 全局下系统的基础配置,比如系统默认镜像仓库地址。
    • 6:安全
    • ​ 角色
    • ​ 一组权限的集合
    • ​ Pod安全策略
    • ​ Pod安全设置
    • ​ 登录认证
    • ​ 用户的登录访问认证

    集群层

    • 1: 集群
    • 显示当前集群的资源配置情况,各系统组件的健康状态:2.2之前,集群仪表盘显示当前集群的资源预留状态(并非实际资源使用)
    • 2:主机
    • 当前集群中添加的所有的主机
    • 3:存储
    • ​ 存储类
    • ​ 持久卷
    • 4: 项目与命名空间
    • 此集群拥有的项目和命名空间
    • 5: 集群成员
    • 6: 工具
      • 告警
      • 通知
      • 日志
      • CI/CD

    项目层

    • 1: 工作负载

      • 工作负载服务
      • 负载均衡
      • 服务防线
      • 数据卷
      • CI/CD
    • 2:应用商店-项目

    • 3:资源

      • 告警
      • 证书
      • 配置映射
      • 日志收集
      • 镜像仓库
      • 密文
    • 4:命名空间

    • 5:项目成员

    四 其它(右上角登录菜单)

    • 1: API Kyes
    • 2:主机模板
    • 3:喜好设定

    3 快速入门

    • 注意:本入门指南的目的是让你快速的运行一个rancher2.0环境,它不适用与生产,有关更全面的说明,请查阅

    本教程将指导你完成:

    • 安装Rancher v2.0;
    • 创建第一个集群
    • 部署一个应用程序,如Nginx

    1 入门须知

    • 熟悉Linux基础命令;
    • 了解SSH使用方法,了解公钥/私钥工作原理;
    • 熟悉Docker基本使用方法级基础命令,比如:容器日志查看
    • 了解SSL证书使用方法
    • 了解负载均衡工作原理(L4/L7)
    • 了解域名解析原理
    • 了解K8s基本概念

    二 配置Linux主机

    通过配置Linux主机开始创建自定义集群,你的主机可以是:

    • 云主机
    • 本地虚拟机
    • 本地物理机

    • Note

    • 在使用云主机时,你需要允许TCP/80和TCP/443入站通信端口。

    根据一下要求配置主机:

    • Ubuntu 16.04 +(64)
    • Centos/RedHat Linux 7.5+(64位)
    • RancherOS 1.3.0(64位)

    1 硬件要求

    • CPU: 2C
    • 内存:4GB

    2 软件需求

    • 软件:Docker

    • 支持的Docker版本

      • 1.12.6
      • 1.13.1
      • 17.03.2

    三 安装Rancher

    要想在主机上安装Rancher,需要先登录到主机上,接着进行以下步骤:

    • 1: 通过xshell工具(例如Putty或远程终端连接)登录到主机
    • 2:在shell中执行一下命令
    • sudo docker run -d –restart=unless-stopped -v <主机路径>:/var/lib/rancher/ -p 80:80 -p 443:443 rancher/rancher

    四登录Rancher

    登录并开始使用Rancher。登录后,你将进行一些一次性配置。

    1 打开浏览器,输入https://,server_ip替换为运行Rancher容器主机的IP;

    2 因为是自动使用的自签名证书,在第一次登录会提示安全授信问题,信任即可;

    3 设置管理员密码

    ​ 第一次登录会要求设置管理员密码,默认管理员账号为:admin

    4 设置Rancher Server URL

    ​ 这个Rancher Server URL是agent节点注册的地址,需要保证 这个地址能够被其它主机访问

    五 创建K8S集群

    现在创建第一个Kubernetes集群,可以使用自定义选项。你可以添加云主机、内部虚拟机或物理主机作为集群节点,节点可以运行任何一种或多种主流Linux发行版;

    • 1 页面右下角可以切换语言;
    • 2 在全局试图下,点击菜单中的集群,并点击添加集群
    • 3 选择Custom,并设置集群名称,其它参数可不用修改,点击下一步;
    • 4 选择节点运行的角色
      • 默认会勾选Worker角色,根据需要可以一次勾选多种角色,比如,假设我只有一个节点,那就需要把所有角色都选择上,选择后上面的命令行自动添加相应的命令参数;
    • 5 如果是云主机,需要添加主机的内网址和对应的公网地址,如果是没有公网的云主机,可以跳过这步;
    • 6 其它参数保持默认,点击命令行右侧的复制按钮,复制命令参数
      • 如果是多台主机,根据角色的不同,需要复制多次
    • 7 登录预添加集群的主机,执行以上复制的命令;
    • 8 在主机上执行完命令后,最后点击完成;
    • 9 回到全局视图,可以查看集群的部署状态;
    • 10 点击集群名称,进入集群视图;
    • 11 点击菜单主机按钮
    • 12 集群创建完成
    • 13 集群创建完成后,默认会生成Default项目,点击Default切换到项目视图;

    六 部署工作负载

    工作负载是一个对象,包括Pod以及部署应用程序所需要的其它文件和信息。我们以nginx作为例如:

    • 1 在Default视图下,点击工作负载部署服务
    • 2 在部署工作负载页面,设置工作负载名称、副本数量、镜像名称、命名空间、端口映射、其它参数保持默认,最后点击启动;
    • 3 部署完成
    • 4 通过端口去访问nginx服务;

    4 功能列表

























































































































































































































































































































    对比内容 分类 描述 
    K8S集群管理 多集群管理 容器平台能同时对多个Kubernetes集群进行管理,包括创建集群、删除集群、集群搜索、为集群添加主机等。每个集群有自己独立的管理视图,包括控制面板、主机视图、容器视图、应用视图,可图形化显示其所包含的节点状态和容器运行状态,并可以对节点和容器操作。每个集群上运行的应用和其他集群隔离。
    集群基础设施管理和部署 容器云平台能够指定Kubernetes集群的部署角色,包括etcd数据节点、API Server、Controller
    Manager控制节点、worker计算节点等。不同集群能够指定不同的容器网络模式,灵活支持目前社区主流的容器网络解决方案,包括flannel、Calico、Canal等。平台能够提供自动化部署工具,快速灵活的部署kubernetes集群。
    集群管理权限设定 可设定每个集群的用户角色和权限,除默认内置角色外,支持在图形界面进行细粒度的RBAC权限自定义和角色创建。管理员可以创建自定义角色,指定对平台内各种资源对象(包括但不限于Cluster、Pod、Deployment、ConfigMap等)的创建、删除、编辑、枚举等各种细粒度的操作权限。
    导入外部Kubernetes集群管理 容器云平台必须能够导入外部Kubernetes集群并进行管理的功能,以满足对各种Kubernetes集群统一纳管的需求。导入的Kubernetes集群能够通过容器云平台界面进行统一的角色管理,应用部署等各种操作。
    Kubernetes多版本支持 支持Kubernetes目前的主要稳定开源版本,包括1.9、1.10、1.11、1.12。用户在部署Kubernetes集群时可以根据需要选择相应的版本进行部署。
    集群升级 通过平台创建的Kubernetes集群,集群的系统软件,如Kubernetes版本、网络等系统服务软件,可通过图形界面在线升级或回退,不影响集群环境中业务的使用。
    Windows 集群支持 可管理 Windows Kubernetes 集群主机。
    多租户功能 基于独立集群的多租户支持 容器云平台支持基于独立集群的多租户隔离,可以为不同租户创建并使用独立的Kubernetes集群。各集群可以按需配置独立的管理员、用户及自定义角色,彼此之间完全隔离。
    基于共享集群的多租户支持 容器云平台应支持集群内部的多租户隔离,集群内租户支持设置管理员、用户及自定义RBAC角色,以满足权限管理需求。当基于单个集群实现多租户隔离时,同一个集群内部的租户应用彼此隔离,单个租户内部的用户仅能查看和管理自己租户内部的应用,且不同租户应用容器之间需要实现网络隔离。
     租户权限管理 支持租户内用户角色的管理和设置,支持RBAC自定义创建租户内用户角色和权限,以实现灵活的权限管理。
    容器主机管理 纳管虚拟机 支持以图形界面在线添加虚拟机主机,新的主机被添加成功后将会显示活动状态,并可在图形界查看主机的具体配置信息,包括但不限于主机名,IP地址,docker引擎版本号,操作系统版本,CPU/内存/磁盘配置信息等。
    纳管物理机 支持以图形界面在线添加物理机主机,新的主机被添加成功后将会显示活动状态,并可在图形界面看到主机的具体配置信息,包括但不限于主机名,IP地址,docker引擎版本号,操作系统版本,CPU/内存/磁盘配置信息等。
    内置Docker Machine驱动管理 内置Docker Machine驱动,可以对各类Docker的machine
    drivers进行配置和管理,方便用户对接各类云平台、vSphere环境、OpenStack环境等。
    主机分组管理 支持对不同的主机进行分组管理,可以使用标签(或类似方式)标识,如按物理区域、安全区域、组织架构、项目、应用划分打标签逻辑分组,支持多标签。
    查看主机性能状态信息 系统提供便捷的图形化界面,以实现对容器主机相关性能和状态信息的监控和查看。可以查看的主机性能信息包括,CPU、内存、网络和磁盘,容器分配情况、端口使用情况、标签、存储等关键信息。
    驱散容器功能 在对主机进行维护时,例如升级内核,硬件维护等,这个功能首先会禁止新的容器调度到这个节点,然后会对该节点上的容器有规则的进行驱散。完成主机维护后,可以恢复节点功能。
    容器主机故障自动检测和自动应用漂移 当某个主机故障时,无法和管理节点时间正常通信时,则该主机将被表示为不可用状态,并在图形界面显示。该状态下管理节点将视图重连该主机,同时会将该主机上运行的容器自动漂移到其他正常主机节点,以保证该情况下相关容器的服务访问正常。
    容器调度与管理 容器生命周期管理 平台提供便捷操作容器服务图形化界面,可以编辑容器信息,可以启动、重启、停止、删除、克隆容器。

    并可在图形界面上展示容器的信息和运行状态,包括健康状态,容器名、IP地址、所在主机、镜像和命令等
    查看容器状态和性能 管理平台可以通过图形界面查看容器关键性能和配置信息,可以查看标签、存储卷、端口映射、实时监控信等关键信息,包括但不限于: CPU、内存、网络和磁盘、容器IP、Image、所使用主机等情况。
    容器控制台 图形化界面可以直接调出该容器控制台,管理界面可以操作容器的CLI,方便后台控制人员执行命令行操作容器。
    查看容器日志 管理平台图形化界面可以直接展示容器日志信息,并实时刷新。
    指定容器运行的主机 支持标签或其它方式唯一限定容器运行主机。系统提供图形化界面,设置容器编排调度规则。支持亲和性/反亲和性容器调度设置,系统提供图形化界面,设置容器编排调度规则,支持基于标签的亲和性/反亲和性调度,支持全部满足/部分等过滤条件。
    容器应用管理 容器应用堆栈管理 支持使用应用模板一键创建容器应用栈。可以从应用集合,服务集合的角度对容器进行集中的管理和配置。
    应用管理视图 支持以不同方式查看、展现应用容器。至少支持根据命令空间Namespace、应用分类、容器运行节点、列表等方式展示容器列表 大专栏  ranche2.0-CN
    通过上传编排文件直接部署应用 支持通过上yaml编排 文件,一键部署和启动应用。极大提高部署效率,降低部署难度和时间。
    查看、下载编排配置文件 支持实时查看kubernetes编排文件配置内容。支持下载和保存kubernetes编排文件,方便配置编辑、保存、重新部署和故障恢复。
    统一调用非容器化服务或系统 管理平台可方便的实现容器访问外部的应用和服务,容器可以访问如不适合进行容器化的大型应用(如MySQL/Oracle数据库)。支持通过图形界面创建相应的服务发现记录,包括外部IP地址、外部主机名、DNS别名等多种方
    容器管理 项目管理功能 项目是一个或多个 namespace
    集合,集群管理员和项目管理员可以从项目层级设置配额。可以配置该项目的CPU,内存,存储,Pod数量等等的配额。同时,在每个项目里,管理员也可以对每个namespace的配额进行控制。
    容器服务健康检查 系统内置对容器服务的健康检查功能,支持在图形界面进行以下健康检查设置,包括:

    ? 可以设定基于HTTP的健康检查。

    ? 可以设定基于TCP的健康检查。

    ? 可以设定基于命令行命令的健康检查。

    ? 可以设定健康检查的颗粒度,如检查次数、间隔、超时时间等。

    支持通过图形界面对容器设置不同的Liveness Check和Readniess check规则。
    容器服务伸缩 提供图形界面,可以便捷手动进行容器扩容和收缩。还提供容器基于CPU、内存等资源使用率状态数值触发的自动扩容缩容。
    容器升级和回滚功能 提供图形界面,可以便捷实现容器的升级和回滚操作。部署应用时可以设置应用的升级策略,包括新旧容器启停顺序、批量大小、最小就绪时间等等。
    支持灰度发布 可以实现灰度升级,升级过程中服务不中断。升级后,图形界面提供UI回滚到之前版本。当部署之前包括多个版本时,可提供多个版本进行回滚选择。
    伴随容器服务 可以为主容器提供伴随容器服务,在进行复杂应用部署时,可以提供支持。支持通过图形界面创建伴随容器。

    1.可以为主容器创建伴随容器。

    2.伴随容器可以和主容器同时启动和同时关闭。

    3.伴随容器可以和主容器共享容器数据卷和容器网络。
    容器可用性保障机制 可以设定服务容器的需要保证的有效数量,当系统故障时,平台可保证有效的的容器数量。可以保证应用服务维持一定的容器数量,用来保证服务正常。服务故障时可以重新创建容器,保证服务正常。
    容器网络管理 容器网络访问策略控制 容器网络支持多租户隔离和策略控制,同集群内部的不同租户可以实现网络的隔离和限制。
    支持容器基本网络模式 支持容器共享主机网络方式,可以在管理界面上设置容器网络为主机共享网路模式,容器共享主机网络namespace,使用主机网卡进行容器内外部通信。
    支持高级网络模式 支持多种网络模式,容器平台提供网络插件,实现对容器IP和容器网络的管理,支持容器网络IP的自定义和跨主机容器网络互访。至少同时支持Flannel/Calico、Canal主流网络技术。
    负载均衡服务 内置负载均衡服务 内置容器负载均衡服务。通过图形界面创建负载均衡,可以进行端口指定、服务指定、SSL证书、会话保持、自定义负载均衡配置、标签及调度等各项功能。
    可定义负载均衡会话保持策略 内置负载均衡服务可以配置可以配置并使用基于cookie的会话保持功能。
    支持SSL终结功能 内置负载均衡服务可以配置可以配置并使用基于HTTPS的SSL终结功能。
    负载均衡后端支持 提供图形界面,负载均衡后端同时支持Kubernetes Service对象和Pod直连,以支持话保持设置。
    支持高级访问路由功能 提供图形界面,可以配置负载均衡高级路由功能,实现根据URL头信息、Domain name、访问路径等不同实现七层信息的转发。
    容器存储服务 存储类型支持 容器云平台应支持Kubernetes社区版本内置支持的所有存储类型,包括FC、iSCSI、Ceph、Cinder、GlusterFS、AzureDisk、AWS
    EBS、ScaleIO等等。

    方案提供方应该能够提供自主产权且开源的分布式块存储方案,以满足业务上对持久化存储的要求
    Persistent Volume支持 支持通过图形界面创建Persistent
    Volume,支持的类型包括上述所列Kubernetes标准版本内置的存储类型。用户可以通过图形界面方便的设置相关存储参数。PV创建后可以在应用部署时通过图形界面创建PVC使用。
    Storage Class支持 支持通过图形界面创建Storage
    Class以满足存储动态自动创建需求,支持的类型包括上述所列Kubernetes标准版本内置的存储类型。用户可以通过图形界面方便的设置相关存储参数。Storage
    Class创建后可以在应用部署时通过图形界面使用。
    超融合存储支持 提供超融合存储解决方案,支持基于容器集群宿主机本地磁盘构建存储池并与容器集群进行集成。容器可利用本集群内部的存储池实现数据的持久化和高可用。
    系统监控及日志 系统监控 支持集群和集群内部租户不同层级的监控设置,监控内容至少应包括:

    ? 系统组件健康状态,如etcd、API Server等

    ? 系统部署事件,如创建Deployment、Service对象等。

    ? 主机资源利用率,如CPU、内存等

    ? 应用可用状态,如Deployment中可用容器低于一定比例等。
    系统告警 ? 需要提供系统内建的告警系统

    ? 告警系统支持通过图形界面设置告警目标,不同告警规则可按需设置告警目标。告警目标应支持多种企业级集成,至少要同时支持对电子邮件、Slack、PageDuty系统的支持。同时需要提供
    Webhook扩展方式,实现对其他告警方式的支持和扩展。

    ? 告警规则支持临时暂停、恢复,初始发送延迟、发送间隔等高级设置,以按需控制告警信息的发送。
    系统日志 平台提供日志收集代理,支持自动收集容器和应用程序日志。

    ? 日志系统能够在集群层面、项目层面分别对应不同的日志平台,以满足用户部门对日志功能使用的灵活性,以满足不同应用场景需求。
    日志平台集成 ? 日志代理应支持业内主流日志平台集成,可以同时支持对ElasticSearch、Kafka、Splunk和Syslog的对接,用户在图形界面即可设置与上述平台的自动化集成对接。

    ? 日志系统能够在集群层面、项目层面分别对应不同的日志平台,以满足用户部门对日志功能使用的灵活性
    应用商店管理 容器应用商店 容器平台支持容器化应用商店,实现容器应用的模板化展示和快速部署。应用商店应支持Kubernetes社区的Helm Charts模板。
    企业级应用商店展示、组织及管理 提供图形界面,可以查看应用商店、实现应用模板的组织和管理。支持搜索和分类选择展示。
    支持用户交互的参数配置 在应用商店配置页面中可配置模板版本和自定义参数,在配置过程中可以通过界面进行自定义配置。在启动应用过程中,进行交互的参数可以自定义。同时不同的应用可以定义不同的参数。支持在应用商店模板中定义参数的类型、提示信息、默认值等相关设置,应用部署展示UI可根据参数定义动态生成并展示相关页面。
    支持应用发布版本管理 可以在应用商店中选择应用的不同发布版本,并启动运行。应用商店出现该应用的新版本时,可自动提示正在运行的应用实例有新版本可以升级。
    支持部署私有隔离的应用商店 管理平台可以设置不同的应用商店路径。每个路径都可以指向一个独立的应用商店,可以设置多个应用商店,应用可以放在不同的应用商店中进行隔离管理。
     系统管理及安全 认证方式 容器云平台支持多种认证集成方式,除本地认证外,需支持主流的认证系统如微软活动目录、OpenLDAP、Github、Keycloak等,支持自定义认证插件实现集成认证。
    容器安全策略 容器云平台支持设置容器安全策略,对创建的容器进行安全管控,例如限制启动特权容器、限制容器使用主机IPC模式、主机网络模式,限制容器可以映射的主机数据卷路径等。容器安全策略应当支持绑定到特定集群和集群内部的多租户隔离实现。
    API秘钥管理 容器云平台支持为不同用户创建独立的API秘钥,API秘钥仅当首次创建时可查看。且支持进行API秘钥自动过期设置,以确保系统安全。
    配置映射(configmap) 提供图形化界面,配置configmap以供服务调用。
    密文管理(secret) 提供图形化界面,配置secret以供服务调用。
    证书管理 平台提供图形界面,可以对SSL证书进行管理。包括导入证书、删除证书等。证书可用于应用访问SSL加密。
    镜像库功能 对接外部私有镜像仓库 提供图形界面,设置连接外部的镜像仓库,可设置外部仓库的认证信息实现认证集成。可以设置默认镜像库,设置镜像库白名单等。
    项目管理 支持公有和私有项目类型:

    ? 公有: 公有项目中的镜像所有用户均有下载权限;

    ? 私有: 私有项目中的镜像只有项目内的成员有相应的操作权限;

    新建项目: 每当新建一个用户时,系统都会默认创建一个以该用户的用户名为项目名称的私有项目;系统管理员可以创建新的项目,项目详情页,可查看镜像和访问控制列表。

    搜索项目: 支持输入关键字进行项目搜索;
    镜像生命周期管理 镜像生命生命周期主要功能如下所示:

    镜像下载: 若镜像为私有镜像,用户至少要获得对应项目的下载权限才能成功下载镜像;

    镜像上传: 用户首先要拥有对应项目的提交权限才能在该项目下上传镜像;

    镜像修改: 用户可以修改镜像的描述信息,以及dockerfile;

    镜像复制: 实现镜像在不同项目间的复制,用户至少必须同时拥有源项目与目标项目的提交权限;

    镜像删除: 在镜像列表可以选择删除镜像的某个版本,也可以直接删除整个镜像。
    异地镜像仓库同步 支持设置好同步关系,并且多镜像仓库之间镜像自动同步。镜像同步的最小颗粒度是容器项目。
    系统集成支持 支持通过纯命令行方式进行配置和管理 容器平台提供命令行管理工具,可以通过命令行对容器管理平台进行配置和管理。 方便运维人员开发自动化运维脚本。
    提供API接口 容器云平台应支持Restful API调用,以方便的与内部系统进行集成。API接口需求如下:

    *支持页面直接展现API调用内容

    *所有页面上的操作都能通过API支持

    支持基于多租户API调用的访问授权。

    针对不同的用户,都可以生成Access key和Secret key秘钥对,在获取正确的秘钥对后方能对API接口进行访问。
    容器操作系统 容器云厂商在提供容器平台的同时,还拥有知名的自主品牌的容器化操作系统平台,以实现容器宿主机的快速创建和部署,降低系统资源消耗和受攻击面。
    CI/CD功能 同时支持多源码管理 CI/CD支持公有Github、Gitlab和私有Gitlab代码库的对接。
    自动部署镜像 打通了从代码提交,自动测试,自动构建镜像,自动部署镜像的全流程。
    与应用商店集成 打通与应用商店的集成,可根据CI/CD的产物动态更新应用商店中的配置文件,应用商店提示有更新可用。
    灵活的流程控制 可以在最初的设置阶段配置符合某既定要求的表达式或标签,而系统会在执行阶段根据执行情况自动跳过不符合该表达式或标签的阶段或步骤。如此一来,不同的代码分支可以自动匹配不同的CI流程,从而支持较为复杂的流程控制。

    准备

    1 基础环境配置

    一 主机配置

    1.配置要求

    参考节点要求

    2.主机名配置

    因为K8S的规定,主机名只支持包含-.(中横线和点)两种特殊符号,并且主机名不能出现重复。

    3.Hosts

    配置每台主机的hosts(/etc/hosts),添加host_ip $hostname到/etc/hosts文件中。

    4.Centos关闭selinux

    1
    sudo sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config

    5.关闭防火墙(可选)或者放行相应端口

    对于刚刚接触Rancher的用户,建议在关闭防火墙的测试环境或者桌面虚拟机来运行Rancher,以免出现网络通信问题。

    • 关闭防火墙

      • 1 Centos

      ​ systemctl stop firewalld.service && systemctl disable firewalld.service

      ​ 2 Ubuntu

      ​ ufw disable

      端口放行

    6 配置主机时间、时区、系统语言

    • 查看时区
      • date -R 或者timedatecte
    • 修改时区
      • ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    • 修改系统语言环境
      • sudo echo ‘ LANG=”en_us.UTF-8” ‘ >>/etc/profile; source /etc/profile
    • 配置主机NTP时间同步

    7 Kernel性能调优

    1
    2
    3
    4
    5
    6
    7
    8
    cat >> /etc/sysctl.conf<<EOF
    net.ipv4.ip_forward=1
    net.bridge.bridge-nf-call-iptables=1
    net.ipv4.neigh.default.gc_thresh1=4096
    net.ipv4.neigh.default.gc_thresh2=6144
    net.ipv4.neigh.default.gc_thresh3=8192
    EOF
    stsctl -p

    Docker配置

    对于通过systemd来管理服务的系统(比如Centos7.x、Ubuntu16.x),Docker有两处可以配置参数;一个是docker.service服务配置文件,一个是Docker daemon配置文件daemon.json。

    1
    2
    3
    4
    1: docker.service
    对于Centos系统,docker.service默认位于/usr/lib/systemd/system/docker.service;对于Ubuntu系统,docker.service默认位于/lib/systemd/system/docker.service
    2: daemon.json
    daemon.json默认位于/etc/docker/daemon.json,如果没有可手动创建,基于systemd管理的系统都是相同的路径。通过修改daemon.json来改过Docker配置,也是Docker官方推荐的方法。
    • 以下说明均基于systemd,并通过/etc/docker/daemon.json来修改配置。

    配置镜像下载和上传并发数

    从Docker1.12开始,支持自定义下载和上传镜像的并发数,默认值上传为3个并发,下载为5个并发。通过添加“max-concurrent-downloads”和”max-concurrent-uploads”参数对其修改:

    1
    2
    "max-concurrent-downloads":3,
    "max-concurrent-uploads": 5

    配置镜像加速地址

    rancher从v1.6.15开始到v2.x.x,Rancher系统相关的所有镜像(包括1.6.x上的K8S镜像)都托管在Dockerhub仓库。Dockerhub节点在国外,国内直接拉取镜像会有写缓慢,为了加速镜像的下载,可以给Docker配置国内的镜像地址。

    编辑/etc/docker/daemon.json加入一下内容:

    1
    2
    3
    {
    "registry-mirros":["https://7bezldxe.mirror.aliyuncs.com/","https://IP:PORT/"],
    }
    • 可以设置多个registry-mirrors地址,以数组形式书写,地址需要添加协议头(https或者http)。

    配置insecure-registries私有仓库

    Docker默认只信任TLS加密的仓库地址(https),所有非https仓库默认无法登陆也无法拉取镜像。insecure-registries字面意思为不安全的仓库,通过添加这个参数对非https仓库进行受信。可以设置多个insecure-registries地址,以数组形式书写,地址不能添加协议头(http)。

    编辑/etc/docker/daemon.json加入以下内容:

    1
    2
    3
    {
    "insecure-registries":["192.168.1.100","IP:PORT"]
    }

    配置Docker存储驱动

    OverlayFS是一个新一代的联合文件系统,类似于AUFS,但速度更快,实现更简单。Docker为OverlayFS提供了两个存储驱动程序:旧版的overlay,新版的overlay2(更稳定)

    先决条件:

    • overlay2:Linux内核版本4.0或更高版本,,或使用内核版本3.10.0-514+的RHEL或CentOS.
    • overlay:主机Linux内核版本3.18+
    • 支持的磁盘文件系统
      • ext4(仅限RHEL7.1)
      • xfs(RHEL7.2及更高版本),需要启用d_typ=true。

    编辑/etc/docker/daemon.json加入一下内容

    1
    2
    3
    4
    {
    "storage-driver":"overlay2",
    "storage-opts":["overlay2.override_kernel_check=true"]
    }

    配置日志驱动

    容器在运行时会产生大量日志文件,很容易占满磁盘空间。通过配置日志驱动来限制文件大小与文件的数量。>限制单个日志文件为100M,最多产生3个日志文件。

    1
    2
    3
    4
    5
    6
    7
    8
    {
    "log-driver":"json-file",
    "log-opts":{
    "max-size":"100m",
    "max-file":"3"
    }
    }

    3 UbuntuDebian系统,docker info提示WARNING:No swap limit support

    UbuntuDebian系统下,默认cgroup未开启swap account功能,这样会导致设置容器内存或者swap资源限制不生效。可以通过一下命令解决:

    1
    2
    3
    4
    # 统一网卡名称为ethx
    sudo sed -i 's/en[[:alnum:]]*/eth0/g' /etc/network/interfaces;
    sudo sed -i 's/GRUB_CMDLINE_LINUX="(.*)"/GRUB_CMDLINE_LINUX="net.ifnames=0 cgroup_enable=memory swapaccount=1 biosdevname=0 1"/g' /etc/default/grub;
    sudo update-grub;

    2 节点需求

    不管是单节点安装Rancher server,或搞可用安装Rancher server,所有节点都需要满足以下的节点要求。

    操作系统和Docker

    3 端口要求

    4 镜像仓库安装

    5 自签名SSL证书

    6 HTTP代理配置

    7 安装和配置kubectl

    8 文件下载

    9 最佳实践

    10 清理节点

    安装

    1 版本选择

    2 镜像选择

    3 单节点安装

    4 Rancher HA安装

    5 离线安装

    6 其它方法

  • 相关阅读:
    Codeforces 17.E Palisection
    poj4052 Hrinity
    bzoj2565 最长双回文串
    Java基础知识强化之集合框架笔记43:Set集合之TreeSet存储Integer类型的元素并遍历
    Java基础知识强化之集合框架笔记42:Set集合之LinkedHashSet的概述和使用
    Java基础知识强化之集合框架笔记41:Set集合之HashSet存储自定义对象并遍历练习
    Java基础知识强化之集合框架笔记40:Set集合之HashSet存储自定义对象并遍历
    TCP/IP协议原理与应用笔记13:底层网络技术之传输介质
    Java基础知识强化之集合框架笔记39:Set集合之HashSet存储字符串并遍历
    Java基础知识强化之集合框架笔记38:Set集合之Set集合概述和特点
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12037710.html
Copyright © 2011-2022 走看看