• 【07】Kubernets:资源清单(控制器


    写在前面的话

    前面讲解了 Pod / ReplicaSet / Deployment 的资源清单,我们这里谈一下 DaemonSet 的资源清单。

    之前说过,DaemonSet 控制器能够保证资源在每个节点上都运行一个,这意味着该服务对于系统资源监控和日志收集非常实用。

    DaemonSet 资源清单

    和 ReplicaSet 简称 rs,Deployment 简称 deploy 一样,DaemonSet 简称 ds。

    其结构如下表:

    ds
    apiVersion       apps/v1 
    kind       Daemonset
    metadata       name / namespace / labels 等属性
    spec        
      minReadySeconds     最小准备时间
      revisionHistoryLimit     旧版本保留数量
      selector      
        matchExpressions   标签选择器
        matchLabels   标签选择器
      updateStrategy      
        rollingUpdate    
          maxUnavailable 升级策略最多不可用
        type   RollingUpdate / OnDelete(默认)
      template      
          metadata Pod meta
          spec Pod spec

    DaemonSet 示例

    制作一个 filebeat 的资源清单:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: redis
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: redis
          role: logstore
      template:
        metadata:
          labels:
            app: redis
            role: logstore
        spec:
          containers:
          - name: redis
            image: redis:4.0-alpine
            ports:
            - name: redis
              containerPort: 6379 
    
    ---
    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      name: ds-demo
      namespace: default
    spec:
      selector:
        matchLabels:
          app: filebeat
          release: stable
      template:
        metadata:
          labels:
            app: filebeat
            release: stable
        spec:
          containers:
          - name: filebeat-demo
            image: ikubernetes/filebeat:5.6.5-alpine
            imagePullPolicy: IfNotPresent
            env:
            - name: REDIS_HOST
              value: redis.default.svc.cluster.local

    将 redis 端口创建 service,为了 filebeat 能够通过名称解析:

    kubectl expose deployment redis --port=6379

    在同一个资源清单中有定义多个资源的时候,可以使用 --- 隔开。

    资源之间的连接地址,我们可以配置为 service 解析的域地址。

    查看资源启动情况:

    kubectl get ds -o wide
    kubectl get deployment -o wide

    结果如图:

    我们可以进入 redis 里面查看:

    kubectl exec -it redis-5d47df789f-clph7 -- /bin/sh

    这就是 DaemonSet 的简单应用,我们大致先了解他的作用就行。

    小结 

    每一种控制器都有单独的应用场景,只有熟悉之后才能更好的针对业务需求进行选型。

  • 相关阅读:
    gridview展示行号
    DateEdit如果开启Vista模式并显示日期+时间模式
    DevExpress GridView 添加和设置右键菜单
    C# WinForm实现粘贴图片到PictureBox及复制PictureBox中的图片
    dll反编译工具(ILSpy)的使用
    Dev的双击Gridview的DoubleClick
    SQL Server日期时间格式转换字符串详解
    LabelControl文本居中显示
    C# winform 判断click事件点击的是左键还是右键
    Winform窗体状态的判断及调用打开的窗体的方法
  • 原文地址:https://www.cnblogs.com/Dy1an/p/10997700.html
Copyright © 2020-2023  润新知