跳转至

02工作负载和调度

考试大纲

工作负载和调度:15%

  • 了解部署以及如何执行滚动更新和回滚

  • 使用 ConfigMaps 和 Secrets 配置应用程序

  • 了解如何扩展应用程序

  • 了解用于创建健壮的、自修复的应用程序部署的原语

  • 了解资源限制如何影响 Pod 调度

  • 了解清单管理和通用模板工具

Deployment 扩容 Pod

题目描述:

  • 设置配置环境 kubectl config use-context k8s
  • 将 deployment webserver 扩展至 6 pods

官方文档:

参考解答:

kubectl scale deployment/webserver --replicas=6

Pod 调度

题目描述:

  • 设置配置环境 kubectl config use-context k8s
  • 按如下要求调度一个 pod:
  • 名称:nginx-kusc00401
  • image: nginx
  • Node selector: disk=ssd

官方文档:

参考解答:

apiVersion: v1
kind: Pod
metadata:
  name: nginx-kusc00401
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    disk: ssd

查询 Ready Nodes 个数

题目描述:

  • 设置配置环境 kubectl config use-context k8s
  • 检查有多少个 worker nodes 已准备就绪(不包括被打上 Taint: NoSchedule 的节点),并将数量写入 /opt/KUSC00402/kusc00402.txt

官方文档:

参考解答:

# 查看所有的 nodes
kubectl get nodes |grep -i ready # 记录总数 A

# 查看有污点的 nodes
kubectl describe node | grep Taint | grep NoSchedule # 记录总数 B

# 将结果数量输出到指定文件 (结果为 A - B)
echo 2 > /opt/KUSC00402/kusc00402.txt

创建多容器 Pod

题目描述:

  • 设置配置环境 kubectl config use-context k8s

  • 创建一个名字为 kucc4 的 pod,在 pod 里面分别为以下每个 images 单独运行一个 app container (可能会有 1-4 个 images):

  • nginx

  • redis

  • memcached

  • consul

官方文档:

参考解答:

apiVersion: v1
kind: Pod
metadata:
  name: kucc4
spec:
  containers:
  - name: nginx
    image: nginx
  - name: redis
    image: redis
  - name: memcached
    image: memcached
  - name: consul
    image: consul