k8s控制器之DaemonSet--第二弹创建DaemonSet

这篇具有很好参考价值的文章主要介绍了k8s控制器之DaemonSet--第二弹创建DaemonSet。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

YAML 示例

下面是 DaemonSet 的 YAML 文件示例 daemonset.yaml。该例子中的 DaemonSet 运行了一个 fluentd-elasticsearch 的 docker 镜像:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentd-elasticsearch
  namespace: kube-system
  labels:
    k8s-app: fluentd-logging
spec:
  selector:
    matchLabels:
      name: fluentd-elasticsearch
  template:
    metadata:
      labels:
        name: fluentd-elasticsearch
    spec:
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
      containers:
      - name: fluentd-elasticsearch
        image: fluent/fluentd-kubernetes-daemonset:v1.7.1-debian-syslog-1.0
        resources:
          limits:
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 200Mi
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers

执行如下命令可创建该 DaemonSet:

kubectl apply -f daemonset.yaml

执行结果:

daemonset.apps/fluentd-elasticsearch create

必填字段

与其他所有 Kubernetes API 对象相同,DaemonSet 需要如下字段:

  • apiVersion
  • kind
  • metadata

除此之外,DaemonSet 还需要 .spec 字段

Pod Template

.spec.template 是必填字段,定义了 Pod 的模板,与定义 Pod 的 yaml 格式完全相同(除了内嵌在 DaemonSet 中以外,没有 kind、APIVersion 字段以外)。

在 DaemonSet 中,您必须指定 .spec.template.metadata.labels 字段和 .spec.tempalte.spec 字段。

DaemonSet 的 .spec.template.spec.restartPolicy 字段必须为 Always,或者不填(默认值为 Always)

Pod Selector

.spec.selector 字段定义了 DaemonSet 的 pod selector,DaemonSet 认为符合该选择器的 Pod 由其管理。

自 Kubernets v1.8 以后,.spec.selector 是必填字段,且您指定该字段时,必须与 .spec.template.metata.labels 字段匹配(不匹配的情况下创建 DaemonSet 将失败)。DaemonSet 创建以后,.spec.selector 字段就不可再修改。如果修改,可能导致不可预见的结果。

.spec.selector 由两个字段组成:

  • matchLabels
  • matchExpressions 通过指定 key、value列表以及运算符,可以构造更复杂的选择器

如果两个字段同时存在,则必须同时满足两个条件的 Pod 才被选中。

任何情况下,您不能以任何方式创建符合 DaemonSet 的 .spec.selector 选择器的 Pod。否则 DaemonSet Controller 会认为这些 Pod 是由它创建的。这将导致不可预期的行为出现。

只在部分节点上运行

指定 .spec.template.spec.nodeSelector ,DaemonSet Controller 将只在指定的节点上创建 Pod (。同样的,如果指定 .spec.template.spec.affinityDaemonSet Controller 将只在与 node affinity 匹配的节点上创建 Pod。文章来源地址https://www.toymoban.com/news/detail-495517.html

到了这里,关于k8s控制器之DaemonSet--第二弹创建DaemonSet的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • K8s(Kubernetes)学习(四):Controller 控制器:Deployment、StatefulSet、Daemonset、Job

    什么是 Controller 以及作用 常见的 Controller 控制器 Controller 如何管理 Pod Deployment 基本操作与应用 通过控制器实现 Pod 升级回滚和弹性伸缩 StatefulSet 基本操作与应用 Daemonset 基本操作与应用 Job 基本操作与应用 Controller 无法解决问题 1 Controller 控制器 官网: http://kubernetes.p2hp.com/

    2024年02月09日
    浏览(56)
  • 18-k8s控制器资源-cronjob控制器

            job控制器是执行完一次任务,就结束;         cronjob控制器,是基于job控制器,定期频率性执行任务;等同于linux系统中的crontab一样; [root@k8s231 pi]# vim cronjob.yaml apiVersion: batch/v1 kind: CronJob metadata:   name: xinjizhiwa spec:   schedule: \\\"* * * * *\\\"   #定义job的模板   jobTemplate

    2024年02月22日
    浏览(72)
  • k8s 控制器

    Kubernetes(K8S)是一种开源的容器编排平台,它可以自动化地管理容器化应用程序的部署、扩展和运行。K8S中的控制器是一种重要的组件,它可以确保应用程序的状态与期望的状态一致。在K8S中,有五种常见的控制器,它们分别是: 1. ReplicaSet控制器 ReplicaSet控制器用于确保P

    2024年02月13日
    浏览(56)
  • K8s控制器

    kubectl create tabtab 下面的所有都可以创建模板文件 --dry-run=client -o yaml 查询资源对象的帮助信息         kubectl explain pod.spec.restartPolicy            #这里对上下层级关系需要清楚 获取Pod模板         kubectl run mypod --image=xxxx --dry-run=client -o yaml 获取Deployment         ku

    2024年02月03日
    浏览(69)
  • 15-k8s控制器资源-deployment/部署控制器

            在学习rc和rs控制器资源时,我们指导,这两个资源都是控制pod的副本数量的,但是,他们两个有个缺点,就是在部署新版本pod或者回滚代码的时候,需要先apply资源清单,然后再删除现有pod,通过资源控制,重新拉取新的pod来实现回滚或者迭代升级;         那么

    2024年02月21日
    浏览(70)
  • 14-k8s控制器资源-rs控制器replicasets

            replicaset副本控制器,简称:rs控制器;         用法:与rc控制器“几乎”相同;         能力:可以指定pod的副本始终存活,相比于rc控制器;支持标签匹配,也支持标签表达式         注意:不论是rc还是rs资源,都是通过“标签”惊醒匹配pod的,如果有同样

    2024年02月21日
    浏览(61)
  • k8s---pod控制器

    工作负载,workload用于管理pod的中间层,确保pod资源符合预期的状态。 预期状态: 1、副本数 2、容器重启策略 3、镜像拉取策略 pod出故障的出去等等 1、replicaset:指定pod副本的数量 三个组件:                 1、pod的副本                 2、标签选择器,判断

    2024年01月18日
    浏览(53)
  • 13-k8s的控制器资源-rc控制器replicationcontrollers

            replicationcontrollers控制器资源,简称:rc控制器;         简单理解,rc控制器就是控制相同的pod副本数量;         使用rc控制器资源创建pod,就可以设定创建pod的数量; [root@k8s231 rc]# vim rc.yaml apiVersion: v1 kind: ReplicationController metadata:   name: rc01 spec:   #控制pod的副本

    2024年02月20日
    浏览(64)
  • 17-k8s控制器资源-job控制

    job控制器:就是一次性任务的pod控制器,pod完成作业后不会重启,其重启策略是:Never         启动一个pod,执行完成一个事件,然后pod关闭;         事件:计算π的值,取前5000位; [root@k8s231 pi]# vim job.yaml apiVersion: batch/v1 kind: Job metadata:   name: job-pi spec:   #定义pod模板  

    2024年02月20日
    浏览(50)
  • 带你深入学习k8s--(四) 控制器(k8s核心)

    目录 一、概念 1、什么是控制器 2、控制器执行流程 3、控制器类型 二、控制器的使用 1、ReplicaSet 2、Deployment 1、版本迭代 2、回滚  3、修改滚动更新策略 4、暂停与恢复 3、daemonset 4、job 5、cronjob 前言: 上一章我们说到,pod有两种,分别为自主式 Pod,Pod 退出后不会被创建;

    2024年02月06日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包