这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

运维中心

运维中心

运维中心

概念

这里用户可以管理 Helm 应用、日志和集群事件持久化。

1 - Helm应用

Helm应用

应用功能是 TKEStack 集成的 Helm 3.0 相关功能,为您提供创建 helm chart、容器镜像、软件服务等各种产品和服务的能力。已创建的应用将在您指定的集群中运行,为您带来相应的能力。

新建 Helm 应用

  • 登录 TKEStack
  • 切换至【平台管理】控制台,选择【运维中心】->【 Helm 应用】
  • 选择相应【集群】,单击【新建】按钮,如下图所示:

新建 Helm 按钮

  • 在“新建 Helm 应用”页面填写Helm应用信息,如下图所示:

新建 Helm 应用

  • 应用名称: 输入应用名,1~63字符,只能包含小写字母、数字及分隔符("-"),且必须以小写字母开头,数字或小写字母结尾
  • 运行集群: 选择应用所在集群
  • 命名空间: 选择应用所在集群的命名空间
  • 类型: 当前仅支持 HelmV3
  • Chart: 选择需要部署的 chart
  • Chart版本: 选择 chart 的版本
  • 参数: 更新时如果选择不同版本的 Helm Chart,参数设置将被覆盖
  • 拟运行: 会返回模板渲染清单,即最终将部署到集群的 YAML 资源,不会真正执行安装
  • 单击【完成】按钮

删除 Helm 应用

  • 登录 TKEStack
  • 切换至【平台管理】控制台,选择【运维中心】->【 Helm 应用】
  • 点击【删除】

image-20201203150729694

查看 Helm 应用资源列表

  1. 登录 TKEStack
  2. 切换至【平台管理】控制台,选择【运维中心】->【 Helm 应用】
  3. 点击【应用名】后,点击【资源列表】,可查看该应用所有 Kubernetes 资源对象

查看 Helm 应用详情

  • 登录 TKEStack
  • 切换至【平台管理】控制台,选择【运维中心】->【 Helm 应用】
  • 点击【应用名】后,点击【应用详情】

image-20201203150904452

查看 Helm 应用版本历史

  • 登录 TKEStack
  • 切换至【平台管理】控制台,选择【运维中心】->【 Helm 应用】
  • 点击【应用名】后,点击【版本历史】,可查看该应用所部署的历史版本。可以通过选择不同的版本进行参数对比查看其版本区别

image-20201203151027616

2 - 日志采集

日志采集

日志采集

概念

TKESTack 提供的集群内日志采集功能,支持将集群内服务或集群节点特定路径文件的日志发送至 Kafka、Elasticsearch 等消费端,支持采集容器标准输出日志,容器内文件日志以及主机内文件日志。更提供事件持久化、审计等功能,实时记录集群事件及操作日志记录,帮助运维人员存储和分析集群内部资源生命周期、资源调度、异常告警等情况。

日志收集功能需要为每个集群手动开启。日志收集功能开启后,日志收集组件 logagent 会在集群内以 Daemonset 的形式运行。用户可以通过日志收集规则配置日志的采集源和消费端,日志收集 Agent 会从用户配置的采集源进行日志收集,并将日志内容发送至用户指定的消费端。需要注意的是,使用日志收集功能需要您确认 Kubernetes 集群内节点能够访问日志消费端。

  • 采集容器标准输出日志 :采集集群内指定容器的标准输出日志,采集到的日志信息将会以 JSON 格式输出到用户指定的消费端,并会自动附加相关的 Kubernetes metadata, 包括容器所属 pod 的 label 和 annotation 等信息。
  • 采集容器内文件日志 :采集集群内指定 pod 内文件的日志,用户可以根据自己的需求,灵活的配置所需的容器和路径,采集到的日志信息将会以 JSON 格式输出到用户指定的消费端, 并会附加相关的 Kubernetes metadata,包括容器所属 pod 的 label 和 annotation 等信息。
  • 采集主机内文件日志 :采集集群内所有节点的指定主机路径的日志,logagent 会采集集群内所有节点上满足指定路径规则的文件日志,以 JSON 格式输出到用户指定的输出端, 并会附加用户指定的 metadata,包括日志来源文件的路径和用户自定义的 metadata。

注意:日志采集对接外部 Kafka 或 Elasticsearch,该功能需要额外开启,位置在集群 基本信息 下面,点击开启“日志采集”服务。

新建日志采集规则

  • 登录 TKEStack
  • 切换至【平台管理】控制台,选择 【运维中心】->【日志采集】
  • 选择相应【集群】和【命名空间】,单击【新建】按钮,如下图所示:

  • 在“新建日志采集”页面填写日志采集信息,如下图所示:

  • 收集规则名称: 输入规则名,1~63字符,只能包含小写字母、数字及分隔符("-"),且必须以小写字母开头,数字或小写字母结尾
  • 所属集群: 选择所属集群
  • 类型: 选择采集类型
    • 容器标准输出: 容器Stdout信息采集
      • 日志源: 可以选择所有容器或者某个namespace下的所有容器/工作负载
        • 所有容器: 所有容器
        • 指定容器: 某个Namespace下的所有容器或者工作负载
    • 容器文件路径: 容器内文件内容采集
      • 日志源: 可以采集具体容器内的某个文件路径下的文件内容
        • 工作负载选项: 选择某个namespace下的某种工作负载类型下的某个工作负载
        • 配置采集路径: 选择某个容器下的某个文件路径
    • 节点文件路径: 收集节点上某个路径下的文件内容
      • 日志源:
        • 收集路径: 节点上日志收集路径
        • metadata: key:value格式,收集的日志会带上metadata信息上报给消费端
  • 消费端: 选择日志消费端
    • Kafka:

      • 访问地址: kafka ip 和端口
      • 主题(Topic): kafka topic 名
    • Elasticsearch:

      注意:当前只支持未开启用户登录认证的 ES 集群

      • Elasticsearch地址: ES 地址,如:http://190.0.0.1:200
      • 索引: ES索引,最长60个字符,只能包含小写字母、数字及分隔符("-"、"_"、"+"),且必须以小写字母开头
  • 单击【完成】按钮

指定容器运行后的日志目录

LogAgent 除了支持日志规则的创建,也支持指定容器运行后的日志目录,可实现日志文件展示和下载。

前提:需要在创建负载时挂载数据卷,并指定日志目

创建负载以后,在/data/logdir目录下的所有文件可以展示并下载,不仅是日志文件,例如我们在容器的/data/logdir下新建一个名为a.log的文件,如果有内容的话,也可以在这里展示与下载

3 - 审计记录

审计记录

简介

TKEStack 集群审计是基于 Kubernetes Audit 对 kube-apiserver 产生的可配置策略的 JSON 结构日志的记录存储及检索功能。本功能记录了对 kube-apiserver 的访问事件,会按顺序记录每个用户、管理员或系统组件影响集群的活动。

功能优势

集群审计功能提供了区别于 metrics 的另一种集群观测维度。开启 TKEStack 集群审计后,会在集群里的 tke 命名空间下生成 tke-audit-api 的 Deployment,Kubernetes 可以记录每一次对集群操作的审计日志。每一条审计日志是一个 JSON 格式的结构化记录,包括元数据(metadata)、请求内容(requestObject)和响应内容(responseObject)三个部分。其中元数据(包含了请求的上下文信息,例如谁发起的请求、从哪里发起的、访问的 URI 等信息)一定会存在,请求和响应内容是否存在取决于审计级别。通过日志可以了解到以下内容:

  • 集群里发生的活动
  • 活动的发生时间及发生对象。
  • 活动的触发时间、触发位置及观察点
  • 活动的结果以及后续处理行为

阅读审计日志

{
  "kind":"Event",
  "apiVersion":"audit.k8s.io/v1",
  "level":"RequestResponse",
  "auditID":0a4376d5-307a-4e16-a049-24e017******,
  "stage":"ResponseComplete",
  // 发生了什么
  "requestURI":"/apis/apps/v1/namespaces/default/deployments",
  "verb":"create",
  // 谁发起的
  "user":{
    "username":"admin",
      "uid":"admin",
      "groups":[
        "system:masters",
        "system:authenticated"
      ]
  },
  // 从哪里发起
  "sourceIPs":[
    "10.0.6.68"
  ],
  "userAgent":"kubectl/v1.16.3 (linux/amd64) kubernetes/ald64d8",
  // 发生了什么
  "objectRef":{
    "resource":"deployments",
    "namespace":"default",
    "name":"nginx-deployment",
    "apiGroup":"apps",
    "apiVersion":"v1"
  },
  // 结果是什么
  "responseStatus":{
    "metadata":{
    },
    "code":201
  },
  // 请求及返回具体信息
  "requestObject":Object{...},
  "responseObject":Object{...},
  // 什么时候开始/结束
  "requestReceivedTimestamp":"2020-04-10T10:47:34.315746Z",
  "stageTimestamp":"2020-04-10T10:47:34.328942Z",
  // 请求被接收/拒绝的原因是什么
  "annotations":{
    "authorization.k8s.io/decision":"allow",
    "authorization.k8s.io/reason":""
  }
}

前提条件

Installer 安装页面的控制台安装的第5步中,如下图所示,已经开启平台审计功能,并配置好 ElasticSearch:

查看审计

  1. 登录 TKEStack
  2. 切换至【平台管理】控制台,选择 【运维中心】->【审计记录】,查看审计列表:

参考

TKEStack 关于审计的相关配置:

# kube-apiserver 地址:/etc/kubernetes/manifests/kube-apiserver.yaml

--audit-policy-file=/etc/kubernetes/audit-policy.yaml # 审计策略
--audit-webhook-config-file=/etc/kubernetes/audit-api-client-config.yaml # 指定 Webhook backend 的配置文件

# 获取 TKEStack 审计组件的详细信息
kubectl describe deploy -ntke tke-audit-api 

# 获取 TKEStack 审计的相关配置
kubectl describe cm -ntke tke-audit-api 

4 - 事件持久化

事件持久化

PersistentEvent

PersistentEvent 介绍

Kubernetes Events 包括了 Kuberntes 集群的运行和各类资源的调度情况,对维护人员日常观察资源的变更以及定位问题均有帮助。TKEStack 支持为您的所有集群配置事件持久化功能,开启本功能后,会将您的集群事件实时导出到 ElasticSearch 的指定索引。

PersistentEvent 使用场景

Kubernetes 事件是集群内部资源生命周期、资源调度、异常告警等情况产生的记录,可以通过事件深入了解集群内部发生的事情,例如调度程序做出的决策或者某些pod从节点中被逐出的原因。

kubernetes 默认仅提供保留一个小时的 kubernetes 事件到集群的 ETCD 里。 PersistentEvent 提供了将 Kubernetes 事件持久化存储的前置功能,允许您通过PersistentEvent 将集群内事件导出到您自有的存储端。

PersistentEvent 限制条件

  1. 注意:当前只支持版本号为5的 ElasticSearch,且未开启 ElasticSearch 集群的用户登录认证
  2. 安装 PersistentEvent 将占用集群0.2核 CPU,100MB 内存的资源
  3. 仅在1.8版本以上的 kubernetes 集群支持

部署在集群内kubernetes对象

在集群内部署PersistentEvent Add-on , 将在集群内部署以下kubernetes对象

kubernetes对象名称类型默认占用资源所属Namespaces
tke-persistent-eventdeployment0.2核CPU,100MB内存kube-system

PersistentEvent 使用方法

在 扩展组件 里使用

  1. 登录 TKEStack

  2. 切换至【平台管理】控制台,选择 【扩展组件】,选择需要安装事件持久化组件的集群,安装 PersistentEvent 组件,注意安装 PersistentEvent 时需要在页面下方指定 ElasticSearch 的地址和索引

    注意:当前只支持版本号为5,且未开启用户登录认证的 ES 集群

在 运维中心 里使用

  • 登录 TKEStack
  • 切换至【平台管理】控制台,选择 【运维中心】->【事件持久化】,查看事件持久化列表
  • 单击列表最右侧【设置】按钮,如下图所示:

  • 在“设置事件持久化”页面填写持久化信息
    • 事件持久化存储: 是否进行持久化存储

      注意:当前只支持版本号为5,且未开启用户登录认证的 ES 集群

    • Elasticsearch地址: ES 地址,如:http://190.0.0.1:200

    • 索引: ES索引,最长60个字符,只能包含小写字母、数字及分隔符("-"、"_"、"+"),且必须以小写字母开头

  • 单击【完成】按钮