HPA
自动更新工作负载资源(例如 Deployment 或者 StatefulSet), 目的是自动扩缩工作负载以满足需求。 绑定到deploy上,控制pod 依托于metrics-server HorizontalPodAutoscaler
水平pod自动扩缩:意味着对增加的负载的响应是部署更多的 Pod。 这与“垂直(Vertical)”扩缩不同,对于 Kubernetes, 垂直扩缩意味着将更多资源(例如:内存或 CPU)分配给已经为工作负载运行的 Pod。
如果负载减少,并且 Pod 的数量高于配置的最小值, HorizontalPodAutoscaler 会指示工作负载资源(Deployment、StatefulSet 或其他类似资源)缩减。
可以加压力 kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10最多十台Pod 最少一台 会自动加pod 关闭以后又会自动减少pod 50的意思是平均每个Pod超过50%cpu使用率就新建一个
还可以基于内存扩缩memory 还有垂直扩缩VPA 水平扩缩比较好(负载均衡 高可用单点故障)
度量值:cpu,网络流量,内存
- 1.启动速度 2.扩展性--》自动扩缩 3.资源的消耗方面--》节省服务器 速度 价格--》成本 稳定性 可靠性
滚动升级
- 一个一个去升级,前面的成功了就继续升级后面的 RollingUpdate,即滚动升级
- 当新Pod准备就绪后,控制器会杀死一个旧版本的Pod,确保任何时候都有足够的健康Pod提供服务。
workloads 工作负载
- Deployment
- 功能:用于声明式更新应用,管理无状态应用的副本。
- 特点:自动扩展、滚动更新、回滚。
- 使用场景:适合需要高可用性的无状态服务。
- ReplicaSet
- 功能:保持集群中指定数量的Pod副本。
- 特点:保证至少有指定数量的Pod始终运行。
- 使用场景:通常不直接使用,而是作为Deployment的基础组件。
- StatefulSet
- 功能:管理有状态应用的副本,每个Pod具有唯一的持久化身份和持久存储。
- 特点:保证顺序启动和停止、支持持久化存储。
- 使用场景:适合数据库、消息队列等需要持久化存储和稳定网络标识的服务。
- DaemonSet
- 功能:确保所有(或某些)节点上运行一个指定的Pod副本。
- 特点:自动在新节点上运行Pod,确保所有节点上的服务可用。
- 使用场景:适用于日志收集、监控等需要在集群所有节点上运行的服务。
- Job
- 功能:完成指定任务后自动结束。
- 特点:确保Pod成功执行完毕,即使Pod失败也会重新启动直到完成。
- 使用场景:适用于批处理任务、数据迁移等一次性工作。
- CronJob
- 功能:根据预定义的时间表创建Jobs。 特点:定时执行任务。
- 使用场景:适用于定期执行的任务,如备份、清理等。
pod调度
kubectl label nodes k8s-node-1 sex=pro (打标签)
查看 describe 或者 get node -o yaml
优先打散 给空闲率最高的分配
FIFO 先进先出 first in first out
kubectl delete pod $(kubectl get pod |awk 'NR>1{print $1}') 删除所有Pod