国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【K8S系列】深入解析DaemonSet

這篇具有很好參考價(jià)值的文章主要介紹了【K8S系列】深入解析DaemonSet。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?

序言

時(shí)間永遠(yuǎn)是旁觀者,所有的過程和結(jié)果,都需要我們自己去承擔(dān)。

文章標(biāo)記顏色說明:

  • 黃色:重要標(biāo)題
  • 紅色:用來標(biāo)記結(jié)論
  • 綠色:用來標(biāo)記一級(jí)論點(diǎn)
  • 藍(lán)色:用來標(biāo)記二級(jí)論點(diǎn)

Kubernetes (k8s) 是一個(gè)容器編排平臺(tái),允許在容器中運(yùn)行應(yīng)用程序和服務(wù)。今天學(xué)習(xí)一下DaemonSet-守護(hù)進(jìn)程。

希望這篇文章能讓你不僅有一定的收獲,而且可以愉快的學(xué)習(xí),如果有什么建議,都可以留言和我交流

?專欄介紹

這是這篇文章所在的專欄,歡迎訂閱:【深入解析k8s】專欄

簡單介紹一下這個(gè)專欄要做的事:

主要是深入解析每個(gè)知識(shí)點(diǎn),幫助大家完全掌握k8s,以下是已更新的章節(jié)

序號(hào) 文章
第一講 深入解析 k8s:入門指南(一)
第二講 深入解析 k8s:入門指南(二)
第三講 深入解析Pod對象(一)
第四講 深入解析Pod對象(二)
第五講 深入解析無狀態(tài)服務(wù)
第六講 深入解析有狀態(tài)服務(wù)
第七講 深入解析控制器

第八講

深入解析 ReplicaSet
第九講 深入解析滾動(dòng)升級(jí)
第十講 深入解析StatefulSet(一)
第十一講 深入解析StatefulSet(二)

1 基礎(chǔ)介紹

1.1 概念介紹

Kubernetes是一個(gè)容器編排平臺(tái),其中DaemonSet是Kubernetes中的一個(gè)重要概念。DaemonSet是一種控制器,用于在集群內(nèi)運(yùn)行一組Pod,并確保每個(gè)節(jié)點(diǎn)上都有一個(gè)Pod副本在運(yùn)行

1.2 常用特性

下面是一些DaemonSet的常用特性:

  1. 只在特定的節(jié)點(diǎn)上運(yùn)行Pod:可以使用NodeSelector或者NodeAffinity來限制DaemonSet的Pod只在特定的節(jié)點(diǎn)上運(yùn)行。

  2. 根據(jù)節(jié)點(diǎn)的標(biāo)簽更新Pod:如果在集群中添加或刪除了節(jié)點(diǎn),Kubernetes會(huì)通過DaemonSet自動(dòng)添加或刪除Pod。同時(shí),也可以通過添加或移除節(jié)點(diǎn)標(biāo)簽來更新DaemonSet中的Pod。

  3. 確保每個(gè)節(jié)點(diǎn)只運(yùn)行一個(gè)Pod:可以使用PodAntiAffinity來確保每個(gè)節(jié)點(diǎn)上只有一個(gè)Pod在運(yùn)行。

  4. 限制DaemonSet的Pod數(shù)量:可以使用MaxUnavailable和MaxSurge字段來限制DaemonSet的Pod的最大數(shù)量和最小數(shù)量。

1.3 簡單總結(jié)?

總之,DaemonSet是一種非常有用的控制器,可以確保集群中每個(gè)節(jié)點(diǎn)上都有一個(gè)Pod副本在運(yùn)行。

它可以自動(dòng)地根據(jù)節(jié)點(diǎn)的狀態(tài)添加或刪除Pod,并且可以通過各種方式來控制Pod的位置和數(shù)量。

2 工作原理

DaemonSet的工作原理是監(jiān)聽節(jié)點(diǎn)的變化,通過監(jiān)聽節(jié)點(diǎn)的變化,當(dāng)新的節(jié)點(diǎn)加入集群時(shí),DaemonSet會(huì)自動(dòng)在該節(jié)點(diǎn)上創(chuàng)建一個(gè)Pod副本。而當(dāng)節(jié)點(diǎn)從集群中刪除時(shí),DaemonSet會(huì)自動(dòng)刪除該節(jié)點(diǎn)上的Pod副本。

這樣,DaemonSet保證了集群中每個(gè)節(jié)點(diǎn)都會(huì)運(yùn)行指定的Pod。有且只有一個(gè)pod

【K8S系列】深入解析DaemonSet

2.1 原理介紹

DaemonSet的工作原理如下

  1. 控制器監(jiān)視節(jié)點(diǎn)的狀態(tài):DaemonSet控制器會(huì)監(jiān)視集群中的節(jié)點(diǎn)狀態(tài),一旦有新的節(jié)點(diǎn)加入集群,或者節(jié)點(diǎn)狀態(tài)發(fā)生變化(例如節(jié)點(diǎn)重新啟動(dòng)),控制器就會(huì)觸發(fā)一些操作。

  2. 創(chuàng)建Pod:當(dāng)控制器檢測到新節(jié)點(diǎn)時(shí),它會(huì)創(chuàng)建一個(gè)新的Pod,并將其調(diào)度到該節(jié)點(diǎn)上??刂破鬟€會(huì)確保每個(gè)節(jié)點(diǎn)上只運(yùn)行一個(gè)Pod實(shí)例。

  3. 更新Pod:如果DaemonSet的配置發(fā)生變化,例如更新了鏡像版本或者修改了Pod的配置文件,控制器會(huì)自動(dòng)更新每個(gè)節(jié)點(diǎn)上的Pod實(shí)例。

  4. 刪除Pod:如果節(jié)點(diǎn)發(fā)生故障或者被刪除,控制器會(huì)自動(dòng)刪除節(jié)點(diǎn)上的Pod實(shí)例。

  5. 擴(kuò)容和縮容:DaemonSet還支持?jǐn)U容和縮容,可以根據(jù)需要增加或減少Pod的數(shù)量。擴(kuò)容和縮容的過程與其他控制器類似,控制器會(huì)根據(jù)指定的副本數(shù)和當(dāng)前的實(shí)際Pod數(shù)量來調(diào)整Pod的數(shù)量。

3 使用場景

3.1 場景介紹

DaemonSet用于在集群中運(yùn)行一組Pod,確保每個(gè)節(jié)點(diǎn)都有一個(gè)Pod在運(yùn)行。它通常用于運(yùn)行一些系統(tǒng)級(jí)別的服務(wù)或者監(jiān)控應(yīng)用程序,例如:

  1. 日志收集器:DaemonSet可以在每個(gè)節(jié)點(diǎn)上運(yùn)行日志收集器,例如Fluentd或者Filebeat,從而收集所有節(jié)點(diǎn)的日志數(shù)據(jù),并將其發(fā)送到中心日志服務(wù)器進(jìn)行存儲(chǔ)和分析。

  2. 監(jiān)控代理:DaemonSet可以在每個(gè)節(jié)點(diǎn)上運(yùn)行監(jiān)控代理,例如Prometheus Node Exporter或者cAdvisor,從而收集所有節(jié)點(diǎn)的運(yùn)行狀態(tài)數(shù)據(jù),并將其發(fā)送到中心監(jiān)控服務(wù)器進(jìn)行分析和展示。

  3. 網(wǎng)絡(luò)代理:DaemonSet可以在每個(gè)節(jié)點(diǎn)上運(yùn)行網(wǎng)絡(luò)代理,例如kube-proxy或者Istio Sidecar,從而負(fù)責(zé)節(jié)點(diǎn)之間的網(wǎng)絡(luò)通信和流量管理。

  4. 安全代理:DaemonSet可以在每個(gè)節(jié)點(diǎn)上運(yùn)行安全代理,例如Sysdig Falco或者Aqua Security,從而檢測所有節(jié)點(diǎn)的安全事件,并及時(shí)報(bào)警或者進(jìn)行防御。

總之,DaemonSet適用于需要在每個(gè)節(jié)點(diǎn)上運(yùn)行一組Pod的場景,可以使集群中的服務(wù)更加健壯和可靠。

4 案例講解

4.1 日志收集

日志收集器是Kubernetes集群中一個(gè)重要的組件,它負(fù)責(zé)在每個(gè)節(jié)點(diǎn)上運(yùn)行日志收集器的容器,收集節(jié)點(diǎn)和容器的日志數(shù)據(jù),并將這些數(shù)據(jù)發(fā)送到集中式的日志系統(tǒng)中。

日志收集方案

  1. 原生方式:使用?kubectl logs?直接在查看本地保留的日志,或者通過docker engine的?log driver?把日志重定向到文件、syslog、fluentd等系統(tǒng)中。
  2. Sidecar方式:一個(gè)POD中運(yùn)行一個(gè)sidecar的日志agent容器,用于采集該P(yáng)OD主容器產(chǎn)生的日志。
  3. DaemonSet方式:在K8S的每個(gè)node上部署日志agent,由agent采集所有容器的日志到服務(wù)端。

在Kubernetes集群中使用日志收集器,DaemonSet方式:會(huì)使用DaemonSet來確保每個(gè)節(jié)點(diǎn)上都有一個(gè)日志收集器在運(yùn)行。

【K8S系列】深入解析DaemonSet

下面是一個(gè)使用日志收集器的DaemonSet的示例代碼:

apiVersion: v1
kind: ConfigMap #資源類型
metadata:
  name: fluentd-config
  namespace: kube-system
data:
  fluent.conf: |
    <source>
      @type tail
      path /var/log/containers/*.log
      pos_file /var/log/fluentd-containers.log.pos
      time_format %Y-%m-%dT%H:%M:%S.%NZ
      tag kubernetes.*
      read_from_head true
      <parse>
        @type json
        time_key time
        time_format %Y-%m-%dT%H:%M:%S.%NZ
        keep_time_key true
      </parse>
    </source>

    <match kubernetes.**>
      @type elasticsearch
      host elasticsearch.default.svc.cluster.local
      port 9200
      index_name fluentd
      type_name fluentd
      logstash_format true
      logstash_prefix kubernetes
      include_tag_key true
      tag_key kubernetes.tag
      flush_interval 10s
      max_retry_wait 30
      disable_retry_limit
    </match>

---
apiVersion: apps/v1
kind: DaemonSet #資源類型
metadata:
  name: fluentd
  namespace: kube-system
  labels:
    k8s-app: fluentd-logging
spec:
  selector:
    matchLabels:
      k8s-app: fluentd-logging
  template:
    metadata:
      labels:
        k8s-app: fluentd-logging
    spec:
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
      containers:
      - name: fluentd
        image: fluent/fluentd-kubernetes-daemonset:v1.6-debian-elasticsearch7-1.1
        env:
        - name: FLUENT_UID
          value: "0"
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
        - name: fluentdconfig
          mountPath: /fluentd/etc/
        resources:
          limits:
            memory: 512Mi
        securityContext:
          privileged: true
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers
      - name: fluentdconfig
        configMap:
          name: fluentd-config

上面的示例代碼中,首先定義了一個(gè)名為fluentd-config的ConfigMap,用于存儲(chǔ)Fluentd的配置文件。

配置文件中定義了一個(gè)名為tail的輸入源,它會(huì)讀取每個(gè)容器的日志文件,并使用JSON格式解析日志數(shù)據(jù)。

配置文件中還定義了一個(gè)名為elasticsearch的輸出目標(biāo),它會(huì)將日志數(shù)據(jù)發(fā)送到Elasticsearch中。

接著定義了一個(gè)名為fluentd的DaemonSet,它會(huì)在每個(gè)節(jié)點(diǎn)上運(yùn)行一個(gè)fluentd容器。在fluentd容器中,使用了ConfigMap中定義的配置文件,并掛載了/var/log和/var/lib/docker/containers目錄,這些目錄包含了節(jié)點(diǎn)和容器的日志數(shù)據(jù)。

同時(shí),由于使用了DaemonSet,確保每個(gè)節(jié)點(diǎn)上都有一個(gè)日志收集器在運(yùn)行,從而提高了集群的可靠性和穩(wěn)定性。

通過這個(gè)示例代碼,可以在Kubernetes集群中使用Fluentd作為日志收集器,收集節(jié)點(diǎn)和容器的日志數(shù)據(jù),并將這些數(shù)據(jù)發(fā)送到集中式的日志系統(tǒng)中。

同時(shí),由于使用了DaemonSet,確保每個(gè)節(jié)點(diǎn)上都有一個(gè)日志收集器在運(yùn)行,從而提高了集群的可靠性和穩(wěn)定性

4.2 監(jiān)控代理

監(jiān)控代理是Kubernetes集群中另一個(gè)重要的組件,它負(fù)責(zé)在每個(gè)節(jié)點(diǎn)上運(yùn)行監(jiān)控代理的容器,收集節(jié)點(diǎn)和容器的監(jiān)控?cái)?shù)據(jù),并將這些數(shù)據(jù)發(fā)送到集中式的監(jiān)控系統(tǒng)中。

在Kubernetes集群中使用監(jiān)控代理,使用DaemonSet來確保每個(gè)節(jié)點(diǎn)上都有一個(gè)監(jiān)控代理在運(yùn)行。

下面是一個(gè)使用監(jiān)控代理的DaemonSet的示例代碼:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: node-exporter
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: node-exporter
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: node-exporter
subjects:
- kind: ServiceAccount
  name: node-exporter
  namespace: kube-system
---
apiVersion: apps/v1
kind: DaemonSet #資源類型
metadata:
  name: node-exporter
  namespace: kube-system
  labels:
    k8s-app: node-exporter
spec:
  selector:
    matchLabels:
      k8s-app: node-exporter
  template:
    metadata:
      labels:
        k8s-app: node-exporter
    spec:
      serviceAccountName: node-exporter
      hostNetwork: true
      containers:
      - name: node-exporter
        image: prom/node-exporter:v1.2.2
        args:
        - --path.procfs=/host/proc
        - --path.sysfs=/host/sys
        - --collector.textfile.directory=/var/lib/node-exporter/textfile_collector
        ports:
        - name: metrics
          containerPort: 9100
          hostPort: 9100
        volumeMounts:
        - name: proc-mount
          mountPath: /host/proc
          readOnly: true
        - name: sys-mount
          mountPath: /host/sys
          readOnly: true
        - name: textfile-collector
          mountPath: /var/lib/node-exporter/textfile_collector
      volumes:
      - name: proc-mount
        hostPath:
          path: /proc
      - name: sys-mount
        hostPath:
          path: /sys
      - name: textfile-collector
        configMap:
          name: node-exporter-textfile-collector

上面的示例代碼中,首先定義了一個(gè)名為node-exporter的ServiceAccount和一個(gè)名為node-exporter的ClusterRoleBinding,用于授權(quán)node-exporter在集群中進(jìn)行操作。

接著定義了一個(gè)名為node-exporter的DaemonSet,它會(huì)在每個(gè)節(jié)點(diǎn)上運(yùn)行一個(gè)node-exporter容器。

在node-exporter容器中,使用了--path.procfs和--path.sysfs選項(xiàng)來指定了/proc和/sys目錄的路徑,這些目錄包含了節(jié)點(diǎn)和容器的監(jiān)控?cái)?shù)據(jù)。

同時(shí),使用了--collector.textfile.directory選項(xiàng)來指定了一個(gè)目錄,用于存儲(chǔ)可以通過文本文件方式收集的監(jiān)控?cái)?shù)據(jù)。

node-exporter容器還需要掛載/proc和/sys目錄以及用于存儲(chǔ)文本文件的目錄。

通過這個(gè)示例代碼,在Kubernetes集群中使用node-exporter作為監(jiān)控代理,收集節(jié)點(diǎn)和容器的監(jiān)控?cái)?shù)據(jù),并將這些數(shù)據(jù)發(fā)送到集中式的監(jiān)控系統(tǒng)中。

同時(shí),由于使用了DaemonSet,確保每個(gè)節(jié)點(diǎn)上都有一個(gè)監(jiān)控代理在運(yùn)行,從而提高了集群的可靠性和穩(wěn)定性。

4.3?網(wǎng)絡(luò)代理

網(wǎng)絡(luò)代理是Kubernetes集群中的重要組件之一,它負(fù)責(zé)實(shí)現(xiàn)節(jié)點(diǎn)之間的網(wǎng)絡(luò)通信和流量管理。

Kubernetes中內(nèi)置了一個(gè)網(wǎng)絡(luò)代理組件kube-proxy,它使用iptables或者IPVS來實(shí)現(xiàn)節(jié)點(diǎn)之間的流量轉(zhuǎn)發(fā)和負(fù)載均衡。

在Kubernetes集群中使用kube-proxy,通常會(huì)使用DaemonSet來確保每個(gè)節(jié)點(diǎn)上都有一個(gè)網(wǎng)絡(luò)代理在運(yùn)行。

下面是一個(gè)使用kube-proxy的DaemonSet的示例代碼:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-proxy
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kube-proxy
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:node-proxier
subjects:
- kind: ServiceAccount
  name: kube-proxy
  namespace: kube-system
---
apiVersion: apps/v1
kind: DaemonSet #資源類型
metadata:
  name: kube-proxy
  namespace: kube-system
  labels:
    k8s-app: kube-proxy
spec:
  selector:
    matchLabels:
      k8s-app: kube-proxy
  template:
    metadata:
      labels:
        k8s-app: kube-proxy
    spec:
      serviceAccountName: kube-proxy
      hostNetwork: true
      containers:
      - name: kube-proxy
        image: k8s.gcr.io/kube-proxy:v1.22.0
        command:
        - /usr/local/bin/kube-proxy
        args:
        - --config=/var/lib/kube-proxy/config.conf
        securityContext:
          privileged: true
        volumeMounts:
        - name: kube-proxy-config
          mountPath: /var/lib/kube-proxy
          readOnly: true
        - name: xtables-lock
          mountPath: /run/xtables.lock
          readOnly: false
          subPath: xtables.lock
      volumes:
      - name: kube-proxy-config
        configMap:
          name: kube-proxy-config
      - name: xtables-lock
        hostPath:
          path: /run/xtables.lock

上面的示例代碼中,首先定義了一個(gè)名為kube-proxy的ServiceAccount和一個(gè)名為kube-proxy的ClusterRoleBinding,用于授權(quán)kube-proxy在集群中進(jìn)行操作。

接著定義了一個(gè)名為kube-proxy的DaemonSet,它會(huì)在每個(gè)節(jié)點(diǎn)上運(yùn)行一個(gè)kube-proxy容器。

在kube-proxy容器中,使用了--config選項(xiàng)來指定了配置文件的路徑,這個(gè)配置文件可以通過一個(gè)名為kube-proxy-config的ConfigMap來動(dòng)態(tài)生成。

kube-proxy容器還需要掛載/run/xtables.lock文件來確保在使用iptables或者IPVS時(shí)不會(huì)發(fā)生競爭條件

通過這個(gè)示例代碼,在Kubernetes集群中使用kube-proxy作為網(wǎng)絡(luò)代理,實(shí)現(xiàn)節(jié)點(diǎn)之間的流量轉(zhuǎn)發(fā)和負(fù)載均衡

同時(shí),由于使用了DaemonSet,確保每個(gè)節(jié)點(diǎn)上都有一個(gè)網(wǎng)絡(luò)代理在運(yùn)行,從而提高了集群的可靠性和穩(wěn)定性。

4.4 安全代理

安全代理是Kubernetes集群中另一個(gè)重要的組件,它負(fù)責(zé)在每個(gè)節(jié)點(diǎn)上運(yùn)行安全代理的容器,保護(hù)節(jié)點(diǎn)和容器的網(wǎng)絡(luò)流量安全,并確保集群中的網(wǎng)絡(luò)流量只能訪問授權(quán)的服務(wù)和資源。

在Kubernetes集群中使用安全代理,使用DaemonSet來確保每個(gè)節(jié)點(diǎn)上都有一個(gè)安全代理在運(yùn)行。

下面是一個(gè)使用安全代理的DaemonSet的示例代碼:

apiVersion: apps/v1
kind: DaemonSet #資源類型
metadata:
  name: envoy
  namespace: kube-system
  labels:
    k8s-app: envoy
spec:
  selector:
    matchLabels:
      k8s-app: envoy
  template:
    metadata:
      labels:
        k8s-app: envoy
    spec:
      containers:
      - name: envoy
        image: envoyproxy/envoy:v1.19.1
        ports:
        - containerPort: 8080
          name: http
        - containerPort: 8443
          name: https
        volumeMounts:
        - name: envoy-config
          mountPath: /etc/envoy
        - name: envoy-tls
          mountPath: /etc/envoy-tls
          readOnly: true
        securityContext:
          runAsUser: 10001
      terminationGracePeriodSeconds: 30
      volumes:
      - name: envoy-config
        configMap:
          name: envoy-config
        - name: envoy-tls
          secret:
            secretName: envoy-tls

上面的示例代碼中,首先定義了一個(gè)名為envoy-config的ConfigMap,用于存儲(chǔ)Envoy的配置文件。

接著定義了一個(gè)名為envoy-tls的Secret,用于存儲(chǔ)Envoy的TLS證書和私鑰。

然后定義了一個(gè)名為envoy的DaemonSet它會(huì)在每個(gè)節(jié)點(diǎn)上運(yùn)行一個(gè)envoy容器。

在envoy容器中,使用了ConfigMap中定義的配置文件,并掛載了/etc/envoy和/etc/envoy-tls目錄,這些目錄包含了Envoy的配置文件和TLS證書和私鑰。

同時(shí),由于使用了DaemonSet,確保每個(gè)節(jié)點(diǎn)上都有一個(gè)安全代理在運(yùn)行,從而提高了集群的安全性和可靠性。

通過這個(gè)示例代碼,可以在Kubernetes集群中使用Envoy作為安全代理,保護(hù)節(jié)點(diǎn)和容器的網(wǎng)絡(luò)流量安全,并確保集群中的網(wǎng)絡(luò)流量只能訪問授權(quán)的服務(wù)和資源。

同時(shí),由于使用了DaemonSet,確保每個(gè)節(jié)點(diǎn)上都有一個(gè)安全代理在運(yùn)行,從而提高了集群的安全性和可靠性。

5 總結(jié)

DaemonSet 的主要作用,是讓你在 Kubernetes 集群里,運(yùn)行一個(gè) Daemon Pod。

所以,這個(gè) Pod 有如下三個(gè)特征:

  1. 這個(gè) Pod 運(yùn)行在 Kubernetes 集群里的每一個(gè)節(jié)點(diǎn)(Node)上;

  2. 每個(gè)節(jié)點(diǎn)上只有一個(gè)這樣的 Pod 實(shí)例;

  3. 當(dāng)有新的節(jié)點(diǎn)加入 Kubernetes 集群后,該 Pod 會(huì)自動(dòng)地在新節(jié)點(diǎn)上被創(chuàng)建出來;而當(dāng)舊節(jié)點(diǎn)被刪除后,它上面的該 Pod 也相應(yīng)地會(huì)被回收掉。

Daemon Pod機(jī)制聽起來很簡單,但的意義確實(shí)是非常重要的。列舉幾個(gè)例子:

  1. 各種網(wǎng)絡(luò)插件的 Agent 組件,都必須運(yùn)行在每一個(gè)節(jié)點(diǎn)上,用來處理這個(gè)節(jié)點(diǎn)上的容器網(wǎng)絡(luò);

  2. 各種存儲(chǔ)插件的 Agent 組件,也必須運(yùn)行在每一個(gè)節(jié)點(diǎn)上,用來在這個(gè)節(jié)點(diǎn)上掛載遠(yuǎn)程存儲(chǔ)目錄,操作容器的 Volume 目錄;

  3. 各種監(jiān)控組件和日志組件,也必須運(yùn)行在每一個(gè)節(jié)點(diǎn)上,負(fù)責(zé)這個(gè)節(jié)點(diǎn)上的監(jiān)控信息和日志搜集。

總結(jié)一下:

DaemonSet 其實(shí)是一個(gè)非常簡單的控制器。在它的控制循環(huán)中,只需要遍歷所有節(jié)點(diǎn),然后根據(jù)節(jié)點(diǎn)上是否有被管理 Pod 的情況,來決定是否要?jiǎng)?chuàng)建或者刪除一個(gè) Pod。

相比于 Deployment,DaemonSet 只管理 Pod 對象,然后通過 nodeAffinity 和 Toleration 這兩個(gè)調(diào)度器的小功能,保證了每個(gè)節(jié)點(diǎn)上有且只有一個(gè) Pod

與此同時(shí),DaemonSet 使用 ControllerRevision,來保存和管理自己對應(yīng)的“版本”。

這種“面向 API 對象”的設(shè)計(jì)思路,大大簡化了控制器本身的邏輯,也正是 Kubernetes 項(xiàng)目“聲明式 API”的優(yōu)勢所在。文章來源地址http://www.zghlxwxcb.cn/news/detail-409918.html

6 投票

到了這里,關(guān)于【K8S系列】深入解析DaemonSet的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【K8S系列】深入解析k8s網(wǎng)絡(luò)插件—Calico

    【K8S系列】深入解析k8s網(wǎng)絡(luò)插件—Calico

    做一件事并不難,難的是在于堅(jiān)持。堅(jiān)持一下也不難,難的是堅(jiān)持到底。 文章標(biāo)記顏色說明: 黃色 :重要標(biāo)題 紅色 :用來標(biāo)記結(jié)論 綠色 :用來標(biāo)記論點(diǎn) 藍(lán)色 :用來標(biāo)記論點(diǎn) Kubernetes (k8s) 是一個(gè)容器編排平臺(tái),允許在容器中運(yùn)行應(yīng)用程序和服務(wù)。今天學(xué)習(xí)一下k8s網(wǎng)絡(luò)插件

    2024年02月16日
    瀏覽(50)
  • 【K8S系列】深入解析k8s網(wǎng)絡(luò)插件—Flannel

    【K8S系列】深入解析k8s網(wǎng)絡(luò)插件—Flannel

    ? 做一件事并不難,難的是在于堅(jiān)持。堅(jiān)持一下也不難,難的是堅(jiān)持到底。 文章標(biāo)記顏色說明: 黃色:重要標(biāo)題 紅色:用來標(biāo)記結(jié)論 綠色:用來標(biāo)記論點(diǎn) 藍(lán)色:用來標(biāo)記論點(diǎn) Kubernetes (k8s) 是一個(gè)容器編排平臺(tái),允許在容器中運(yùn)行應(yīng)用程序和服務(wù)。今天學(xué)習(xí)一下k8s網(wǎng)絡(luò)插件

    2024年02月16日
    瀏覽(41)
  • 【K8S系列】深入解析k8s 網(wǎng)絡(luò)插件—Antrea

    【K8S系列】深入解析k8s 網(wǎng)絡(luò)插件—Antrea

    做一件事并不難,難的是在于堅(jiān)持。堅(jiān)持一下也不難,難的是堅(jiān)持到底。 文章標(biāo)記顏色說明: 黃色 :重要標(biāo)題 紅色 :用來標(biāo)記結(jié)論 綠色 :用來標(biāo)記論點(diǎn) 藍(lán)色 :用來標(biāo)記論點(diǎn) 在現(xiàn)代容器化應(yīng)用程序的世界中,容器編排平臺(tái)Kubernetes已經(jīng)成為標(biāo)準(zhǔn)。Kubernetes是一個(gè)分布式系統(tǒng)

    2024年02月08日
    瀏覽(23)
  • 【K8S系列】深入解析k8s網(wǎng)絡(luò)插件—Canal

    【K8S系列】深入解析k8s網(wǎng)絡(luò)插件—Canal

    做一件事并不難,難的是在于堅(jiān)持。堅(jiān)持一下也不難,難的是堅(jiān)持到底。 文章標(biāo)記顏色說明: 黃色 :重要標(biāo)題 紅色 :用來標(biāo)記結(jié)論 綠色 :用來標(biāo)記論點(diǎn) 藍(lán)色 :用來標(biāo)記論點(diǎn) 在現(xiàn)代容器化應(yīng)用程序的世界中,容器編排平臺(tái)Kubernetes已經(jīng)成為標(biāo)準(zhǔn)。Kubernetes是一個(gè)分布式系統(tǒng)

    2024年02月08日
    瀏覽(19)
  • 【K8S系列】深入解析k8s網(wǎng)絡(luò)之—網(wǎng)絡(luò)故障

    【K8S系列】深入解析k8s網(wǎng)絡(luò)之—網(wǎng)絡(luò)故障

    你只管努力,其他交給時(shí)間,時(shí)間會(huì)證明一切。 文章標(biāo)記顏色說明: 黃色 :重要標(biāo)題 紅色 :用來標(biāo)記結(jié)論 綠色 :用來標(biāo)記一級(jí)論點(diǎn) 藍(lán)色 :用來標(biāo)記二級(jí)論點(diǎn) Kubernetes (k8s) 是一個(gè)容器編排平臺(tái),允許在容器中運(yùn)行應(yīng)用程序和服務(wù)。今天學(xué)習(xí)一下k8s網(wǎng)絡(luò)故障相關(guān)的的內(nèi)容

    2024年02月08日
    瀏覽(19)
  • 【K8S系列】深入解析k8s網(wǎng)絡(luò)插件—Cilium

    【K8S系列】深入解析k8s網(wǎng)絡(luò)插件—Cilium

    做一件事并不難,難的是在于堅(jiān)持。堅(jiān)持一下也不難,難的是堅(jiān)持到底。 文章標(biāo)記顏色說明: 黃色 :重要標(biāo)題 紅色 :用來標(biāo)記結(jié)論 綠色 :用來標(biāo)記論點(diǎn) 藍(lán)色 :用來標(biāo)記論點(diǎn) 在現(xiàn)代容器化應(yīng)用程序的世界中,容器編排平臺(tái)Kubernetes已經(jīng)成為標(biāo)準(zhǔn)。為了支持復(fù)雜的應(yīng)用和微

    2024年02月10日
    瀏覽(30)
  • 【K8S系列】深入解析Service

    【K8S系列】深入解析Service

    Don\\\'t count the days. Make the days count 不要數(shù)著日子。讓日子過得有意義 文章標(biāo)記顏色說明: 黃色 :重要標(biāo)題 紅色 :用來標(biāo)記結(jié)論 綠色 :用來標(biāo)記一級(jí)論點(diǎn) 藍(lán)色 :用來標(biāo)記二級(jí)論點(diǎn) Kubernetes (k8s) 是一個(gè)容器編排平臺(tái),允許在容器中運(yùn)行應(yīng)用程序和服務(wù)。今天學(xué)習(xí)一下service進(jìn)階

    2023年04月26日
    瀏覽(20)
  • 【K8S系列】深入解析Job

    【K8S系列】深入解析Job

    你只管努力,其他交給時(shí)間,時(shí)間會(huì)證明一切。 文章標(biāo)記顏色說明: 黃色 :重要標(biāo)題 紅色 :用來標(biāo)記結(jié)論 綠色 :用來標(biāo)記一級(jí)論點(diǎn) 藍(lán)色 :用來標(biāo)記二級(jí)論點(diǎn) Kubernetes (k8s) 是一個(gè)容器編排平臺(tái),允許在容器中運(yùn)行應(yīng)用程序和服務(wù)。今天學(xué)習(xí)一下Job-作業(yè)管理 希望這篇文章

    2023年04月15日
    瀏覽(23)
  • 【K8S系列】深入解析DNS

    【K8S系列】深入解析DNS

    世界上最幸福的事之一,莫過于經(jīng)過一番努力后,所有東西正慢慢變成你想要的樣子。 文章標(biāo)記顏色說明: 黃色 :重要標(biāo)題 紅色 :用來標(biāo)記結(jié)論 綠色 :用來標(biāo)記一級(jí)論點(diǎn) 藍(lán)色 :用來標(biāo)記二級(jí)論點(diǎn) Kubernetes (k8s) 是一個(gè)容器編排平臺(tái),允許在容器中運(yùn)行應(yīng)用程序和服務(wù)。今

    2023年04月20日
    瀏覽(25)
  • 【K8S系列】深入解析etcd

    【K8S系列】深入解析etcd

    時(shí)間永遠(yuǎn)是旁觀者,所有的過程和結(jié)果,都需要我們自己去承擔(dān)。 文章標(biāo)記顏色說明: 黃色 :重要標(biāo)題 紅色 :用來標(biāo)記結(jié)論 綠色 :用來標(biāo)記一級(jí)論點(diǎn) 藍(lán)色 :用來標(biāo)記二級(jí)論點(diǎn) Kubernetes (k8s) 是一個(gè)容器編排平臺(tái),允許在容器中運(yùn)行應(yīng)用程序和服務(wù)。今天學(xué)習(xí)一下etcd。 希

    2023年04月17日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包