某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 学习建议

  • Docker命令大全
  • Kubernetes教程

    • Kubernetes(K8s)学习教程 - 前言
    • 第1章-Kubernetes集群部署
    • 第2章-便捷性设置以及集群插件的安装
    • 第3章-基础操作
    • 第4章-集群升级
    • 第5章-Pod
    • 第6章-Pod生命周期与资源限制
    • 第7章-Pod与节点
    • 第8章-控制器Deployment
    • 第9章-Deployment镜像变更和滚动更新
    • 第10章-其他控制器-以及标签表达式
    • 第11章-控制器与节点驱逐
    • 暂缓更新
    • 练习题

      • 练习题-1
      • 练习题-2
      • 练习题-3
      • 练习题-4
      • 练习题-5
      • 练习题-6
      • 练习题-7
      • 练习题-8
        • 理论练习(开放性试题)
        • 实操练习
        • 实操练习答案
          • 1. 控制器ds-ten
          • 2. 解释此 DaemonSet 为什么没有在 master 上创建 Pod?
          • 3. 将此 DaemonSet 的镜像变更为nginx:1.9。
          • 4. 控制器 DaemonSet 是否支持镜像的历史变更记录?
          • 5. 将其中一个 Pod 的标签look=good修改为look=bang,观察 DaemonSet 是否有动作。
          • 6. 为其中一个 Pod 添加标签bad=,观察 DaemonSet 是否有动作。
          • 7. 删除这个 DaemonSet。
    • 常用命令及yaml配置

  • CKS教程

  • 云原生安全
  • Kubernetes教程
  • 练习题
carsaid
2023-11-23
目录

练习题-8

# 课后练习题-8

# 理论练习(开放性试题)

涵盖第 10 章的内容。

  1. 控制器 Deployment 和 DaemonSet 之间的区别?
  2. 控制器 ReplicaSet(RS)的作用?
答案
  1. Deployment 创建并运行多个 Pod,这些 Pod 被调度至不同的工作节点上运行,通常用于部署业务。DaemonSet 在每个节点上分别创建一个 Pod,通常用于集群自身的监控、通信和日志收集等工作。
  2. RS 可以维持 Pod 数量,提供 Pod 副本数扩缩特性。RS 被作为 Deployment 的底层组件之一。

# 实操练习

涵盖第 10 章的内容。

  1. 创建一个 DaemonSet 控制器,要求如下:
    • 名称为ds-ten
    • 通过标签表达式(选择算符)来追踪 Pod,要求匹配look=good或look=bang标签
    • 添加一个标签表达式,拒绝标签键名为bad的任意 Pod
    • Pod 模板的标签为look=good
    • 容器使用的镜像为nginx,镜像下载策略为IfNotPresent,容器名称为c1
  2. 解释此 DaemonSet 为什么没有在 master 上创建 Pod?
  3. 将此 DaemonSet 的镜像变更为nginx:1.9。
  4. 控制器 DaemonSet 是否支持镜像的历史变更记录?
  5. 将其中一个 Pod 的标签look=good修改为look=bang,观察 DaemonSet 是否有动作。
  6. 为其中一个 Pod 添加标签bad=,观察 DaemonSet 是否有动作。
  7. 删除这个 DaemonSet.

答案分隔线


答案分隔线


答案分隔线


答案分隔线


答案分隔线


答案分隔线


答案分隔线


答案分隔线


答案分隔线


# 实操练习答案

# 1. 控制器ds-ten

创建一个 DaemonSet 控制器,要求如下: + 名称为ds-ten + 通过标签表达式(选择算符)来追踪 Pod,要求匹配look=good或look=bang标签 + 添加一个标签表达式,拒绝标签键名为bad的任意 Pod + Pod 模板的标签为look=good + 容器使用的镜像为nginx,镜像下载策略为IfNotPresent,容器名称为c1

编写以下 yaml 文件:

# ds-ten.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: ds-ten
spec:
  selector:
    matchExpressions:
    - { key: look, operator: In, values: [good, bang] }
    - { key: bad, operator: DoesNotExist}
  template:
    metadata:
      labels:
        look: good
    spec:
      containers:
      - image: nginx
        imagePullPolicy: IfNotPresent
        name: c1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

创建这个控制器

kubectl apply -f ds-ten.yaml

kubectl get daemonsets -o wide
kubectl get pods --show-labels
1
2
3
4
Not Found Image

# 2. 解释此 DaemonSet 为什么没有在 master 上创建 Pod?

因为 master 节点默认具有污点,而此 DaemonSet 没有在 Pod 模板中配置容忍污点,所以 DaemonSet 不会在具有污点的 master 上创建 Pod。

kubectl describe nodes www.k10.com | grep Taint
1
Not Found Image

# 3. 将此 DaemonSet 的镜像变更为nginx:1.9。

kubectl set image daemonset ds-ten c1=nginx:1.9
1
Not Found Image

# 4. 控制器 DaemonSet 是否支持镜像的历史变更记录?

kubectl rollout history daemonset ds-ten

# 可以设置注释信息,但内容不会同步到历史记录中
kubectl annotate daemonset ds-ten kubernetes.io/change-cause=<变更原因>
1
2
3
4

支持历史记录,但不能像 Deployment 一样自定义变更信息。

# 5. 将其中一个 Pod 的标签look=good修改为look=bang,观察 DaemonSet 是否有动作。

kubectl label pods <Pod名称> look=bang --overwrite=true

kubectl get pods --show-labels
1
2
3

DaemonSet 没有任何动作。因为它可以追踪标签look=good和look=bang中的任意一个。

Not Found Image

# 6. 为其中一个 Pod 添加标签bad=,观察 DaemonSet 是否有动作。

# bad 标签的值为空
kubectl label pods <Pod名称> bad=

kubectl get pods --show-labels
1
2
3
4

由于 “拒绝” 的优先级大于 “允许”,所以 DaemonSet 丢弃了这个 Pod,另外创建了一个新的 Pod。

Not Found Image

# 7. 删除这个 DaemonSet。

kubectl delete daemonsets ds-ten

# 或
kubectl delete -f ds-ten.yaml
1
2
3
4
Not Found Image
编辑 (opens new window)
练习题-7
常见的集群配置文件

← 练习题-7 常见的集群配置文件→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式