Deployment是通过ReplicaSet来进行Pod的管理的,这篇文章通过一个简单的示例,对此进行说明。

Deployment的YAML示例

有如下busybox的Deployment的YAML配置文件:

[root@host131 Deployment]# cat v1.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:name: busybox-deployment-v1
spec:replicas: 3selector:matchLabels:app: busybox-v1template:metadata:labels:app: busybox-v1spec:containers:- name: busybox-hostimage: busybox:1.31.1command: ["sleep"]args: ["1000"]
...
[root@host131 Deployment]#

生成Deployment和Pod

[root@host131 Deployment]# kubectl create -f v1.yaml
deployment.apps/busybox-deployment-v1 created
[root@host131 Deployment]#

确认Deployment和Pod信息

[root@host131 Deployment]# kubectl get deployment -o wide
NAME                    READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS     IMAGES           SELECTOR
busybox-deployment-v1   3/3     3            3           9s    busybox-host   busybox:1.31.1   app=busybox-v1
[root@host131 Deployment]#
[root@host131 Deployment]# kubectl get pods -o wide
NAME                                     READY   STATUS    RESTARTS   AGE   IP             NODE              NOMINATED NODE   READINESS GATES
busybox-deployment-v1-7bfdbd9656-9pg9s   1/1     Running   0          15s   10.254.152.6   192.168.163.131   <none>           <none>
busybox-deployment-v1-7bfdbd9656-l4knv   1/1     Running   0          15s   10.254.152.7   192.168.163.131   <none>           <none>
busybox-deployment-v1-7bfdbd9656-m8g9c   1/1     Running   0          15s   10.254.152.5   192.168.163.131   <none>           <none>
[root@host131 Deployment]#

日志信息分析

确认Deployment

通过对Deployment和Pod等日志进行分析,确认在Deployment中生成Pod的顺序:

执行命令:kubectl describe deployment busybox-deployment-v1

主要日志信息:

Events:Type    Reason             Age   From                   Message----    ------             ----  ----                   -------Normal  ScalingReplicaSet  34s   deployment-controller  Scaled up replica set busybox-deployment-v1-7bfdbd9656 to 3

可以看到出现了一个Replica Set,通过deployment-controller控制器创建,然后使用如下命令确认出了隐藏在后面工作的ReplicaSet, 此ReplicaSet的NAME与上述日志记载的名称相同

[root@host131 Deployment]# kubectl get rs -o wide
NAME                               DESIRED   CURRENT   READY   AGE   CONTAINERS     IMAGES           SELECTOR
busybox-deployment-v1-7bfdbd9656   3         3         3       54s   busybox-host   busybox:1.31.1   app=busybox-v1,pod-template-hash=7bfdbd9656
[root@host131 Deployment]#

确认Replica Set

执行命令:kubectl describe rs busybox-deployment-v1-7bfdbd9656

主要日志信息:

Events:Type    Reason            Age   From                   Message----    ------            ----  ----                   -------Normal  SuccessfulCreate  77s   replicaset-controller  Created pod: busybox-deployment-v1-7bfdbd9656-m8g9cNormal  SuccessfulCreate  77s   replicaset-controller  Created pod: busybox-deployment-v1-7bfdbd9656-9pg9sNormal  SuccessfulCreate  77s   replicaset-controller  Created pod: busybox-deployment-v1-7bfdbd9656-l4knv

可以清晰地看到3个Pod实例都是通过Replica Set生成的

确认Pod

执行命令:kubectl describe pod busybox-deployment-v1-7bfdbd9656-m8g9c

主要日志信息:

Events:Type    Reason     Age   From                      Message----    ------     ----  ----                      -------Normal  Scheduled  94s   default-scheduler         Successfully assigned default/busybox-deployment-v1-7bfdbd9656-m8g9c to 192.168.163.131Normal  Pulled     92s   kubelet, 192.168.163.131  Container image "busybox:1.31.1" already present on machineNormal  Created    92s   kubelet, 192.168.163.131  Created container busybox-hostNormal  Started    91s   kubelet, 192.168.163.131  Started container busybox-host

Pod的创建非常清晰:

  • 由调度器决定在192.168.163.131这台节点上进行Pod的生成
  • 拉取镜像(镜像事前已经存在的情况)
  • 创建镜像 busybox-host
  • 启动镜像 busybox-host

总结

从上述示例可以清晰地看到Deployment生成Pode的过程:Deployment -> Replica Set -> Pod生成。

Kubernetes基础:Deployment中ReplicaSet相关推荐

  1. Kubernetes(15):Pod控制器ReplicaSet和Deployment详解

    文章目录 前言 第一节 Pod控制器 第二节 ReplicaSet(RS) 1. 概念和资源清单 2. 创建ReplicaSet 3. 扩缩容 3.1 方法一:直接编辑rs 3.2方法二 :命令扩缩容 ...

  2. Kubernetes控制器--副本集ReplicaSet

    Kubernetes最核心的功能就是编排,而编排操作都是依靠控制器对象来完成的,高级的控制器对象控制基础的控制器对象,基础的控制器对象再去控制Pod,Pod里面再包容器.Kubernetes项目里AP ...

  3. 想提高运维效率,那就把MySQL数据库部署到Kubernetes 集群中

    摘要:Kubernetes 很多看起来比较"繁琐"的设计的主要目的,都是希望为开发者提供更多的"可扩展性",给使用者带来更多的"稳定性"和& ...

  4. Kubernetes基础详解

    1. Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不 ...

  5. kubernetes基础介绍及kubectl常用命令

    kubernetes基础介绍及kubectl常用命令 k8s的pod分类 自主式pod 控制器管理的pod 核心主键 HPA service 网络模型 同节点Pod之间的通信 不同节点上的Pod通信 ...

  6. kubernetes之Deployment

    1.什么是Deployment? Deployment(简写为deploy)是kubernetes控制器的又一种实现,构建于ReplicasSet控制器之上,可以为Pod和ReplicaSet提供声明 ...

  7. Kubernetes基础入门(完整版)

    简介 Kubernetes这个名字源于希腊语,意为"舵手"或"飞行员".k8s这个缩写是因为k和s之间有八个字符.Google在 2014年开源了Kuberne ...

  8. 在Kubernetes v1.8中使用RBAC

    Kubernetes 1.8一个重要里程碑是推出了基于角色的访问控制(RBAC)授权,在这个版本中被提升为GA.RBAC是一种控制访问Kubernetes API的机制,因为在1.6中推出beta版, ...

  9. .NET Core + Kubernetes:Deployment

    在上篇文章 .NET Core + Kubernetes:Pod 中,主要介绍了 Pod 的相关内容, 基于 Pod 为单位能更加合理进行容器编排,然而 Pod 只是个启动了一个或一组容器的资源类型, ...

最新文章

  1. php变量定义的位置,php变量一般放在哪个位置
  2. 计算机程序输入x是3求输出七年级的题,七年级上册数学第三单元练习题
  3. 软件测试面试-如何测试一个杯子(转)
  4. 【dfs】栅栏的木料(2012特长生 T4)
  5. 论文浅尝 - COLING2020 | 一种用于跨语言实体对齐的上下文对齐强化跨图谱注意力网络...
  6. Delphi中的操作二进制文件的两个重要函数
  7. 50道编程小题目之【水仙花数】
  8. boot入门思想 spring_微服务架构之SpringBoot详解,夯实底层知识,带你轻松入门开发...
  9. 小程序进阶学习02--安装webstorm
  10. 阶段3 3.SpringMVC·_07.SSM整合案例_07.ssm整合之编写MyBatis框架测试保存的方法
  11. py 操作Mysql数据库
  12. 小米 MIUI 主题制作
  13. 华硕服务器主板那个系列好,华硕主板型号性价比排行 华硕主板那个性价最好用...
  14. 链接Linux工具(SecureCRT)
  15. ORCAD元件的批量替换与更新
  16. Redis系列(三)--过期策略
  17. NaN表示什么?typeof NaN结果是什么?
  18. js gbk与UTF8 转换
  19. 【SVM分类】基于狮群算法优化实现SVM数据分类matlab源码
  20. css 父级设置了padding,但是子元素还是会超过padding解决方案

热门文章

  1. macOS Big Sur 11.2 (20D64) 正式版发布,百度网盘下载
  2. 华为android怎么玩,如何在计算机上使用Android模拟器玩华为帐户手机游戏? ---已回复...
  3. mysql 报错“发生系统错误 3.系统找不到指定路径”
  4. 伤疤好了有黑印怎么办_疤痕留下黑印怎么办 不妨试试这四种方法
  5. python爬虫,矢量数据地铁线路获取
  6. 《黑客帝国》或颠倒的两面
  7. C#三大迷宫生成算法
  8. ai描边工具怎么打开_AI描边工具命令讲解,教你ai描边功能实用技巧
  9. 狂人社区_观看此狂人将软盘驱动器连接到他的Android手机
  10. Unity 导出 obj, fbx