云原生之路03之Kubernetes集群管理和工作负载
【摘要】 云原生之路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):只需要管理业务。
K8S常见部署方式
- 本地服务器:minikube,本地开发调试
- 自备服务器:kubeadm,kops,kubespray ,第三方托管,需要动手,学习
- 云服务CCE:容器平台集群管理 + 云基础设施
- 云服务CCI:容器平台serverless——云基础设施——服务器。
K8S生产集群
-
高可用(满足业务容灾需求)
-
弹性伸缩(满足动态资源需求)
-
安全和权限管理(满足组织权限管理需求)
-
自建与运维k8s集群优点是高灵活性,可定制开发。缺点是重资产,高投入,运维成本高,跨云迁移困难。(推荐开发者学习)
-
使用CNCF认证k8s容器平台优点是轻资产,低投入,运维成本低,跨云迁移方便。缺点是灵活性较低,迭代依赖云产商。(企业生产)
K8S集群架构-CCE集群
- CCE集群:控制平面托管,深度对接云基础设施,云原生全栈
K8S节点生命周期
K8S节点Node定义
K8S中定义
- 业务负载(POD)是资源的消费者
- 节点(Node)是业务负载的载体
- 云产商(Provider)是基础资源的生产者
节点池管理
- 节点池:集群中具有相同配置的一组节点,一个节点包含一个节点或多个节点
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:实操时再使用
Deployment常用操作
Deployment使用小结
- 选择所需的升级策略,合理配置升级参数,例如maxUnavailable以及maxSurge
- 合理设置历史版本数量,系统默认情况下会保留10个历史版本
- 回滚时,只有Deployment模板部分会被回滚,手动/自动扩缩Deployment数量是不会被回滚的。
- 暂停过程中,模板更新不会触发Deployment滚动更新。
Job/CronJob概述
Job
Job主要处理一些短语的一次性任务:
- 保证指定数量Pod成功运行结束
- 支持并发执行
- 错误自动重试和暂停/恢复Job
使用场景: - 计算以及训练任务,如批量计算,AI训练任务等。
CronJob
CronJob主要处理周期性或者重复性的任务
- 基于Crontab格式的时间调度
- 可以暂停/恢复CrobJob
使用场景: - 周期性数据分析服务和资源回收服务。
Job/CronJob语法
Job/CronJob常用操作
Job/CronJob使用小结
- 合理设置Job的并发度,和所需的完成数量
- 合理设置失败重试次数,当前系统默认值为6
- Job中的Pod Restart Policy只能为Never或者OnFailure
- 合理设置历史Job保留时间
- 合理设置CronJob的周期策略,已经并发策略
- CronJob当在一个时间窗内(上一次调度的时间点到现在)所错过的调度次数超过100次以后,那么就不会再启动这个任务了。
DaemonSet概述
DaemonSet(守护进程集)功能:
- 确保每一个节点或者期望的节点上运行一个Pod
- 新增节点时自动部署一个Pod
- 移除节点时自动删除Pod
使用场景:
- 日志监控采集进程,如fluented,icagent
- 节点运维进程,Node Problem Detector,OS-Operator-Agent
- Kubernetes必要运行组件,如Everest Driver,Calico等
- Device Plugin:GPU Device Plugin运行在GPU节点上
DaemonSet语法
DaemonSet常规操作
DaemonSet使用小结
- 合理设置DaemonSet升级策略
- 可以通过设置节点亲和性或者节点选择器来选择部分节点部署
- 合理设置DaemonSet的RevisionHistoryLimit,默认值为10
课程实验 天气预报
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)