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

學(xué)習(xí)筆記二十八:K8S控制器Daemonset入門到企業(yè)實(shí)戰(zhàn)應(yīng)用

這篇具有很好參考價(jià)值的文章主要介紹了學(xué)習(xí)筆記二十八:K8S控制器Daemonset入門到企業(yè)實(shí)戰(zhàn)應(yīng)用。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

DaemonSet概述

DaemonSet控制器能夠確保k8s集群所有的節(jié)點(diǎn)都運(yùn)行一個(gè)相同的pod副本,當(dāng)向k8s集群中增加node節(jié)點(diǎn)時(shí),這個(gè)node節(jié)點(diǎn)也會自動創(chuàng)建一個(gè)pod副本,當(dāng)node節(jié)點(diǎn)從集群移除,這些pod也會自動刪除;刪除Daemonset也會刪除它們創(chuàng)建的pod

DaemonSet工作原理:如何管理Pod

daemonset的控制器會監(jiān)聽kuberntes的daemonset對象、pod對象、node對象,這些被監(jiān)聽的對象之變動,就會觸發(fā)syncLoop循環(huán)讓kubernetes集群朝著daemonset對象描述的狀態(tài)進(jìn)行演進(jìn)

Daemonset典型的應(yīng)用場景

  • 在集群的每個(gè)節(jié)點(diǎn)上運(yùn)行存儲,比如:glusterd 或 ceph。
  • 在每個(gè)節(jié)點(diǎn)上運(yùn)行日志收集組件,比如:flunentd 、 logstash、filebeat等。
  • 在每個(gè)節(jié)點(diǎn)上運(yùn)行監(jiān)控組件,比如:Prometheus、 Node Exporter 、collectd等。

DaemonSet 與 Deployment 的區(qū)別

  • Deployment 部署的副本 Pod 會分布在各個(gè) Node 上,每個(gè) Node 都可能運(yùn)行好幾個(gè)副本。
  • DaemonSet 的不同之處在于:每個(gè) Node 上最多只能運(yùn)行一個(gè)副本。

DaemonSet資源清單文件編寫技巧

查看定義Daemonset資源需要的字段有哪些

kubectl explain ds
KIND:     DaemonSet
VERSION:  apps/v1

DESCRIPTION:
     DaemonSet represents the configuration of a daemon set.

FIELDS:
   apiVersion	<string> #當(dāng)前資源使用的api版本,跟VERSION:  apps/v1保持一致
   kind	<string>  #資源類型,跟KIND:  DaemonSet保持一致
   metadata	<Object> #元數(shù)據(jù),定義DaemonSet名字的
   spec	<Object>    #定義容器的
   status	<Object>  #狀態(tài)信息,不能改

查看DaemonSet的spec字段如何定義

kubectl explain ds.spec
KIND:     DaemonSet
VERSION:  apps/v1
RESOURCE: spec <Object>
DESCRIPTION:
     The desired behavior of this daemon set. More info:
     https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
     DaemonSetSpec is the specification of a daemon set.
FIELDS:
   minReadySeconds	<integer>   #當(dāng)新的pod啟動幾秒種后,再kill掉舊的pod。
   revisionHistoryLimit	<integer> #歷史版本
   selector	<Object> -required-  #用于匹配pod的標(biāo)簽選擇器
   template	<Object> -required- 
   #定義Pod的模板,基于這個(gè)模板定義的所有pod是一樣的
   updateStrategy	<Object> #daemonset的升級策略

查看DaemonSet的spec.template字段如何定義
對于template而言,其內(nèi)部定義的就是pod,pod模板是一個(gè)獨(dú)立的對象

kubectl explain ds.spec.template
KIND:     DaemonSet
VERSION:  apps/v1
RESOURCE: template <Object>
FIELDS:
   metadata	<Object>
   spec<Object>

DaemonSet使用案例:部署日志收集組件fluentd

把fluentd-2-5-1.tar.gz上傳到k8smaster和k8snode上

ctr -n=k8s.io images import fluentd_2_5_1.tar.gz
cat daemonset.yaml 
apiVersion: apps/v1  #DaemonSet使用的api版本
kind: DaemonSet     # 資源類型
metadata:
  name: fluentd-elasticsearch   #資源的名字
  namespace: kube-system      #資源所在的名稱空間
  labels:
    k8s-app: fluentd-logging    #資源具有的標(biāo)簽
spec:
  selector:         #標(biāo)簽選擇器
    matchLabels:
      name: fluentd-elasticsearch
  template:
    metadata:
      labels:  #基于這回模板定義的pod具有的標(biāo)簽
        name: fluentd-elasticsearch
    spec:
      tolerations:   #定義容忍度
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
      containers:    #定義容器
      - name: fluentd-elasticsearch
        image: k8s/fluentd:v2.5.1
        resources:  #資源配額
          limits:
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 200Mi
        volumeMounts: 
        - name: varlog
          mountPath: /var/log   #把本地/var/log目錄掛載到容器
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers  
#把/var/lib/docker/containers/掛載到容器里
          readOnly: true  #掛載目錄是只讀權(quán)限
      terminationGracePeriodSeconds: 30  #優(yōu)雅的關(guān)閉服務(wù)
      volumes:
      - name: varlog
        hostPath:
          path: /var/log  #基于本地目錄創(chuàng)建一個(gè)卷
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers  #基于本地目錄創(chuàng)建一個(gè)卷
kubectl apply -f daemonset.yaml 
kubectl get ds -n kube-system
NAME               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE 
fluentd-elasticsearch   3          3          3           3          
kubectl get pods -n kube-system -o wide

學(xué)習(xí)筆記二十八:K8S控制器Daemonset入門到企業(yè)實(shí)戰(zhàn)應(yīng)用,CKA學(xué)習(xí)筆記,學(xué)習(xí),筆記,kubernetes

通過上面可以看到在k8s的三個(gè)節(jié)點(diǎn)均創(chuàng)建了fluentd這個(gè)pod
pod的名字是由控制器的名字-隨機(jī)數(shù)組成的

Daemonset管理pod:滾動更新

DaemonSet實(shí)現(xiàn)pod的滾動更新

查看daemonset的滾動更新策略

kubectl explain ds.spec.updateStrategy
KIND:     DaemonSet
VERSION:  apps/v1
RESOURCE: updateStrategy <Object>
DESCRIPTION:
     An update strategy to replace existing DaemonSet pods with new pods.
     DaemonSetUpdateStrategy is a struct used to control the update strategy for
     a DaemonSet.
FIELDS:
   rollingUpdate	<Object>
     Rolling update config params. Present only if type = "RollingUpdate".
   type	<string>
     Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is
     RollingUpdate.

查看rollingUpdate支持的更新策略

kubectl explain ds.spec.updateStrategy.rollingUpdate
KIND:     DaemonSet
VERSION:  apps/v1
RESOURCE: rollingUpdate <Object>
DESCRIPTION:
     Rolling update config params. Present only if type = "RollingUpdate".
     Spec to control the desired behavior of daemon set rolling update.

FIELDS:
   maxUnavailable	<string>

上面表示rollingUpdate更新策略只支持maxUnavailabe,先刪除在更新;因?yàn)槲覀儾恢С忠粋€(gè)節(jié)點(diǎn)運(yùn)行兩個(gè)pod,因此需要先刪除一個(gè),在更新一個(gè)。

更新鏡像版本,可以按照如下方法:

這個(gè)鏡像啟動pod會有問題,主要是演示daemonset如何在命令行更新pod文章來源地址http://www.zghlxwxcb.cn/news/detail-745490.html

kubectl set image daemonsets fluentd-elasticsearch=ikubernetes/filebeat:5.6.6-alpine -n kube-system
kubectl set image daemonsets fluentd-elasticsearch fluentd-elasticsearch=ikubernetes/filebeat:5.6.6-alpine -n kube-system

到了這里,關(guān)于學(xué)習(xí)筆記二十八:K8S控制器Daemonset入門到企業(yè)實(shí)戰(zhàn)應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(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控制器

    kubectl create tabtab 下面的所有都可以創(chuàng)建模板文件 --dry-run=client -o yaml 查詢資源對象的幫助信息 ????????kubectl explain pod.spec.restartPolicy? ? ? ? ? ? #這里對上下層級關(guān)系需要清楚 獲取Pod模板 ????????kubectl run mypod --image=xxxx --dry-run=client -o yaml 獲取Deployment ????????ku

    2024年02月03日
    瀏覽(53)
  • k8s 控制器

    Kubernetes(K8S)是一種開源的容器編排平臺,它可以自動化地管理容器化應(yīng)用程序的部署、擴(kuò)展和運(yùn)行。K8S中的控制器是一種重要的組件,它可以確保應(yīng)用程序的狀態(tài)與期望的狀態(tài)一致。在K8S中,有五種常見的控制器,它們分別是: 1. ReplicaSet控制器 ReplicaSet控制器用于確保P

    2024年02月13日
    瀏覽(23)
  • 15-k8s控制器資源-deployment/部署控制器

    15-k8s控制器資源-deployment/部署控制器

    ? ? ? ? 在學(xué)習(xí)rc和rs控制器資源時(shí),我們指導(dǎo),這兩個(gè)資源都是控制pod的副本數(shù)量的,但是,他們兩個(gè)有個(gè)缺點(diǎn),就是在部署新版本pod或者回滾代碼的時(shí)候,需要先apply資源清單,然后再刪除現(xiàn)有pod,通過資源控制,重新拉取新的pod來實(shí)現(xiàn)回滾或者迭代升級; ? ? ? ? 那么

    2024年02月21日
    瀏覽(30)
  • 14-k8s控制器資源-rs控制器replicasets

    14-k8s控制器資源-rs控制器replicasets

    ? ? ? ? replicaset副本控制器,簡稱:rs控制器; ? ? ? ? 用法:與rc控制器“幾乎”相同; ? ? ? ? 能力:可以指定pod的副本始終存活,相比于rc控制器;支持標(biāo)簽匹配,也支持標(biāo)簽表達(dá)式 ????????注意:不論是rc還是rs資源,都是通過“標(biāo)簽”驚醒匹配pod的,如果有同樣

    2024年02月21日
    瀏覽(36)
  • k8s---pod控制器

    k8s---pod控制器

    工作負(fù)載,workload用于管理pod的中間層,確保pod資源符合預(yù)期的狀態(tài)。 預(yù)期狀態(tài): 1、副本數(shù) 2、容器重啟策略 3、鏡像拉取策略 pod出故障的出去等等 1、replicaset:指定pod副本的數(shù)量 三個(gè)組件: ????????????????1、pod的副本 ????????????????2、標(biāo)簽選擇器,判斷

    2024年01月18日
    瀏覽(25)
  • 13-k8s的控制器資源-rc控制器replicationcontrollers

    13-k8s的控制器資源-rc控制器replicationcontrollers

    ? ? ? ? replicationcontrollers控制器資源,簡稱:rc控制器; ? ? ? ? 簡單理解,rc控制器就是控制相同的pod副本數(shù)量; ? ? ? ? 使用rc控制器資源創(chuàng)建pod,就可以設(shè)定創(chuàng)建pod的數(shù)量; [root@k8s231 rc]# vim rc.yaml apiVersion: v1 kind: ReplicationController metadata: ? name: rc01 spec: ? #控制pod的副本

    2024年02月20日
    瀏覽(35)
  • 17-k8s控制器資源-job控制

    17-k8s控制器資源-job控制

    job控制器:就是一次性任務(wù)的pod控制器,pod完成作業(yè)后不會重啟,其重啟策略是:Never ? ? ? ? 啟動一個(gè)pod,執(zhí)行完成一個(gè)事件,然后pod關(guān)閉; ? ? ? ? 事件:計(jì)算π的值,取前5000位; [root@k8s231 pi]# vim job.yaml apiVersion: batch/v1 kind: Job metadata: ? name: job-pi spec: ? #定義pod模板 ?

    2024年02月20日
    瀏覽(23)
  • K8s(五)ReplicaSet控制器

    K8s(五)ReplicaSet控制器

    在Kubernetes(簡稱K8s)中,控制器是負(fù)責(zé)管理和維護(hù)集群中資源狀態(tài)的組件??刂破鞅O(jiān)視集群中的對象,并根據(jù)它們的預(yù)期狀態(tài)來采取行動,以確保系統(tǒng)的期望狀態(tài)與實(shí)際狀態(tài)保持一致。 對于自主式pod來說,刪除pod之后pod就直接消失了,如果因?yàn)橐恍┱`操作或pod錯(cuò)誤退出,就

    2024年01月21日
    瀏覽(25)
  • k8s之Pod控制器

    k8s之Pod控制器

    Pod控制器,又稱之為工作負(fù)載(workload),是用于實(shí)現(xiàn)管理pod的中間層,確保pod資源符合預(yù)期的狀態(tài),pod的資源出現(xiàn)故障時(shí),會嘗試進(jìn)行重啟,當(dāng)根據(jù)重啟策略無效,則會重新新建pod的資源。 1、 ReplicaSet : 代用戶創(chuàng)建指定數(shù)量的pod副本,確保pod副本數(shù)量符合預(yù)期狀態(tài),并且支

    2024年02月13日
    瀏覽(20)
  • k8s 的 Deployment控制器

    k8s 的 Deployment控制器

    RC(Replication Controller)主要作用就是用來確保容器應(yīng)用的副本數(shù)始終保持在用戶定義的副本數(shù)。即如果有容器異常退出,會自動創(chuàng)建新的pod來替代;而如果異常多出來的容器也會自動回收。 K8S官方建議使用RS(ReplicaSet)替代RC(Replication Controller)進(jìn)行部署,RS跟RC沒有本質(zhì)的

    2024年02月09日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包