v2.1
v2.0
v1.0
  1. Release Notes
    1. Release Notes - 2.1.1最新
    1. Release Notes - 2.1.0
    1. Release Notes - 2.0.2
    1. Release Notes - 2.0.1
    1. Release Notes - 2.0.0
  1. 产品介绍
    1. 什么是 KubeSphere
    1. 平台功能
    1. 为什么选择 KubeSphere
    1. 架构说明
    1. 应用场景
    1. 名词解释
  1. 安装指南
    1. 安装说明
      1. 概览
      2. 网络防火墙配置
      3. 集群其它参数配置
    1. 在 Linux 快速安装 KubeSphere
      1. All-in-One 模式
      2. Multi-Node 模式
      3. 完整安装(开启所有功能组件)
    1. 在 Kubernetes 安装 KubeSphere
      1. 准备工作
      2. 在 Kubernetes 安装 KubeSphere
    1. 安装可插拔的功能组件
      1. 可插拔功能组件概览
      2. 安装应用商店
      3. 安装内置的 DevOps 系统
      4. 安装内置的日志系统
      5. 安装微服务治理组件(Service Mesh)
      6. 安装告警通知系统
      7. 安装 Metrics-server 开启 HPA
      8. 验证可插拔功能组件的安装
    1. 集群高可用配置安装
      1. 在青云安装 HA 集群
      2. 在华为云安装 HA 集群
      3. 持久化存储配置说明
    1. 相关工具与插件
      1. 安装内置 Grafana
      2. 访问 SonarQube 和 Jenkins 服务端
      3. 安装 Porter 负载均衡器插件
      4. 安装 QingCloud 负载均衡器插件
    1. 认证配置
      1. 接入 LDAP / AD 域账号(Beta)
    1. 集群运维
      1. 安装后添加新的存储类型
      2. 集群节点扩容
      3. 卸载
  1. 升级指南
    1. 升级必读
    1. All-in-One 升级
    1. Multi-node 升级
  1. 快速入门
    1. 入门必读
    1. 1. 多租户管理快速入门
    1. 2. 应用路由与服务示例
    1. 3. 创建 Wordpress 应用并发布至 K8s
    1. 4. 一键部署应用
    1. 5. 创建简单任务
    1. 6. 设置弹性伸缩 (HPA)
    1. 7. Source-to-Image
    1. 8. Binary-to-Image
    1. 9. 基于Spring Boot项目构建流水线
    1. 10. 图形化构建流水线
    1. 11. Bookinfo 微服务的灰度发布
    1. 12. 使用 Ingress-Nginx 进行灰度发布
    1. 13. 应用商店
  1. 管理员指南
    1. 多租户管理
      1. 多租户管理概述
      2. 角色权限概览
    1. 平台管理
      1. 企业空间管理
      2. 账号管理
      3. 平台角色
    1. 基础设施
      1. 服务组件
      2. 主机管理
      3. 存储类型
    1. 监控中心
      1. 监控概述
      2. 如何利用监控定位问题
      3. 集群状态监控
      4. 应用资源监控
      5. 监控策略 - 节点级别
      6. 监控消息 - 节点级别
    1. 平台设置
      1. 应用仓库
      2. 基于本地仓库搭建应用仓库部署Redis
      3. 上传应用到 KubeSphere 官方仓库
      4. 基于 GitHub 搭建自有应用仓库
      5. 邮件服务器
      6. 日志收集
      7. 添加 Fluentd 作为日志接收者
      8. 添加 Kafka 作为日志接收者
    1. 工具箱
      1. Web Kubectl
      2. 日志收集
    1. DevOps 配置
      1. 系统配置修改
      2. 上传镜像至 Harbor
      3. 流水线配置邮件服务器
      4. Jenkins 系统设置
    1. FAQ
      1. DevOps 运维FAQ
  1. 用户指南
    1. 应用
      1. 应用模板
      2. 自制应用
      3. 流量治理
      4. 熔断
    1. 工作负载
      1. 工作负载概述
      2. 部署
      3. 有状态副本集
      4. 守护进程集
      5. 任务
      6. 定时任务
      7. 设置健康检查器
      8. 工作负载管理
      9. 落盘日志收集
    1. 存储
      1. 存储概述
      2. 存储卷
      3. Local Volume 使用方法
    1. 网络与服务
      1. 服务管理
      2. 灰度发布
      3. 应用路由
    1. 监控告警
      1. 告警策略 - 工作负载级别
      2. 告警消息 - 工作负载级别
    1. 配置中心
      1. 密钥
      2. 配置
      3. 镜像仓库
    1. 项目设置
      1. 基本信息
      2. 成员角色
      3. 项目成员
      4. 外网访问
    1. DevOps 工程
      1. DevOps 工程概述
      2. 管理 DevOps 工程
      3. 流水线
      4. 凭证管理
      5. 添加代码仓库
      6. 访问 SonarQube 并创建 Token
      7. 设置自动触发扫描
      8. Jenkins Agent 说明
      9. 流水线常见问题
  1. 开发者指南
    1. Helm 应用开发
      1. 开发模板规范
      2. Helm 应用开发入门
    1. Source to Image(S2I) 自定义模版开发
      1. S2I 原理及流程介绍
      2. 自定义 S2I 模版
  1. API 文档
    1. API 文档
    1. 如何调用 API
    1. API 常用术语对照
    1. 监控指标说明
  1. 常见问题
    1. 安装常见问题
    1. 存储常见问题
    1. 控制台使用常见问题
    1. DevOps 常见问题
  1. 附录
    1. 部署 Ceph 存储服务端
    1. 部署 GlusterFS 存储服务端
    1. 安装 OpenEBS 创建 LocalPV 存储类型
    1. 云平台配置端口转发和防火墙
KubeSphere®️ 2020 All Rights Reserved.

主机管理

编辑

Kubernetes 集群中的计算能力由主机 (Node) 提供,Kubernetes 集群中的 Node 是所有 Pod 运行所在的工作主机,可以是物理机也可以是虚拟机。而 KubeSphere 主机管理的功能完全满足企业对集群运维监控的需求,支持实时查看资源状态和节点状态,查看任意主机上容器组的运行状态以及 CPU 和 内存的消耗,并且主机的监控页面还能够实时地提供全方位细粒度的资源监控如 IOPS、磁盘吞吐、网卡流量,让用户一目了然所有主机资源状态。

节点 (Node) 中有一个重要的功能即污点 (Taints) 管理。我们知道节点亲和性 (NodeAffinity) 是 Pod 上定义的一种属性,使 Pod 能够按我们的要求调度到某个节点上,而污点则恰恰相反,它可以让节点拒绝运行 Pod,甚至驱逐 Pod。污点是节点的一个属性,如果主机设置了污点后,底层的 Kubernetes 是不会将 Pod 调度到这个节点上的。

主机管理列表

首先登录 KubeSphere 管理控制台,访问左侧菜单栏,在 资源 菜单下,点击 主机管理 按钮进入列表页。作为集群管理员,可以查看当前集群下所有主机信息。列表即可一目了然每个节点的状态、污点情况和最常用的 CPU、内存、容器组数量等监控指标。

主机管理列表

污点管理

点击列表中的某台主机,进入详情页。例如以下节点,我们发现它的内存使用情况已经高达 91 % ,因此不建议再继续往这台节点上调度新的 Pod,可以为其设置一个污点。设置了污点后,KubeSphere 是不会将 Pod 调度到这个 Node 上的。

1、点击左上角 污点管理 按钮,进入主机污点 (Taints) 管理页面。

污点详情

2、污点的属性一般是 key=value [effect],其中 key=value 一般用来匹配 Pod 的容忍 (Toleration)。而 effect 有 3 个选项,详见参数解释。

3、比如此处设置为 test=node1,effect 设置为 NoSchedule,那么只有设置了 Toleration 与该 Node 污点属性一致的 Pod,才允许被调度到该节点。

参数解释:

Node 的 effect 存在以下 3 个值,对于还未被调度的 Pod 来说:

  • NoSchedule: 表示不允许调度,已调度的资源不受影响。
  • PreferNoSchedule: 表示尽量不调度。
  • NoExecute: 表示不允许调度

如果在设置 node 的 Taints (污点) 之前,就已经运行了一些 Pod,则分为以下几种情况:

  • 若 effect 的值是 NoSchedule 或 PreferNoSchedule,对于已运行的 Pod 仍然可以运行,只是新 Pod (如果没有设置容忍) 不会再往上调度。
  • 若 effect 的值是 NoExecute,那么此 Node 上正在运行的 Pod,只要没有容忍的,立刻被驱逐。effect 为 NoExecute 的污点,在容忍 (Toleration) 属性中有一个可选配置:tolerationSeconds 字段,用来设置这些 Pod 还可以在这个 Node 之上运行多久,给它们一点宽限的时间,到时间才驱逐。

    • 如果是部署 (Deployment),那么被该 Node 驱逐的 Pod 会漂移其它节点运行。
    • 如果是守护进程集 (DaemonSet) 被驱逐后也不会再被运行到其它 Node,直到 Node 上的 NoExecute 污点被删除或者为该 Pod 设置了容忍。

主机 taint 管理

如何将日志和监控的 Pod 调度到专用节点

目前,在 KubeSphere 中已对日志和监控的 Pod 添加了如下的 toleration,若希望将监控和日志调度到专用节点可以给需要调度到的监控节点和日志节点分别打上与 tolerations 匹配的 taint。

# 监控
 tolerations:
  - effect: NoSchedule
    key: dedicated
    operator: Equal
    value: monitoring

# 日志
tolerations:
  - key: CriticalAddonsOnly
    operator: Exists
  - effect: NoSchedule
    key: dedicated
    value: log

查看主机详情

在主机列表页,点击某个主机节点打开其详情页,可以看到当前主机下所有资源的概况,包括主机的 CPU 、内存和容器组资源运行和使用状态,并且支持查看主机上所有容器组的资源使用情况和数量变化,以及注解 (Annotation) 和事件 (Events) 信息。

节点状态

节点状态 (Conditions) 描述了所有运行中节点的状态,KubeSphere 对主机的管理有以下五种状态,集群管理员通过以下五种状态可以判断当前节点的负载和能力,更合理地管理主机资源。

  • OutOfDisk:表示当前节点是否有足够的空间添加和运行新的 Pods
  • MemoryPressure:表示当前节点的内存压力的高低
  • DiskPressure:表示当前节点的磁盘压力高低
  • PIDPressure:表示当前节点的进程是否存在压力
  • Ready:表示当前节点的状态是否健康和能够准备接收新的 Pods 运行,Node Controller 如果 40 秒 内没有收到节点的状态报告则为 Unknown

节点详情

查看监控

值得一提的是,主机管理支持细粒度的资源监控,可筛选指定时间范围内的监控数据以查看变化情况。

停用或启用主机

在主机详情页面,点击左侧 停用 (cordon) 按钮,主机状态变为 无法调度,当前按钮变为 启用 (uncordon),当有新的工作负载被创建时将不会被调度到此节点,如想回复为可调度状态,点击 启用 按钮。

更新主机标签

如果需要限制 Pod 到指定的 Node 上运行,则可以给 Node 打标签 (Label) 并给 Pod 配置节点选择器 (NodeSelector)。

例如,给其中一个 Node 打上标签 role=ssd_node 后,如果给 Pod 也设置了 NodeSelector 为 role : ssd_node,那么该 Pod 将只会在这一个节点上运行。

如果需要更新更新主机标签,可在项目详情页面,点击左侧项目操作菜单, 点击 编辑标签 按钮编辑当前主机上的标签 (Labels),最后点击 确认 按钮完成修改。

修改主机标签