云原生之路03之Kubernetes集群管理和工作负载

举报
孙小北 发表于 2021/06/02 23:15:55 2021/06/02
【摘要】 云原生之路02之Kubernetes集群管理和工作负载 第四章 Kubernetes集群管理 K8S集群生命周期 K8S集群常见部署形态自建模式:需要用户管理,可操作性最大,k8s用户节点,k8s控制平面,k8s对接云服务和集群管理对接基础设施托管模式(CCE):需要管理业务和k8s用户节点,聚焦于业务Serverless模式(CCI):只需要管理业务。 K8S常见部署方式本地服务器:mi...

云原生之路03之Kubernetes集群管理和工作负载

第四章 Kubernetes集群管理

K8S集群生命周期

K8S集群常见部署形态

  • 自建模式:需要用户管理,可操作性最大,k8s用户节点,k8s控制平面,k8s对接云服务和集群管理对接基础设施
  • 托管模式(CCE):需要管理业务和k8s用户节点,聚焦于业务
  • Serverless模式(CCI):只需要管理业务。
    image.png

K8S常见部署方式

  • 本地服务器:minikube,本地开发调试
  • 自备服务器:kubeadm,kops,kubespray ,第三方托管,需要动手,学习
  • 云服务CCE:容器平台集群管理 + 云基础设施
  • 云服务CCI:容器平台serverless——云基础设施——服务器。
    image.png

K8S生产集群

  • 高可用(满足业务容灾需求)

  • 弹性伸缩(满足动态资源需求)

  • 安全和权限管理(满足组织权限管理需求)

  • 自建与运维k8s集群优点是高灵活性,可定制开发。缺点是重资产,高投入,运维成本高,跨云迁移困难。(推荐开发者学习)

  • 使用CNCF认证k8s容器平台优点是轻资产,低投入,运维成本低,跨云迁移方便。缺点是灵活性较低,迭代依赖云产商。(企业生产)
    image.png

K8S集群架构-CCE集群

  • CCE集群:控制平面托管,深度对接云基础设施,云原生全栈
    image.png

K8S节点生命周期

K8S节点Node定义

K8S中定义

  • 业务负载(POD)是资源的消费者
  • 节点(Node)是业务负载的载体
  • 云产商(Provider)是基础资源的生产者
    image.png

节点池管理

  • 节点池:集群中具有相同配置的一组节点,一个节点包含一个节点或多个节点
    CCE集群支持多种方式添加节点:
  • 节点管理:创建节点(通过CCE创建服务器)
  • 节点管理:纳管节点(已创建的服务器)
  • 节点池管:更新期望节点数

第五章 Kubernetes工作负载管理

工作负载的概念

  • 工作负载(Workload)是k8s上运行的应用程序,无论是单一组件还是多个组件构成,都可以在一组Pods中运行它。
  • 在K8S中,Pod代表的是集群上处于运行状态的一组容器

四种负载:

  • 无状态工作负载:管理的Pod集合是相互等价的,需要的时候可以被替换
    • Deployment
    • ReplicaSet
    • ReplicationController
  • 有状态工作负载:为每个Pod维护了一个唯一的ID,能够保证Pod的顺序性和唯一性,每个Pod不可替代,可以使用特久存储来保存服务产生的状态。
    • StatefulSet
  • 守护进程工作负载:保证每个节点上运行着这样一个守护进程
    • DaemonSet
  • 批处理工作负载:一次性的任务
    • Job
    • CronJob

Deployment概述

Deployment是一组不具有唯一标识的多个Pod的集合

  • 确保集群中有期望数量的Pod运行
  • 提供多种升级策略以及一键回滚能力
  • 提供暂停/恢复的能力
    使用场景
  • Web Server等无状态应用。

Deployment语法

TODO:实操时再使用
image.png

Deployment常用操作

image.png
image.png

Deployment使用小结

  • 选择所需的升级策略,合理配置升级参数,例如maxUnavailable以及maxSurge
  • 合理设置历史版本数量,系统默认情况下会保留10个历史版本
  • 回滚时,只有Deployment模板部分会被回滚,手动/自动扩缩Deployment数量是不会被回滚的。
  • 暂停过程中,模板更新不会触发Deployment滚动更新。

Job/CronJob概述

Job

Job主要处理一些短语的一次性任务:

  • 保证指定数量Pod成功运行结束
  • 支持并发执行
  • 错误自动重试和暂停/恢复Job
    使用场景:
  • 计算以及训练任务,如批量计算,AI训练任务等。

CronJob

CronJob主要处理周期性或者重复性的任务

  • 基于Crontab格式的时间调度
  • 可以暂停/恢复CrobJob
    使用场景:
  • 周期性数据分析服务和资源回收服务。

Job/CronJob语法

image.png
image.png

Job/CronJob常用操作

image.png
image.png

Job/CronJob使用小结

  • 合理设置Job的并发度,和所需的完成数量
  • 合理设置失败重试次数,当前系统默认值为6
  • Job中的Pod Restart Policy只能为Never或者OnFailure
  • 合理设置历史Job保留时间
  • 合理设置CronJob的周期策略,已经并发策略
  • CronJob当在一个时间窗内(上一次调度的时间点到现在)所错过的调度次数超过100次以后,那么就不会再启动这个任务了。

DaemonSet概述

DaemonSet(守护进程集)功能:

  • 确保每一个节点或者期望的节点上运行一个Pod
  • 新增节点时自动部署一个Pod
  • 移除节点时自动删除Pod
    image.png

使用场景:

  • 日志监控采集进程,如fluented,icagent
  • 节点运维进程,Node Problem Detector,OS-Operator-Agent
  • Kubernetes必要运行组件,如Everest Driver,Calico等
  • Device Plugin:GPU Device Plugin运行在GPU节点上

DaemonSet语法

image.png

DaemonSet常规操作

image.png
image.png

DaemonSet使用小结

  • 合理设置DaemonSet升级策略
  • 可以通过设置节点亲和性或者节点选择器来选择部分节点部署
  • 合理设置DaemonSet的RevisionHistoryLimit,默认值为10

课程实验 天气预报

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。