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

設置容器啟動和退出順序

本文介紹如何通過環境變量的方式,為一個ECI實例內的各個容器設置啟動和退出優先級,實現容器按順序啟動和退出。

功能說明

默認情況下,ECI實例內的各個容器是并發進行啟動和退出的,沒有固定的前后順序。在某些場景下,一個實例內的多個容器之間可能存在依賴關系,某一容器需要在另一容器啟動后再啟動,或者某一容器需要在另一容器退出后再退出。例如:

  • istio服務治理場景,需要保證在業務容器產生流量時,istio-proxy容器已經Ready;在業務容器退出后,istio-proxy容器才退出。

  • 采集日志時,需要保證在業務容器產生日志前,日志容器已經Ready;在業務容器退出后,日志容器才退出。

針對上述場景,ECI支持通過設置容器環境變量的方式,為ECI實例內的容器設置啟動和退出優先級。您可以按照您的業務需求為容器添加相應的環境變量,來保證容器按順序啟動或按順序退出。

配置說明

設置容器啟動和退出順序的環境變量如下:

配置項

環境變量名稱

配置說明

容器啟動優先級

ECI_CONTAINER_LAUNCH_PRIORITY

  • 取值范圍為-1000~1000,默認值為0。數值越大,啟動優先級越高。

  • 優先級高的容器保證會在優先級低的容器啟動之前啟動,相同優先級的容器不保證啟動順序(并發啟動)。

  • 如果某容器依賴上一個容器提供服務,需要為容器配置Readiness Probe。例如:B容器依賴A容器提供服務,則在設置A容器的啟動優先級高于B容器的同時,還需要為A容器配置Readiness Probe,確保A容器準備就緒后才啟動B容器。

容器退出優先級

ECI_CONTAINER_EXIT_PRIORITY

  • 取值范圍為-1000~1000,默認值為0。數值越大,退出優先級越高。

  • 優先級高的容器保證會在優先級低的容器退出之前退出,相同優先級的容器不保證退出順序(并發退出)。

重要

通過OpenAPI創建ECI實例時,可以設置TerminationGracePeriodSeconds來保證實例優雅退出,此時如果設置了容器退出順序,實例總體的銷毀時間可能會大于TerminationGracePeriodSeconds聲明的時間。

配置示例

設置容器啟動順序

API

  1. 創建一臺設置了容器啟動順序的ECI實例。

    調用CreateContainerGroup接口創建ECI實例所采用的參數示例如下,實例內包含兩個容器,c1容器的啟動優先級高于c2容器,且c1容器配置了Readiness Probe,c2容器會在c1容器準備就緒后才啟動。

    {
      "RegionId": "cn-beijing",
      "SecurityGroupId": "sg-2ze63v3jtm8e6syi****",
      "VSwitchId": "vsw-2ze94pjtfuj9vaymf****",
      "ContainerGroupName": "test-launch",
      "Container": [
        {
          "Name": "c1",
          "Image": "registry.cn-shanghai.aliyuncs.com/eci_open/nginx:alpine",
          "EnvironmentVar": [
            {
              "Key": "ECI_CONTAINER_LAUNCH_PRIORITY",
              "Value": "1000"
            }
          ],
          "ReadinessProbe.PeriodSeconds": 3,
          "ReadinessProbe.HttpGet.Path": "/",
          "ReadinessProbe.HttpGet.Port": 80
        },
        {
          "Name": "c2",
          "Image": "registry.cn-shanghai.aliyuncs.com/eci_open/nginx:alpine",
          "EnvironmentVar": [
            {
              "Key": "ECI_CONTAINER_LAUNCH_PRIORITY",
              "Value": "0"
            }
          ],
          "Arg": [
            "/bin/sh",
            "-c",
            "sleep 3600s"
          ]
        }
      ]
    }
  2. 查看實例詳情,確認各個容器的啟動時間。

    調用DescribeContainerGroups查詢實例詳情,在返回信息的Containers中查看各個容器的詳細信息,通過CurrentState.StartTime字段,可以看出c2容器的啟動時間晚于c1容器。

控制臺

通過彈性容器實例控制臺創建ECI實例時,您可以在各個容器的高級配置中設置環境變量,為容器設置啟動優先級,同時在健康檢查處可以設置Readiness Probe(即應用業務探針)。

容器啟動-控制臺.png

創建完成后,您可以通過查看實例事件,確認各個容器的啟動順序。

設置容器退出順序

API

  1. 創建一臺設置了容器退出順序的ECI實例。

    調用CreateContainerGroup接口創建ECI實例所采用的參數示例如下,實例設置了TerminationGracePeriodSeconds為30s,包含三個容器,容器退出優先級從高到低依次為c1、c2、c3。

    {
      "RegionId": "cn-beijing",
      "ContainerGroupName": "test-exit",
      "SecurityGroupId": "sg-2ze63v3jtm8e6syi****",
      "VSwitchId": "vsw-2ze94pjtfuj9vaymf****",
      "TerminationGracePeriodSeconds": 30,
      "Container": [
        {
          "Name": "c1",
          "Image": "registry.cn-shanghai.aliyuncs.com/eci_open/nginx:alpine",
          "EnvironmentVar": [
            {
              "Key": "ECI_CONTAINER_EXIT_PRIORITY",
              "Value": "1000"
            }
          ]
        },
        {
          "Name": "c2",
          "Image": "registry.cn-shanghai.aliyuncs.com/eci_open/nginx:alpine",
          "EnvironmentVar": [
            {
              "Key": "ECI_CONTAINER_EXIT_PRIORITY",
              "Value": "0"
            }
          ],
          "Arg": [
            "/bin/sh",
            "-c",
            "sleep 3600s"
          ]
        },
        {
          "Name": "c3",
          "Image": "registry.cn-shanghai.aliyuncs.com/eci_open/nginx:alpine",
          "EnvironmentVar": [
            {
              "Key": "ECI_CONTAINER_EXIT_PRIORITY",
              "Value": "-1000"
            }
          ],
          "Arg": [
            "/bin/sh",
            "-c",
            "sleep 3600s"
          ]
        }
      ]
    }
  2. 刪除實例,然后觀察實例內容器Killing事件的順序。

    說明

    如果需要確認容器退出順序,請及時查看事件,ECI實例徹底刪除后可能無法觀察到相關事件。

    調用DescribeContainerGroupEvents查詢實例事件,在返回信息的Events中查看各個容器Killing事件的時間,可以看出容器退出順序依次為c1、c2、c3。

控制臺

通過彈性容器實例控制臺創建ECI實例時,您可以在各個容器的高級配置中設置環境變量,為容器設置退出優先級。

容器退出-控制臺.png