zoukankan      html  css  js  c++  java
  • 【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 的简单应用,我们大致先了解他的作用就行。

    小结 

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

  • 相关阅读:
    常用操作
    vue cropper
    Tensorflow学习笔记5: Object_detection之训练PASCAL VOC数据集
    Tensorflow学习笔记4: Object_detection之准备数据生成TFRecord
    Tensorflow学习笔记3: Object_detection之配置Training Pipeline
    Tensorflow学习笔记2: Object_detection之liunx服务器安装部署步骤记录
    OpenCV-python学习笔记1:CV2和PIL按box信息实现图像裁剪
    Tensorflow学习笔记1:Object_detection之模型训练日志结果解析
    python-OS.path.join()路径拼接
    python-几种快速了解函数及模块功能的方式
  • 原文地址:https://www.cnblogs.com/Dy1an/p/10997700.html
Copyright © 2011-2022 走看看