日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置DaemonSet升級(jí)模型以解決升級(jí)阻塞以及OTA升級(jí)問(wèn)題

更新時(shí)間:

在邊緣計(jì)算場(chǎng)景中,原生的DaemonSet升級(jí)模型無(wú)法滿(mǎn)足某些特定的需求,例如,由于云邊網(wǎng)絡(luò)中斷,節(jié)點(diǎn)NotReady而導(dǎo)致的DaemonSet滾動(dòng)升級(jí)被阻塞,或者您需要根據(jù)實(shí)際邊緣環(huán)境的狀態(tài)在邊緣節(jié)點(diǎn)上直接觸發(fā)應(yīng)用的升級(jí),而不由云端驅(qū)動(dòng)(例如新能源汽車(chē)的OTA升級(jí))。此時(shí),您可以通過(guò)配置擴(kuò)展的DaemonSet升級(jí)模型AdvancedRollingUpdateOTA以解決云邊網(wǎng)絡(luò)中斷導(dǎo)致的升級(jí)阻塞以及OTA升級(jí)問(wèn)題。

前提條件

適用于v1.26.3-aliyun.1及以上版本的ACK Edge集群

升級(jí)模型說(shuō)明

  • AdvancedRollingUpdate升級(jí)模型

    該升級(jí)模型幫您解決云邊網(wǎng)絡(luò)斷鏈時(shí),由于節(jié)點(diǎn)狀態(tài)NotReady而導(dǎo)致的DaemonSet升級(jí)阻塞問(wèn)題。在升級(jí)過(guò)程中,它會(huì)忽略NotReady狀態(tài)的節(jié)點(diǎn),優(yōu)先完成狀態(tài)為Ready的節(jié)點(diǎn)上的Pod升級(jí)。同時(shí),當(dāng)節(jié)點(diǎn)狀態(tài)從NotReady轉(zhuǎn)變?yōu)?b>Ready時(shí),它會(huì)自動(dòng)完成該節(jié)點(diǎn)上DaemonSet Pod的升級(jí)。

  • OTA升級(jí)模型

    該升級(jí)模型允許您直接在邊緣節(jié)點(diǎn)上通過(guò)調(diào)用REST API來(lái)檢查Pod是否可以更新,以及觸發(fā)Pod的升級(jí)操作。

配置說(shuō)明

apiVersion: apps/v1
kind: DaemonSet
metadata:
  annotations:
    apps.openyurt.io/update-strategy: AdvancedRollingUpdate
    apps.openyurt.io/max-unavailable: 30%
spec:
  updateStrategy:
    type: OnDelete

參數(shù)

說(shuō)明

apps.openyurt.io/update-strategy

啟用擴(kuò)展升級(jí)模型,支持AdvancedRollingUpdate或OTA。

apps.openyurt.io/max-unavailable

此配置僅在AdvancedRollingUpdate模式下生效。定義高級(jí)滾動(dòng)升級(jí)過(guò)程中最大不可用Pod的數(shù)量,此注解的值與原生DaemonSet的maxUnavailable配置相同。如果未指定,則默認(rèn)值為10%

DaemonSet.spec.updateStrategy.type

必須設(shè)置為OnDelete,即需要手動(dòng)刪除舊的Pod以觸發(fā)新版本的Pod的創(chuàng)建。

使用方式

AdvancedRollingUpdate升級(jí)模型

以下示例代碼為AdvancedRollingUpdate升級(jí)示例,在示例中創(chuàng)建了一個(gè)名為nginx-daemonset的DaemonSet,使用AdvancedRollingUpdate升級(jí)模型,并且在滾動(dòng)升級(jí)過(guò)程中最多允許30%的Pod不可用。則該AdvancedRollingUpdate升級(jí)使用示例如下。

cat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nginx-daemonset
  annotations:
    apps.openyurt.io/update-strategy: AdvancedRollingUpdate
    apps.openyurt.io/max-unavailable: 30%
spec:
  selector:
    matchLabels:
      app: nginx
  updateStrategy:
    type: OnDelete
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.19.4
EOF

OTA升級(jí)模型

  • OTA升級(jí)接口

    邊緣節(jié)點(diǎn)上的edge-hub組件提供了兩個(gè)與OTA升級(jí)相關(guān)的REST APIs。

    • GET /pods

      通過(guò)此接口可以獲取節(jié)點(diǎn)上的Pod信息。您可以通過(guò)Pod.status.conditions中的PodNeedUpgrade來(lái)檢查Pod是否可以更新。

    • POST /openyurt.io/v1/namespaces/{ns}/pods/{podname}/upgrade

      通過(guò)此接口允許觸發(fā)特定的DaemonSet Pod的更新。路徑參數(shù){ns}{podname}分別代表Pod的命名空間和名稱(chēng)。您可以根據(jù)實(shí)際需求對(duì)指定的Pod執(zhí)行升級(jí)操作。

  • OTA升級(jí)使用示例

    創(chuàng)建一個(gè)名為nginx-daemonset的DaemonSet,使用OTA升級(jí)模型,當(dāng)DaemonSet的鏡像更新后,節(jié)點(diǎn)上的Pod并不會(huì)自動(dòng)更新,您需要在邊緣節(jié)點(diǎn)上通過(guò)REST API來(lái)檢查和觸發(fā)Pod的升級(jí)。

    cat <<EOF | kubectl apply -f -
    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      name: nginx-daemonset
      annotations:
        apps.openyurt.io/update-strategy: OTA
    spec:
      selector:
        matchLabels:
          app: nginx
      updateStrategy:
        type: OnDelete
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.19.4
    
    EOF
  • OTA升級(jí)用例

    1. 登錄邊緣節(jié)點(diǎn),執(zhí)行以下命令,查看節(jié)點(diǎn)上的所有Pod是否有升級(jí)需求。

      curl http://127.0.0.1:10267/pods

      若輸出結(jié)果中default/nginx-daemonset-bwzss pod.Status.Conditions`PodNeedUpgrade=true`,表明對(duì)應(yīng)的Pod需要升級(jí)。

    2. 執(zhí)行以下命令,對(duì)該P(yáng)od進(jìn)行升級(jí)。

      curl -X POST http://127.0.0.1:10267/openyurt.io/v1/namespaces/default/pods/nginx-daemonset-bwzss/upgrade
    3. 執(zhí)行以下命令,更新DaemonSet配置。

      Start updating pod default/nginx-daemonset-bwzss

相關(guān)文檔

如需確認(rèn)Pod運(yùn)行狀態(tài),請(qǐng)參見(jiàn)管理容器組(Pod)