第三章:Pod部署和调度
学习目标
部署、配置、标签选择、调度、副本、控制器、有状态的无状态的 Pod
- 讨论部署配置细节
- 通过
kubectl create/apply创建 Deployment ,部署 Pod; - 通过
kubectl edit修改 对象; - 如何查看对象信息,
kubectl get、kubectl describe、-o wide、-o yaml; - 创建 Service,
kubectl expose; - 设置副本集,
replicaset; - 查看对象支持的属性
kubectl explain pods,kubectl explain pod.spec
- 通过
- 向上和向下扩展部署。
- 扩容 Pod,设置副本集,
kubectl scale、kubectl edit; - 自动扩容 Pod,水平缩放,比例缩放,根据 CPU、内存缩放,
kubectl autoscale; - DaemonSet
- 扩容 Pod,设置副本集,
- 实现滚动更新和回滚
- 更换镜像版本、更新 Pod,
kubectl set image; - 设置滚动更新速度,
maxSurge、maxUnavailable; - 暂停和恢复更新,
kubectl rollout pause、kubectl rollout resume; - 回滚旧版本,
kubectl rollout undo;
- 更换镜像版本、更新 Pod,
- 使用标签选择各种对象以及调度
- 了解 label、selector、nodeSelector;
- 查询 label、选择 label、使用选择器调度 Pod;
- 选择器运算符,等值选择、集合选择;
- 配置污点和容忍度
- 亲和性和反亲和性
- 配置污点和容忍度
- 系统默认污点、master 的调度配置
- Job 和 CronJob
- 了解 Job,完成数(conpetions)、工作队列(parallelism)、控制并行性、清理 Job。
- CronJob 的时间表示
- StatefulSet
- 有状态的应用
掌握以下命令的使用:
kubectl 原理是请求 apiserver 完成某些操作,日常操作中,最常用的就是 kubectl。
kubectl create {对象} ,创建 deployment、job 等对象。
kubectl apply -f 应用 yaml 文件,完成某些操作。
kubectl get {对象} 查询对象。
kubectl scale {对象} 伸缩对象数量(ReplicaSet)。
kubectl expose 创建 Service。
kubectl describe 获取对象详细的信息。
kubectl exec 在对象中执行命令,例如 pod。