常见类型的yaml文件如何编写?--kind: Deployment

这篇具有很好参考价值的文章主要介绍了常见类型的yaml文件如何编写?--kind: Deployment。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基本说明

Deployment 资源是 Kubernetes 重要的组成部分之一,通过指定 Deployment 中的 Pod 模板和副本数量,Kubernetes 可以自动地创建并管理一组具有相同配置的 Pod,这样即使某些 Pod 发生故障或需要升级,也可以轻松地进行控制和管理。

因此,当我们使用 kind: Deployment 时,YAML 文件中应该包括 spec 字段来定义 Deployment 中的 Pod 模板和副本数量,并可以通过 metadata 字段来为 Deployment 资源指定名称,标签和注释等元数据。

基本样例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment       # Deployment 的名称
spec:
  replicas: 3               # 希望创建的 Pod 副本数量
  selector:
    matchLabels:
      app: my-app           # 用于选择要控制的 Pod 的标签
  template:
    metadata:
      labels:
        app: my-app         # Pod 的标签
    spec:
      containers:
      - name: my-container  # 容器名称
        image: nginx:latest # 容器所使用的镜像
        ports:
        - containerPort: 80 # 容器暴露的端口号

样例说明

在这个示例中,包含了以下关键字:

  • apiVersion:指定要使用的 Kubernetes API 的版本。对于 Deployment 类型,通常使用 apps/v1
  • kind:指定对象类型为 Deployment。
  • metadata:用于提供对象的元数据,其中 name 字段指定了 Deployment 的名称。
  • spec:是 Deployment 对象的规格部分,用于定义 Deployment 的具体配置。
    • replicas:指定希望创建的 Pod 副本数量。
    • selector:定义用于选择要控制的 Pod 的标签。
    • template:定义 Pod 的模板,用于创建实际的 Pod 对象。
      • metadata:定义 Pod 的元数据部分,其中 labels 字段用于给 Pod 设置标签。
      • spec:定义 Pod 的规格部分,其中 containers 字段用于定义容器的配置。
        • name:指定容器的名称。
        • image:指定容器所使用的镜像。
        • ports:定义容器暴露的端口号。

扩展参数及举例说明

扩展关键字

Deployment YAML 文件还可以包含其他用于配置 Deployment 的关键字

  • strategy: 定义 Deployment 更新策略,如 rollingupdate 和 recreated,还可以指定 RollingUpdate 策略的参数,如 maxUnavailable 和 maxSurge。
  • minReadySeconds: 指定一个 Pod 从创建到被标记为 Ready 的最小等待时间。
  • revisionHistoryLimit: 定义 Deployment 可以保留的历史版本数。
  • paused: 设置 Deployment 是否暂停更新。
  • progressDeadlineSeconds: 设置 Deployment 更新的 Deadline。
  • template.metadata.annotations: 用于为模板 Pod 设置注释。
  • template.spec.nodeName: 用于设置 Pod 所在的节点名称。
  • template.spec.serviceAccountName: 用于指定 Pod 使用的 ServiceAccount 的名称。

使用 RollingUpdate 更新策略

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: nginx:latest
        ports:
        - containerPort: 80
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1

在这个示例中,通过将 strategy.type 设置为 RollingUpdate,并分别设置 rollingUpdate.maxUnavailable 和 rollingUpdate.maxSurge 的值来定义滚动更新策略的参数。其中 maxUnavailable 指定允许的不可用 Pod 的最大数量,maxSurge 指定允许的超出副本数量的最大副本数。

暂停 Deployment 更新

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: nginx:latest
        ports:
        - containerPort: 80
  paused: true

在这个示例中,通过将 paused 设置为 true,将 Deployment 的更新暂停。这对于暂时停止 Deployment 的更新,并保持某个特定版本的副本运行非常有用。

这些关键字可以根据你的需求进行调整和扩展。当你编写完 YAML 文件后,可以使用 kubectl apply -f <YAML文件路径> 命令将该文件应用到 Kubernetes 集群中,创建或更新 Deployment 对象。

 文章来源地址https://www.toymoban.com/news/detail-820599.html

到了这里,关于常见类型的yaml文件如何编写?--kind: Deployment的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s-如何快速编写yaml文件(新手)

    但是这个过程并没有在集群中执行,只是把结果通过yaml格式的方式输出出来,包括咱们可把它输出到文件里 场景:适用于部署好的项目,可以把部署好的项目中的yaml文件导出出来,实际效果比较实用

    2024年02月13日
    浏览(28)
  • yaml文件格式说明及编写教程

    1、ymal介绍 k8s是容器编排引擎,使用yaml来编排部署应用 特点:1、缩进表示层级关系            2、不支持制表符“tab”缩进,需要使用空格缩进            3、通常开头缩进两个空格            4、字符后缩进一个空格,比如冒号与逗号后面需要缩进一个字符  

    2024年02月07日
    浏览(24)
  • 【云原生】Yaml文件详解

    Kubernetes 支持 YAML 和 JSON 格式管理资源对象 JSON 格式:主要用于 api 接口之间消息的传递 YAML格式:用于配置和管理,YAML 是一种简洁的非标记性语言,内容格式人性化,较易读 ●大小写敏感 ●使用缩进表示层级关系 ●不支持Tab键制表符缩进,只使用空格缩进 ●缩进的空格数

    2024年02月14日
    浏览(25)
  • K8S学习笔记-01(yaml文件编写)

    原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。 邮箱:yinwanit@163.com 记录k8s中yaml文件编写相关内容。 k8s官网文档库:https://kubernetes.io/docs/home/ kubelet 命令参考:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands k8s中yaml文件结尾需以.yml或.yaml结

    2024年02月14日
    浏览(28)
  • K8S:Yaml文件详解及编写示例

    (1)Kubernetes 支持 YAML 和 JSON 格式管理资源对象 (2)JSON 格式:主要用于 api 接口之间消息的传递 (3)YAML 格式:用于配置和管理,YAML 是一种简洁的非标记性语言,内容格式人性化,较易读 (1)大小写敏感 (2)使用缩进表示层级关系 (3)不支持Tab键制表符缩进,只使用

    2024年02月04日
    浏览(31)
  • k8s学习笔记-03(Pod yaml文件编写)

    原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。 邮箱:yinwanit@163.com Pod在k8s中归属apiVersion版本为v1。在编写yaml文件中apiVersion应该设置为v1。kind才能设置成Pod。 编写Pod的yaml文件时可以参考  kubectl explain --api-version=v1  pod. 一级一级查看具体的配置项

    2024年02月14日
    浏览(31)
  • k8s学习笔记-3(Pod yaml文件编写)

    原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。 邮箱:yinwanit@163.com Pod在k8s中归属apiVersion版本为v1。在编写yaml文件中apiVersion应该设置为v1。kind才能设置成Pod。 编写Pod的yaml文件时可以参考  kubectl explain --api-version=v1  pod. 一级一级查看具体的配置项

    2024年02月14日
    浏览(97)
  • 使用 Python、XML 和 YAML 编写 ROS 2 Launch 文件

    ROS2 重要概念 ament_cmake_python 用户文档 ROS2 ament_cmake 用户文档 使用 rosdep 管理 ROS 2 依赖项 ROS 2 launch 文件可以用 Python、XML 和 YAML 编写。本指南介绍了如何使用这些不同的格式来完成相同的任务,并对何时使用每种格式进行了讨论。 下面是一个用 Python、XML 和 YAML 实现的 Launc

    2024年02月05日
    浏览(32)
  • 云原生(第四篇)-k8s yaml文件

    Kubernetes 支持 YAML 和 JSON 格式管理资源对象 JSON 格式:主要用于 api 接口之间消息的传递 YAML 格式:用于配置和管理,YAML 是一种简洁的非标记性语言,内容格式人性化,较易读 YAML 语法格式: ●大小写敏感 ●使用缩进表示层级关系 ●不支持Tab键制表符缩进,只使用空格缩进

    2024年02月12日
    浏览(34)
  • k8s学习笔记-07(借助kubectl explain编写yaml文件)

    原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。 邮箱:yinwanit@163.com 文章记录了本人学习yaml文件编写过程中的一些经验分享。 在k8s学习过程中yaml文件的编写无疑是比较让人头痛的,尤其是最开始学习的时候。作者结合自己学习过程总结了以下几点

    2024年02月04日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包