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

5、Kubernetes核心技術(shù) - Controller控制器工作負(fù)載

這篇具有很好參考價(jià)值的文章主要介紹了5、Kubernetes核心技術(shù) - Controller控制器工作負(fù)載。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、Deployments - 控制器應(yīng)用

二、Deployment升級回滾和彈性收縮

2.1、創(chuàng)建一個(gè) 1.14 版本的 pod

2.2、應(yīng)用升級

2.3、查看升級狀態(tài)

2.4、查看歷史版本

2.5、應(yīng)用回滾

2.6、彈性伸縮?

三、StatefulSet - 有狀態(tài)應(yīng)用

四、DaemonSet - 守護(hù)進(jìn)程

五、Job - 單次任務(wù)

六、Cronjob - 定時(shí)任務(wù)


一、Deployments - 控制器應(yīng)用

Deployment 表示用戶對 K8S 集群的一次更新操作。Deployment 控制器可以部署無狀態(tài)應(yīng)用,管理 Pod 和 ReplicaSet、部署,滾動升級等功能。

下面是一個(gè) Deployment 示例。

其中創(chuàng)建了一個(gè) ReplicaSet,負(fù)責(zé)啟動三個(gè) nginx Pod:

vim simple-deployment.yam

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment	 # 后續(xù)創(chuàng)建 ReplicaSet 和 Pod 的命名基礎(chǔ)
  labels:
    app: nginx
spec:
  replicas: 3		# pod的副本數(shù)量
  selector:
    matchLabels:
      app: nginx  # 定義所創(chuàng)建的 ReplicaSet 如何查找要管理的 Pod
  template:
    metadata:
      labels:
        app: nginx		# pod模板標(biāo)簽
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

創(chuàng)建Deployment:

$ kubectl create -f simple-deployment.yaml 
deployment.apps/nginx-deployment created

# 查看deployment是否創(chuàng)建
$ kubectl get deployments
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           13s

注意 Deployment 已創(chuàng)建全部三個(gè)副本,并且所有副本都是最新的(它們包含最新的 Pod 模板) 并且可用。字段說明:

  • NAME 列出了名字空間中 Deployment 的名稱。
  • READY 顯示應(yīng)用程序的可用的“副本”數(shù)。顯示的模式是“就緒個(gè)數(shù)/期望個(gè)數(shù)”。
  • UP-TO-DATE 顯示為了達(dá)到期望狀態(tài)已經(jīng)更新的副本數(shù)。
  • AVAILABLE 顯示應(yīng)用可供用戶使用的副本數(shù)。
  • AGE 顯示應(yīng)用程序運(yùn)行的時(shí)間。

我們可以通過kubectl describe [deployment-name]查看deployment的相關(guān)事件:

$ kubectl describe deploy nginx-deployment
Name:                   nginx-deployment
Namespace:              default
CreationTimestamp:      Mon, 06 Feb 2023 06:58:59 +0000
Labels:                 app=nginx
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=nginx
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=nginx
  Containers:
   nginx:
    Image:        nginx:1.14.2
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   nginx-deployment-85996f8dbd (3/3 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  101s  deployment-controller  Scaled up replica set nginx-deployment-85996f8dbd to 3

我們看到,最下面的Scaled up replica set nginx-deployment-85996f8dbd to 3,其實(shí)就是運(yùn)行三個(gè)副本的Pod,在k8s中deployment是通過ReplicaSet(副本集)來實(shí)現(xiàn)的,當(dāng)我們創(chuàng)建一個(gè)deployment的時(shí)候,會自動創(chuàng)建一個(gè)ReplicaSet來管理pod的副本數(shù)量。

查看 Deployment 創(chuàng)建的 ReplicaSet(rs):

$ kubectl get rs         
NAME                          DESIRED   CURRENT   READY   AGE
nginx-deployment-85996f8dbd   3         3         3       3m13s

ReplicaSet 輸出中包含以下字段:

  • NAME 列出名字空間中 ReplicaSet 的名稱;
  • DESIRED 顯示應(yīng)用的期望副本個(gè)數(shù),即在創(chuàng)建 Deployment 時(shí)所定義的值。 此為期望狀態(tài);
  • CURRENT 顯示當(dāng)前運(yùn)行狀態(tài)中的副本個(gè)數(shù);
  • READY 顯示應(yīng)用中有多少副本可以為用戶提供服務(wù);
  • AGE 顯示應(yīng)用已經(jīng)運(yùn)行的時(shí)間長度。

注意 ReplicaSet 的名稱格式始終為 [Deployment 名稱]-[哈希]。 該名稱將成為所創(chuàng)建的 Pod 的命名基礎(chǔ)。 其中的哈希字符串與 ReplicaSet 上的 pod-template-hash 標(biāo)簽一致。

查看ReplicaSet相關(guān)事件:

$ kubectl describe rs nginx-deployment-85996f8dbd
Name:           nginx-deployment-85996f8dbd
Namespace:      default
Selector:       app=nginx,pod-template-hash=85996f8dbd
Labels:         app=nginx
                pod-template-hash=85996f8dbd
Annotations:    deployment.kubernetes.io/desired-replicas: 3
                deployment.kubernetes.io/max-replicas: 4
                deployment.kubernetes.io/revision: 1
Controlled By:  Deployment/nginx-deployment
Replicas:       3 current / 3 desired
Pods Status:    3 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=nginx
           pod-template-hash=85996f8dbd
  Containers:
   nginx:
    Image:        nginx:1.14.2
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Events:
  Type    Reason            Age    From                   Message
  ----    ------            ----   ----                   -------
  Normal  SuccessfulCreate  3m24s  replicaset-controller  Created pod: nginx-deployment-85996f8dbd-q9plt
  Normal  SuccessfulCreate  3m24s  replicaset-controller  Created pod: nginx-deployment-85996f8dbd-knwkv
  Normal  SuccessfulCreate  3m24s  replicaset-controller  Created pod: nginx-deployment-85996f8dbd-vcs8d

可以看到,replicaset-controller負(fù)責(zé)創(chuàng)建三個(gè)nginx的Pod。

二、Deployment升級回滾和彈性收縮?

  • 升級: 假設(shè)從版本為 1.14 升級到 1.15 ,這就叫應(yīng)用的升級【升級可以保證服務(wù)不中斷】;
  • 回滾:從版本 1.15 變成 1.14,這就叫應(yīng)用的回滾;
  • 彈性伸縮:我們根據(jù)不同的業(yè)務(wù)場景,來改變 Pod 的數(shù)量對外提供服務(wù),這就是彈性伸縮;

2.1、創(chuàng)建一個(gè) 1.14 版本的 pod

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: web
  name: web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: web
    spec:
      containers:
      # 修改 nginx 版本 1.14
      - image: nginx:1.14
        name: nginx
        resources: {}
status: {}

創(chuàng)建pod:

$ kubectl apply -f nginx.yaml

5、Kubernetes核心技術(shù) - Controller控制器工作負(fù)載,# Kubernetes,kubernetes,容器,云原生,k8s

?如上圖,可以看到, 當(dāng)前運(yùn)行的nginx容器的鏡像版本是1.14。

2.2、應(yīng)用升級

$ kubectl set image deployment web nginx=nginx:1.15

升級過程:

$ kubectl set image deployment web nginx=nginx:1.15
deployment.apps/web image updated

# 首先是開始的 nginx 1.14 版本的 Pod 在運(yùn)行,然后 1.15 版本的在創(chuàng)建
$ kubectl get pod
NAME                   READY   STATUS              RESTARTS   AGE
web-66bf4959f5-qhzsd   1/1     Running             0          52s
web-bbcf684cb-bbmqv    0/1     ContainerCreating   0          3s

# 然后在 1.15 版本創(chuàng)建完成后,就會暫停 1.14 版本
$ kubectl get pod
NAME                   READY   STATUS        RESTARTS   AGE
web-66bf4959f5-qhzsd   1/1     Terminating   0          67s
web-bbcf684cb-bbmqv    1/1     Running       0          18s

# 最后把 1.14 版本的 Pod 移除,完成我們的升級
$ kubectl get pod
NAME                  READY   STATUS    RESTARTS   AGE
web-bbcf684cb-bbmqv   1/1     Running   0          33s

我們在下載 1.15 版本,容器就處于 ContainerCreating 狀態(tài),然后下載完成后,就用 1.15 版本去替換 1.14 版本了,這么做的好處就是:升級可以保證服務(wù)不中斷。

2.3、查看升級狀態(tài)

$ kubectl rollout status deployment web
deployment "web" successfully rolled out

2.4、查看歷史版本

$ kubectl rollout history deployment web
deployment.apps/web 
REVISION  CHANGE-CAUSE
1         <none>
2         <none>

2.5、應(yīng)用回滾

# 回滾到上一版本
$ kubectl rollout undo deployment web

# 回滾到指定版本
$ kubectl rollout undo deployment web --to-revision=2

5、Kubernetes核心技術(shù) - Controller控制器工作負(fù)載,# Kubernetes,kubernetes,容器,云原生,k8s

如上圖,可以看到,通過kubectl rollout undo成功回滾到上一個(gè)版本,鏡像版本又變成1.14了。當(dāng)然還可以指定--to-revision回滾到指定的版本。

2.6、彈性伸縮?

# 創(chuàng)建5個(gè)pod副本
$ kubectl scale deployment web --replicas=5
deployment.apps/web scaled

# 輸出結(jié)果,等一會就會全部 Running
$ kubectl get pod
NAME                   READY   STATUS    RESTARTS   AGE
web-5b9d46fdff-2v2rt   1/1     Running   0          24s
web-5b9d46fdff-4lz7w   1/1     Running   0          24s
web-5b9d46fdff-7tq9x   1/1     Running   0          3m42s
web-5b9d46fdff-mfqhb   1/1     Running   0          24s
web-5b9d46fdff-sfx6q   1/1     Running   0          24s

三、StatefulSet - 有狀態(tài)應(yīng)用

Deployment控制器設(shè)計(jì)原則:管理的所有Pod一模一樣,提供同一個(gè)服務(wù),也不考慮在哪臺Node 運(yùn)行,可隨意擴(kuò)容和縮容。這種應(yīng)用稱為“無狀態(tài)”,例如Web服務(wù)。

在實(shí)際的場景中,并不能滿足所有應(yīng)用,尤其是分布式應(yīng)用,會部署多個(gè)實(shí)例,這些實(shí)例之間往往有依賴關(guān)系,例如主從關(guān)系、主備關(guān)系,這種應(yīng)用稱為“有狀態(tài)”,例如MySQL主從、Etcd集群。

這時(shí)候就需要有狀態(tài)部署了,有狀態(tài)部署有以下幾個(gè)特點(diǎn):

  • 1、每個(gè)pod角色不同(不對等)
  • 2、pod之間有連接關(guān)系
  • 3、每個(gè)pod都有獨(dú)立的存儲

StatefulSet控制器用于部署有狀態(tài)應(yīng)用,滿足一些有狀態(tài)應(yīng)用的需求:

? Pod有序的部署、擴(kuò)容、刪除和停止;

? Pod分配一個(gè)穩(wěn)定的且唯一的網(wǎng)絡(luò)標(biāo)識;

? Pod分配一個(gè)獨(dú)享的存儲;

穩(wěn)定的Pod網(wǎng)絡(luò)標(biāo)識:使用Headless Service(相比普通Service只是將spec.clusterIP定義為None)。

維護(hù)Pod網(wǎng)絡(luò)身份,會為每個(gè)Pod分配一個(gè)數(shù)字編號并且按照編號順序部署。

穩(wěn)定主要體現(xiàn)在主機(jī)名和Pod A記錄:

? 主機(jī)名:<statefulset名稱>-<編號>

? Pod DNS A記錄:<statefulset名稱-編號>.<service-name> .<namespace>.svc.cluster.local

通過一個(gè)StatefulSet有狀態(tài)應(yīng)用的例子來說明:

準(zhǔn)備sta.yaml文件:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
  labels: 
     app: nginx
spec:
  clusterIP: None
  ports:
  - port: 80
    name: nginx
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: ClusterIP

---

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: nginx-statefulset
  namespace: default
spec:
  serviceName: nginx
  selector:
    matchLabels:
      app: nginx
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx

創(chuàng)建并查看pod:

$ kubectl apply -f sta.yaml 
service/nginx created
statefulset.apps/nginx-statefulset created

$ kubectl get pods
NAME                  READY   STATUS    RESTARTS   AGE
nginx-statefulset-0   1/1     Running   0          62s
nginx-statefulset-1   1/1     Running   0          43s
nginx-statefulset-2   1/1     Running   0          39s

可以看到,每個(gè)pod都有一個(gè)唯一的名稱。

[root@localhost ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   13m
nginx        ClusterIP   None         <none>        80/TCP    110s

5、Kubernetes核心技術(shù) - Controller控制器工作負(fù)載,# Kubernetes,kubernetes,容器,云原生,k8s

?可以看到,CULSTER-IP為None,說明這是一個(gè)Headless Service。

四、DaemonSet - 守護(hù)進(jìn)程

DaemonSet 確保全部節(jié)點(diǎn)上都運(yùn)行一個(gè) Pod 的副本。 當(dāng)有節(jié)點(diǎn)加入集群時(shí), 也會為他們新增一個(gè) Pod 。 當(dāng)有節(jié)點(diǎn)從集群移除時(shí),這些 Pod 也會被回收。刪除 DaemonSet 將會刪除它創(chuàng)建的所有 Pod。

DaemonSet 的一些典型用法:

  • 在每個(gè)節(jié)點(diǎn)上運(yùn)行集群守護(hù)進(jìn)程
  • 在每個(gè)節(jié)點(diǎn)上運(yùn)行日志收集守護(hù)進(jìn)程
  • 在每個(gè)節(jié)點(diǎn)上運(yùn)行監(jiān)控守護(hù)進(jìn)程

一種簡單的用法是為每種類型的守護(hù)進(jìn)程在所有的節(jié)點(diǎn)上都啟動一個(gè) DaemonSet。 一個(gè)稍微復(fù)雜的用法是為同一種守護(hù)進(jìn)程部署多個(gè) DaemonSet;每個(gè)具有不同的標(biāo)志, 并且對不同硬件類型具有不同的內(nèi)存、CPU 要求。

DaemonSet示例:

vim daemonset.yaml

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx

創(chuàng)建并查看pod:?

# 當(dāng)前集群中存在兩個(gè)節(jié)點(diǎn)
$ kubectl get nodes
NAME           STATUS   ROLES           AGE     VERSION
controlplane   Ready    control-plane   2d17h   v1.26.0
node01         Ready    <none>          2d16h   v1.26.0

$ kubectl apply -f daemonset.yaml 
daemonset.apps/nginx created

# nginx pod在兩個(gè)節(jié)點(diǎn)都處于運(yùn)行狀態(tài)
$ kubectl get pod -o wide
NAME          READY   STATUS    RESTARTS   AGE   IP            NODE           NOMINATED NODE   READINESS GATES
nginx-frmjc   1/1     Running   0          6s    192.168.1.4   node01         <none>           <none>
nginx-qdb7s   1/1     Running   0          6s    192.168.0.8   controlplane   <none>           <none>

五、Job - 單次任務(wù)

Job 會創(chuàng)建一個(gè)或者多個(gè) Pod,并將繼續(xù)重試 Pod 的執(zhí)行,直到指定數(shù)量的 Pod 成功終止。 隨著 Pod 成功結(jié)束,Job 跟蹤記錄成功完成的 Pod 個(gè)數(shù)。 當(dāng)數(shù)量達(dá)到指定的成功個(gè)數(shù)閾值時(shí),任務(wù)(即 Job)結(jié)束。 刪除 Job 的操作會清除所創(chuàng)建的全部 Pod。 掛起 Job 的操作會刪除 Job 的所有活躍 Pod,直到 Job 被再次恢復(fù)執(zhí)行。

示例 Job:下面是一個(gè) Job 配置示例。它負(fù)責(zé)計(jì)算 π 到小數(shù)點(diǎn)后 2000 位,并將結(jié)果打印出來。 此計(jì)算大約需要 10 秒鐘完成。

vim job.yaml

apiVersion: batch/v1
kind: Job
metadata:
  name: pi-job
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl:5.34.0
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4

創(chuàng)建并查看job:?

$ kubectl apply -f job.yaml 
job.batch/pi-job created

$ kubectl get job
NAME     COMPLETIONS   DURATION   AGE
pi-job   1/1           30s        82s

$ kubectl describe job pi-job
Name:             pi-job
Namespace:        default
Selector:         controller-uid=63b08866-0f04-4326-98ac-08118ec419d7
Labels:           controller-uid=63b08866-0f04-4326-98ac-08118ec419d7
                  job-name=pi-job
Annotations:      batch.kubernetes.io/job-tracking: 
Parallelism:      1
Completions:      1
Completion Mode:  NonIndexed
Start Time:       Sun, 29 Jan 2023 07:48:01 +0000
Completed At:     Sun, 29 Jan 2023 07:48:31 +0000
Duration:         30s
Pods Statuses:    0 Active (0 Ready) / 1 Succeeded / 0 Failed
Pod Template:
  Labels:  controller-uid=63b08866-0f04-4326-98ac-08118ec419d7
           job-name=pi-job
  Containers:
   pi:
    Image:      perl:5.34.0
    Port:       <none>
    Host Port:  <none>
    Command:
      perl
      -Mbignum=bpi
      -wle
      print bpi(2000)
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Events:
  Type    Reason            Age   From            Message
  ----    ------            ----  ----            -------
  Normal  SuccessfulCreate  84s   job-controller  Created pod: pi-job-q7h7c
  Normal  Completed         54s   job-controller  Job completed

要查看 Job 對應(yīng)的已完成的 Pod,可以執(zhí)行 kubectl get pod:?

$ kubectl get pod
NAME           READY   STATUS      RESTARTS   AGE
pi-job-q7h7c   0/1     Completed   0          117s

# 查看Pod的標(biāo)準(zhǔn)輸出
$ kubectl logs pi-job-q7h7c
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275901

六、Cronjob - 定時(shí)任務(wù)

CronJob 創(chuàng)建基于時(shí)隔重復(fù)調(diào)度的 Job。

CronJob 用于執(zhí)行排期操作,例如備份、生成報(bào)告等。 一個(gè) CronJob 對象就像 Unix 系統(tǒng)上的 crontab(cron table)文件中的一行。 它用 Cron 格式進(jìn)行編寫, 并周期性地在給定的調(diào)度時(shí)間執(zhí)行 Job。

CronJob示例:下面的 CronJob 示例清單會在每分鐘打印出當(dāng)前時(shí)間和問候消息

vim cronjob.yaml

apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello-cronjob
spec:
  schedule: "* * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: busybox
            image: busybox:1.28
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure

創(chuàng)建并查看cronjob:

$ kubectl create -f cronjob.yaml 
cronjob.batch/hello-cronjob created

$ kubectl get cronjob
NAME            SCHEDULE    SUSPEND   ACTIVE   LAST SCHEDULE   AGE
hello-cronjob   * * * * *   False     0        <none>          6s

$ kubectl describe cronjob hello-cronjob
Name:                          hello-cronjob
Namespace:                     default
Labels:                        <none>
Annotations:                   <none>
Schedule:                      * * * * *
Concurrency Policy:            Allow
Suspend:                       False
Successful Job History Limit:  3
Failed Job History Limit:      1
Starting Deadline Seconds:     <unset>
Selector:                      <unset>
Parallelism:                   <unset>
Completions:                   <unset>
Pod Template:
  Labels:  <none>
  Containers:
   busybox:
    Image:      busybox:1.28
    Port:       <none>
    Host Port:  <none>
    Command:
      /bin/sh
      -c
      date; echo Hello from the Kubernetes cluster
    Environment:     <none>
    Mounts:          <none>
  Volumes:           <none>
Last Schedule Time:  Sun, 29 Jan 2023 07:57:00 +0000
Active Jobs:         hello-cronjob-27916317
Events:
  Type    Reason            Age   From                Message
  ----    ------            ----  ----                -------
  Normal  SuccessfulCreate  1s    cronjob-controller  Created job hello-cronjob-27916317

查看cronjob生成的pod:

$ kubectl get pod
NAME                           READY   STATUS      RESTARTS   AGE
hello-cronjob-27916317-zdc9d   0/1     Completed   0          100s
hello-cronjob-27916318-nx65t   0/1     Completed   0          40s

$ kubectl logs hello-cronjob-27916317-zdc9d
Sun Jan 29 07:57:02 UTC 2023
Hello from the Kubernetes cluster

$ kubectl logs hello-cronjob-27916318-nx65t
Sun Jan 29 07:58:00 UTC 2023
Hello from the Kubernetes cluster

可以看到,cronjob每分鐘就會生成一個(gè)對應(yīng)的pod,然后日志輸出當(dāng)前時(shí)間和對應(yīng)的提示消息。文章來源地址http://www.zghlxwxcb.cn/news/detail-614148.html

到了這里,關(guān)于5、Kubernetes核心技術(shù) - Controller控制器工作負(fù)載的文章就介紹完了。如果您還想了解更多內(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)文章

  • 什么是域控制器Domain Controller?

    一個(gè)域描述了一組用戶、系統(tǒng)、應(yīng)用程序、網(wǎng)絡(luò)、數(shù)據(jù)庫服務(wù)器和其他任何資源,這些資源都受到一組共同的管理規(guī)則的控制。通常,一個(gè)域還包括一個(gè)物理空間,比如一個(gè)辦公室或多個(gè)辦公室。如果你在域內(nèi),你就處于一個(gè)理論上安全和可信的空間。如果在外面,你就是不

    2024年02月07日
    瀏覽(27)
  • beego的控制器Controller篇 — 數(shù)據(jù)處理

    1.1 獲取參數(shù) 通過如下方式獲取數(shù)據(jù): GetString(key string) string GetStrings(key string) []string GetInt(key string) (int64, error) GetBool(key string) (bool, error) GetFloat(key string) (float64, error) 例如: 如果需要的數(shù)據(jù)是其他類型的,例如是 int 類型而不是 int64,那么你需要這樣處理: 1.2?獲取表單中的

    2024年01月17日
    瀏覽(18)
  • 【P30】JMeter 事務(wù)控制器(Transaction Controller)

    【P30】JMeter 事務(wù)控制器(Transaction Controller)

    可以生成一個(gè)額外的樣本,這樣能夠?qū)⑺乃凶釉刈鳛橐粋€(gè)計(jì)量單元進(jìn)行監(jiān)聽;事務(wù)控制器本身不包含任何業(yè)務(wù)邏輯,只是組合出一個(gè)新的計(jì)量單元 選擇線程組右鍵 添加 邏輯控制器 事務(wù)控制器(Transaction Controller) Generate parent sample:選中,事務(wù)控制器將作為其他取樣器

    2024年02月06日
    瀏覽(28)
  • 【P31】JMeter 循環(huán)控制器(Loop Controller)

    【P31】JMeter 循環(huán)控制器(Loop Controller)

    可以對部分邏輯按常量進(jìn)行循環(huán)迭代 選擇線程組右鍵 添加 邏輯控制器 循環(huán)控制器(Loop Controller) Loop Count:設(shè)置運(yùn)行次數(shù),Infinite 勾選為永久運(yùn)行 2.1、設(shè)置循環(huán)次數(shù) (1)、測試計(jì)劃右鍵 添加 線程(用戶) 線程組 參數(shù)默認(rèn)即可 (2)、線程組右鍵 添加 取樣器 調(diào)試取樣器

    2024年02月07日
    瀏覽(25)
  • 【P38】JMeter 隨機(jī)控制器(Random Controller)

    【P38】JMeter 隨機(jī)控制器(Random Controller)

    可以讓控制器內(nèi)部的邏輯隨機(jī)執(zhí)行一個(gè),一般用來模擬業(yè)務(wù)的不確定性;隨機(jī)控制器在線程迭代或者控制器循環(huán)的時(shí)候均會觸發(fā) 選擇線程組右鍵 添加 邏輯控制器 隨機(jī)控制器(Random Controller) 忽略子控制器塊(Ignore sub-controller blocks):子控制器功能失效,由交替控制器代替

    2024年02月07日
    瀏覽(25)
  • 第三十章 Unity角色控制器 Character Controller

    第三十章 Unity角色控制器 Character Controller

    在我們之前的章節(jié)中,我們已經(jīng)了解了碰撞體和剛體。但是,對于剛體這個(gè)組件來講,有兩種使用方式。其一就是用它來模擬現(xiàn)實(shí)世界的移動或碰撞效果(例如,門的開關(guān));其二就是使用代碼來控制物體移動或碰撞(例如,角色的行走)。兩種方式使用場景不同而已。 本章

    2024年02月08日
    瀏覽(91)
  • 【P34】JMeter ForEach控制器(ForEach Controller)

    【P34】JMeter ForEach控制器(ForEach Controller)

    可以對一個(gè)組變量進(jìn)行循環(huán)迭代;該組件通常與后置處理器中的 JSON 提取器、正則提取器、邊界提取器等進(jìn)行聯(lián)合使用 選擇線程組右鍵 添加 邏輯控制器 ForEach控制器(ForEach Controller) 輸入變量前綴(Input variable prefix):默認(rèn)為一個(gè)空字符串作為前綴 開始循環(huán)字段(不包含)

    2024年02月06日
    瀏覽(35)
  • Spring MVC學(xué)習(xí)隨筆-控制器(Controller)開發(fā)詳解:控制器跳轉(zhuǎn)與作用域(二)視圖模板、靜態(tài)資源訪問

    Spring MVC學(xué)習(xí)隨筆-控制器(Controller)開發(fā)詳解:控制器跳轉(zhuǎn)與作用域(二)視圖模板、靜態(tài)資源訪問

    學(xué)習(xí)視頻:孫哥說SpringMVC:結(jié)合Thymeleaf,重塑你的MVC世界?。八从械腤eb開發(fā)探索之旅 銜接上文Spring MVC學(xué)習(xí)隨筆-控制器(Controller)開發(fā)詳解:控制器跳轉(zhuǎn)與作用域(一) SpingMVC中request作用域的處理 代碼 Model、ModelMap相關(guān)細(xì)節(jié)分析 通過Model、ModelMap進(jìn)行作用域處理,可以解決

    2024年02月05日
    瀏覽(34)
  • 【P33】JMeter 臨界部分控制器(Critical Section Controller)

    【P33】JMeter 臨界部分控制器(Critical Section Controller)

    可以對指定代碼塊增加同步鎖,確保此代碼塊由單線程執(zhí)行;通過 Java synchronized 實(shí)現(xiàn) 選擇線程組右鍵 添加 邏輯控制器 臨界部分控制器(Critical Section Controller) 鎖名稱(Lock name):鎖名為空,認(rèn)為每個(gè)鎖為不同的鎖;鎖名相同,多個(gè)鎖認(rèn)為是同一個(gè)鎖,同一個(gè)時(shí)間點(diǎn)

    2024年02月07日
    瀏覽(28)
  • STM32 FSMC (Flexible static memory controller) 靈活靜態(tài)內(nèi)存控制器介紹

    STM32 FSMC (Flexible static memory controller) 靈活靜態(tài)內(nèi)存控制器介紹

    說到STM32的FSMC(Flexible Static Memory Controller),這個(gè)玩意兒可真是STM32家族的“多面手”。想象一下,如果STM32是個(gè)熱衷于DIY的工程師,那FSMC就是他的瑞士軍刀,無論是連接SRAM、PSRAM、NOR/NAND Flash還是LCD模塊,F(xiàn)SMC都能應(yīng)對自如,簡直就是連接外部存儲和記憶界的“橋梁”。 FSM

    2024年02月21日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包