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

k8s 的 Deployment控制器

這篇具有很好參考價值的文章主要介紹了k8s 的 Deployment控制器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. RS與RC與Deployment關(guān)聯(lián)

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

2. 實例:

  • 使用deployment來創(chuàng)建pod
vim  nginx-rs.yaml

apiVersion: apps/v1    #指定要使用的 Kubernetes API 版本,這里使用的是 apps/v1
kind: ReplicaSet   #指定要創(chuàng)建的對象類型,這里是 ReplicaSet
metadata:          #元數(shù)據(jù)信息,包括對象的名稱、標簽等信息
  name: my-nginx   #對象的名稱,這里是 my-nginx
spec:              #指定 ReplicaSet 對象的配置信息
  replicas: 3      #指定需要運行的副本數(shù),這里是 3
  selector:        #指定選擇器,用于選擇需要管理的 Pod
    matchLabels:   #匹配標簽,這里是 app: nginx-www,表示選擇具有 app=nginx-www 標簽的Pod
      app: nginx-www
  template:        #指定 Pod 的模板,用于創(chuàng)建和管理 Pod
    metadata:      #Pod 元數(shù)據(jù)信息,包括標簽等信息
      labels:      #Pod 標簽,這里是 app: nginx-www
        app: nginx-www
    spec:         #Pod 配置信息
      containers: #容器列表,這里只有一個 Nginx 容器
      - name: my-nginx  #容器名稱,這里是 my-nginx
        image: nginx:latest  #容器鏡像名稱,這里是 nginx:latest,表示使用最新版本的 Nginx 鏡像
        imagePullPolicy: IfNotPresent  #本地不存在鏡像時才嘗試拉取新鏡像
        ports:  #容器對外暴露的端口號,這里是 80,表示將容器的 80 端口映射到集群中的一個隨機端口上。
        - containerPort: 80

2.1. 創(chuàng)建RS

kubectl apply -f nginx-rs.yaml
----過幾分鐘查看一下pod狀態(tài):
kubectl get pod
NAME             READY   STATUS    RESTARTS   AGE
my-nginx-5pbm6   1/1     Running   0          5m47s
my-nginx-9q8hh   1/1     Running   0          5m47s
my-nginx-cp6st   1/1     Running   0          5m47s
--查看RS my-nginx的狀態(tài):
[root@master1 ~]# kubectl get rs my-nginx
NAME       DESIRED   CURRENT   READY   AGE
my-nginx   3         3         3       8m19s

3. RS與Deployment的關(guān)聯(lián)

k8s 的 Deployment控制器

3.1. Deployment

  • Deployment為pod和RS提供了一個聲明式定義(declarative)方法,用來替代以前的RC來方便的管理應(yīng)用。典型的應(yīng)用場景包括:
    1. 定義Deployment來創(chuàng)建pod和RS
    2. 滾動升級和回滾應(yīng)用
    3. 擴容和縮容
    4. 暫停和繼續(xù)Deployment

  • 使用Deployment部署一個簡單的Nginx應(yīng)用:文章來源地址http://www.zghlxwxcb.cn/news/detail-490284.html

 vim  nginx-deployment.yaml
 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx-deployment
  template:
    metadata:
      labels:
        app: nginx-deployment
    spec:
      containers:
      - name: my-nginx
        image: nginx:latest
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80

  • 創(chuàng)建deployment:
kubectl apply -f nginx-deployment.yaml --record
--record 參數(shù)可以記錄命令,我們可以很方便的查看每次 revision的變化。
  • 查看狀態(tài):
[root@master1 ~]# kubectl get deployment
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           3m52s

[root@master1 ~]# kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE
nginx-deployment-86c547cdd4   3         3         3       3m59s

[root@master1 ~]# kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-86c547cdd4-b5d9t   1/1     Running   0          4m4s
nginx-deployment-86c547cdd4-d4sxp   1/1     Running   0          4m4s
nginx-deployment-86c547cdd4-n8t9g   1/1     Running   0          4m4s

3.2. 擴容

[root@master1 ~]# kubectl scale deployment nginx-deployment --replicas=5
deployment.apps/nginx-deployment scaled

[root@master1 ~]# kubectl get deployment
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   5/5     5            5           6m14s

[root@master1 ~]# kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE
nginx-deployment-86c547cdd4   5         5         5       6m23s

[root@master1 ~]# kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-86c547cdd4-b5d9t   1/1     Running   0          6m26s
nginx-deployment-86c547cdd4-d4sxp   1/1     Running   0          6m26s
nginx-deployment-86c547cdd4-flzxw   1/1     Running   0          20s
nginx-deployment-86c547cdd4-n8t9g   1/1     Running   0          6m26s
nginx-deployment-86c547cdd4-t5hzg   1/1     Running   0          20s

3.2.1. 如果集群支持HPA的話,還可以為Deployment設(shè)置自動擴展

kubectl  autoscale  deployment nginx-deployment --min=5  --max=10  --cpu-percent=80

3.3. 縮容

[root@master1 ~]# kubectl scale deployment nginx-deployment --replicas=2
deployment.apps/nginx-deployment scaled

[root@master1 ~]# kubectl get deployment
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   2/2     2            2           7m32s

[root@master1 ~]# kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE
nginx-deployment-86c547cdd4   2         2         2       7m37s

[root@master1 ~]# kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-86c547cdd4-b5d9t   1/1     Running   0          7m40s
nginx-deployment-86c547cdd4-d4sxp   1/1     Running   0          7m40s

3.4. 更新鏡像

kubectl set image deployment/nginx-deployment my-nginx=nginx:1.9.1

--查看是否更新成功
[root@master1 ~]# kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-6867c57f58-hdhqc   1/1     Running   0          9m29s
nginx-deployment-6867c57f58-z2smx   1/1     Running   0          8m8s
[root@master1 ~]# kubectl exec nginx-deployment-6867c57f58-hdhqc  -- nginx -v
nginx version: nginx/1.9.1

3.5. 回滾

回滾到上一個版本
[root@master1 ~]# kubectl rollout undo deployment/nginx-deployment
deployment.apps/nginx-deployment rolled back

查看回滾狀態(tài)
[root@master1 ~]# kubectl rollout status deployment nginx-deployment
deployment "nginx-deployment" successfully rolled out

[root@master1 ~]# kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-86c547cdd4-52llc   1/1     Running   0          15s
nginx-deployment-86c547cdd4-jv25d   1/1     Running   0          9s
[root@master1 ~]# kubectl exec nginx-deployment-86c547cdd4-52llc -- nginx -v
nginx version: nginx/1.25.1


3.6. 回退

查看回滾歷史版本
[root@master1 ~]# kubectl rollout history deployment nginx-deployment
deployment.apps/nginx-deployment
REVISION  CHANGE-CAUSE
2         kubectl apply --filename=nginx-deployment.yaml --record=true
3         kubectl apply --filename=nginx-deployment.yaml --record=true

回退到版本2
[root@master1 ~]# kubectl rollout undo deployment/nginx-deployment  --to-revision=2
deployment.apps/nginx-deployment rolled back

[root@master1 ~]# kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-6867c57f58-g8bw2   1/1     Running   0          19s
nginx-deployment-6867c57f58-hbwng   1/1     Running   0          16s

[root@master1 ~]# kubectl exec nginx-deployment-6867c57f58-g8bw2 -- nginx -v
nginx version: nginx/1.9.1

到了這里,關(guān)于k8s 的 Deployment控制器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • k8s基礎(chǔ)4——deployment控制器、應(yīng)用部署、升級、回滾、水平擴容縮容

    k8s基礎(chǔ)4——deployment控制器、應(yīng)用部署、升級、回滾、水平擴容縮容

    基本了解: Deployment是最常用的K8s工作負載控制器(Workload Controllers),實際項目部署調(diào)試中必用資源之一,所以必須要熟練掌握deploy資源的使用。 它是K8s的一個抽象概念,用于更高級層次對象,部署和管理Pod。 其他控制器還有DaemonSet、StatefulSet等,不同控制器針對不同的需

    2024年02月03日
    瀏覽(28)
  • K8s(Kubernetes)學(xué)習(四):Controller 控制器:Deployment、StatefulSet、Daemonset、Job

    K8s(Kubernetes)學(xué)習(四):Controller 控制器:Deployment、StatefulSet、Daemonset、Job

    什么是 Controller 以及作用 常見的 Controller 控制器 Controller 如何管理 Pod Deployment 基本操作與應(yīng)用 通過控制器實現(xiàn) Pod 升級回滾和彈性伸縮 StatefulSet 基本操作與應(yīng)用 Daemonset 基本操作與應(yīng)用 Job 基本操作與應(yīng)用 Controller 無法解決問題 1 Controller 控制器 官網(wǎng): http://kubernetes.p2hp.com/

    2024年02月09日
    瀏覽(59)
  • 18-k8s控制器資源-cronjob控制器

    18-k8s控制器資源-cronjob控制器

    ? ? ? ? job控制器是執(zhí)行完一次任務(wù),就結(jié)束; ? ? ? ? cronjob控制器,是基于job控制器,定期頻率性執(zhí)行任務(wù);等同于linux系統(tǒng)中的crontab一樣; [root@k8s231 pi]# vim cronjob.yaml apiVersion: batch/v1 kind: CronJob metadata: ? name: xinjizhiwa spec: ? schedule: \\\"* * * * *\\\" ? #定義job的模板 ? jobTemplate

    2024年02月22日
    瀏覽(112)
  • 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)用程序的部署、擴展和運行。K8S中的控制器是一種重要的組件,它可以確保應(yīng)用程序的狀態(tài)與期望的狀態(tài)一致。在K8S中,有五種常見的控制器,它們分別是: 1. ReplicaSet控制器 ReplicaSet控制器用于確保P

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

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

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

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

    k8s---pod控制器

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

    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日
    瀏覽(34)
  • 17-k8s控制器資源-job控制

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

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

    2024年02月20日
    瀏覽(23)
  • 帶你深入學(xué)習k8s--(四) 控制器(k8s核心)

    帶你深入學(xué)習k8s--(四) 控制器(k8s核心)

    目錄 一、概念 1、什么是控制器 2、控制器執(zhí)行流程 3、控制器類型 二、控制器的使用 1、ReplicaSet 2、Deployment 1、版本迭代 2、回滾? 3、修改滾動更新策略 4、暫停與恢復(fù) 3、daemonset 4、job 5、cronjob 前言: 上一章我們說到,pod有兩種,分別為自主式 Pod,Pod 退出后不會被創(chuàng)建;

    2024年02月06日
    瀏覽(35)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包