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

搶占式實例節點池最佳實踐

搶占式實例是一種按需使用的實例,相對于按量付費實例價格有一定的折扣。搶占式實例節點池是由搶占式實例、按量付費實例按照一定比例組合而成的節點池,使用搶占式實例節點池,可以節省一定的費用。本文介紹搶占式實例節點池的概念、適用場景,配置搶占式實例組合,配置搶占式實例和存量實例的比例,查看搶占式實例到期狀態,以及搶占式實例到期的優雅處理方式等內容。

背景信息

搶占式實例采用按量付費的計費方式,即先使用后付費。費用根據市場價格和計費時長進行計算。更多信息,請參見搶占式實例

搶占式實例節點池介紹

搶占式實例(Spot Instance)節點池是由搶占式實例、按量付費實例按照一定比例組合而成的節點池。

搶占式實例是一種特殊按量付費實例,價格隨著庫存等因素動態波動,價格成本較低,相比按量實例節點最多可以節省90%成本。搶占式實例的市場價格會隨供需變化而浮動,您需要在創建搶占式實例時指定出價模式,當指定實例規格的實時市場價格低于出價且庫存充足時,就能成功創建搶占式實例。

搶占式實例創建成功后,操作與按量付費實例相同,您也可以將搶占式實例和其他云產品組合使用,例如云盤、公網IP地址等。搶占式實例默認有1小時的保護期。超過保護期后,每5分鐘檢測一次實例規格的實時市場價格和庫存,如果某一時刻的市場價格高于出價或實例規格庫存不足,搶占式實例會被釋放。

適用場景分析

  • 搶占式實例節點池

    搶占式實例節點池由于使用搶占式實例,節點可能在不確定時刻到期被回收,因此適合用于無狀態、容錯性較好的應用。其中包括批處理和機器學習培訓工作負載、大數據ETL(例如Apache Spark)、隊列處理應用和無狀態API應用等。

    部署在搶占式實例節點池的工作負載需要容忍所需節點資源不可用的時段,對無法容忍的應用負載建議使用按量實例或者包年包月實例的節點池。這類無法容忍的負載一般包含但不限于以下應用:
    • 集群管理工具,例如監控和操作工具。
    • 需要有狀態工作負載的部署或應用程序,例如數據庫。
  • 開啟自動伸縮的搶占式實例節點池

    如果工作負載不僅可部署在搶占式實例節點池,還具有較明顯的業務高低峰窗口期,建議您使用開啟自動伸縮的搶占式實例節點池。

    開啟自動伸縮后,集群節點自動伸縮組件會檢查是否需要擴容搶占式實例節點池來部署集群中Pod,以及當節點達到縮容條件時進行自動縮容。開啟自動伸縮的搶占式節點池在擴容時觸發擴容速度更快,對閑置資源的釋放更及時。在節點池內實例可彈出情況下,快速的彈出彌補了一部分搶占式節點池被動回收的不足,及時釋放閑置資源加強了節省成本的優勢。

搶占式實例組合的選擇和配置

在實例規格選擇上沒有“最優解”,建議您選擇最適合業務類型的,且在庫存、成本和性能間達到最佳平衡的方案。為了滿足不同業務,阿里云ECS提供了大量的實例類型,如何在實例規格中選出您需要的組合方案,特別是在競價場景下選擇出對業務可能影響最小的實例組合,是用好搶占式實例節點池的第一步。

您可以通過以下方式選擇和配置搶占式實例組合:

  • 根據容器服務管理控制臺推薦
    容器服務管理控制臺提供了實例的選擇建議。在創建或編輯節點池時,控制臺會根據所選地域給出當前時刻所在地域有庫存的實例規格,您可以通過所需資源對實例規格進行進一步篩選。在選出實例規格后,控制臺會同時算出彈性強度和實例的價格區間,您可以參照彈性強度建議,添加實例規格和設置實例價格上限。關于如何創建或編輯節點池,請參見操作步驟搶占式實例.png
  • 通過spot-instance-advisor命令行

    容器服務開源了命令行spot-instance-advisor,以便您通過命令行獲取搶占式實例的歷史價格波動情況和當前價格信息。spot-instance-advisor的原理是通過API獲取一個地域的實例規格與歷史價格曲線,通過統計分析的方式,計算排序最低核時的機型,并通過離散度的判斷計算實例價格的熵值,熵值越高表示機型的價格波動越頻繁。建議您選擇熵值低的機型。

    說明 下載spot-instance-advisor,請參見spot-instance-advisor
    spot-instance-advisor支持以下過濾參數:
    Usage of ./spot-instance-advisor:
      -accessKeyId string
            Your accessKeyId of cloud account
      -accessKeySecret string
            Your accessKeySecret of cloud account
      -cutoff int
            Discount of the spot instance prices (default 2)
      -family string
            The spot instance family you want (e.g. ecs.n1,ecs.n2)
      -limit int
            Limit of the spot instances (default 20)
      -maxcpu int
            Max cores of spot instances  (default 32)
      -maxmem int
            Max memory of spot instances (default 64)
      -mincpu int
            Min cores of spot instances (default 1)
      -minmem int
            Min memory of spot instances (default 2)
      -region string
            The region of spot instances (default "cn-hangzhou")
      -resolution int
            The window of price history analysis (default 7)
    執行以下命令,即可獲得當前地域內最適合的實例規格配置:
    ./spot-instance-advisor --accessKeyId=<id> --accessKeySecret=<secret> --region=<cn-zhangjiakou>
    說明 accessKeyIdaccessKeySecretregion為必填參數,請根據您的實際業務場景填寫。
    預期輸出:
    Initialize cache ready with 619 kinds of instanceTypes
    Filter 93 of 98 kinds of instanceTypes.
    Fetch 93 kinds of InstanceTypes prices successfully.
    Successfully compare 199 kinds of instanceTypes
          InstanceTypeId               ZoneId     Price(Core)        Discount           ratio
            ecs.c6.large     cn-zhangjiakou-c          0.0135             1.0             0.0
            ecs.c6.large     cn-zhangjiakou-a          0.0135             1.0             0.0
          ecs.c6.2xlarge     cn-zhangjiakou-a          0.0136             1.0             0.0
          ecs.c6.2xlarge     cn-zhangjiakou-c          0.0136             1.0             0.0
          ecs.c6.3xlarge     cn-zhangjiakou-a          0.0137             1.0             0.0
          ecs.c6.3xlarge     cn-zhangjiakou-c          0.0137             1.0             0.0
           ecs.c6.xlarge     cn-zhangjiakou-c          0.0138             1.0             0.0
           ecs.c6.xlarge     cn-zhangjiakou-a          0.0138             1.0             0.0
         ecs.hfc6.xlarge     cn-zhangjiakou-a          0.0158             1.0             0.0
          ecs.hfc6.large     cn-zhangjiakou-a          0.0160             1.0             0.0
          ecs.hfc6.large     cn-zhangjiakou-c          0.0160             1.0             0.0
          ecs.g6.3xlarge     cn-zhangjiakou-a          0.0175             1.0             0.0
          ecs.g6.3xlarge     cn-zhangjiakou-c          0.0175             1.0             0.0
            ecs.g6.large     cn-zhangjiakou-a          0.0175             1.0             0.0
           ecs.g6.xlarge     cn-zhangjiakou-a          0.0175             1.0             0.0
          ecs.g6.2xlarge     cn-zhangjiakou-a          0.0175             1.0             1.0
          ecs.g6.2xlarge     cn-zhangjiakou-c          0.0175             1.0             3.0
            ecs.g6.large     cn-zhangjiakou-c          0.0175             1.0             30.8
           ecs.g6.xlarge     cn-zhangjiakou-c          0.0175             1.0             9.7
          ecs.hfg6.large     cn-zhangjiakou-c          0.0195             1.0             0.2
    由以上輸出發現排名前幾位的價格、混沌系數(對應ratio)都相對比較平穩,而后面幾個實例的價格雖然也處在1折,但是混沌系數(對應ratio)相對而言會比較高,因此在配置實例規格時,可以優先考慮前面價格較低且混沌系數較低的規格組合。

配置搶占式實例和存量實例的比例

通過在節點池內配置搶占式實例和存量實例的比例,在保證節點池內有穩定的存量實例的前提下,規劃搶占式實例比例可降低成本。

重要

已創建Kubernetes集群,且集群版本大于1.9。如果您的集群版本過低,請升級集群。具體操作,請參見升級ACK集群

  • 請確保您的集群可添加足夠的節點數。如果您需要添加更多節點,請申請擴大配額,詳細操作方法,請參見使用限制
  • 添加已有云服務器時,請確保您的專有網絡中的ECS實例綁定一個彈性公網IP(EIP),或者相應VPC已經配置了NAT網關。您需要確保相應節點能正常訪問公網,否則添加云服務器會失敗。
  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇節點管理 > 節點池

  3. 節點池頁面右上角,單擊創建節點池
  4. 創建節點池對話框中,選擇虛擬交換機為多個虛擬交換機,選擇付費類型搶占式實例
    關于節點池的其他參數,請參見操作步驟
  5. 單擊顯示高級選項,在擴縮容策略選擇成本優化策略,并根據規劃設置按量實例所占比例(%),開啟允許按量實例補償
    擴縮容策略.png
    參數描述
    擴縮容策略
    • 優先級策略:根據您定義的虛擬交換機優先級擴縮容。當優先級較高的虛擬交換機所在可用區無法創建ECS實例時,自動使用下一優先級的虛擬交換機創建ECS實例。
    • 成本優化策略:按vCPU單價從低到高嘗試創建,當伸縮配置設置了搶占式計費方式的多實例規格時,優先創建對應搶占式計費實例,當搶占式計費實例規格由于庫存等原因都無法創建時,自動嘗試以按量付費的方式創建。當擴縮容策略為成本優化策略時,還可以配置以下參數:
      • 按量實例所占比例:節點池實例中按量實例應占的比例,取值范圍為0~100。
      • 開啟搶占式實例補償:開啟后,當收到搶占式實例將被回收的系統消息時(即搶占式實例被回收前5分鐘左右),伸縮組將嘗試創建新的實例,替換掉將被回收的搶占式實例。
      • 允許按量實例補償:開啟后,如果因價格、庫存等原因無法創建足夠的搶占式實例,伸縮組會自動嘗試創建按量實例滿足ECS實例數量要求。
    • 均衡分布策略:在伸縮組指定的多可用區(即指定多個專有網絡交換機)之間均勻分配ECS實例。如果由于庫存不足等原因可用區之間變得不平衡,您可以再進行均衡操作來平衡資源的可用區分布。
      說明 只有設置了多個專有網絡交換機時均衡分布策略才能生效。
    說明

    單擊確認配置后:

    • 不支持修改擴縮容策略的選擇項。
    • 擴縮容策略選擇為成本優化策略,可以修改按量實例所占比例(%)允許按量實例補償的配置。
  6. 單擊確認配置

配置完成后,在節點池頁面找到目標節點池,單擊操作列中的詳情,然后單擊基本信息頁簽。在節點配置區域,可查看按量實例所占比例。

查看搶占式實例到期狀態

為了防止Spot實例(即搶占式實例)到期引發節點意外退出,阿里云容器服務ACK可通過ack-node-problem-detector組件獲取實例即將釋放的信息并通知給您。

說明 需要提前創建Kubernetes集群且安裝最新版本的ack-node-problem-detector組件。具體操作,請參見創建Kubernetes托管版集群
  • 若需要新建集群,請選中安裝node-problem-detector并創建事件中心
  • 若使用已有集群,請確認ack-node-problem-detector組件為最新版本。具體操作,請參見管理組件

在阿里云容器服務ACK中,ECS實例作為節點支持著集群以及集群上運行的服務。根據ECS實例創建時的策略,某些實例(例如搶占式實例、包年包月實例)存在到期自動釋放問題。若在實例自動釋放時未做Pod驅逐、節點排水、節點替換等前置處理,可能影響集群服務運行情況,Master節點意外退出可能引發集群級別的故障。為了防止搶占式實例到期引發的節點意外退出問題,可通過ack-node-problem-detector組件的InstanceExpired狀態獲取實例即將釋放的信息。

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇節點管理 > 節點

  3. 節點頁面,單擊目標節點的名稱或在目標節點右側操作列選擇更多 > 詳情
  4. 在節點詳情頁面查看InstanceExpired類型的狀態。
    狀態區域查看InstanceExpired類型的狀態。實例是否到期
    InstanceExpired的狀態說明如下所示:
    InstanceExpired的狀態說明
    TrueInstanceExpired的狀態為True內容InstanceToBeTerminated,表示搶占式實例將到期,會被釋放。
    FalseInstanceExpired的狀態為False內容InstanceNotToBeTerminated,表示搶占式實例還未到期,可持續使用。
    Unknown表示插件運行錯誤,請提交工單解決。
    若InstanceExpired的狀態為True,可在事件區域看到以下的事件。實例過期event

InstanceExpired的狀態為True,表示搶占式實例將到期釋放。若您需要繼續使用該節點上的服務,請將應用調度到其他節點上。具體操作,請參見調度應用Pod至指定節點

搶占式實例到期的優雅處理方式

搶占式實例到期的優雅處理方式主要包括:監控與通知、節點預補償與策略、自定義處理行為。

  • 監控與通知
    為了讓節點池中搶占式實例釋放消息盡早通知到您,ACK集群通過組件NPD監控搶占式實例的預釋放消息。
    • 沒有監控到該搶占式實例的預釋放消息時,該節點的狀態中InstanceExpired值為False搶占式實例節點狀態.png
    • 搶占式實例InstanceExpired值為True時,表示搶占式實例即將到期,即將被釋放。ACK會通過集群事件(Kubernetes Events)通知您搶占式實例即將釋放的消息。搶占式實例釋放.png
  • 節點預補償與策略

    搶占式實例的到期釋放是影響節點上業務負載穩定性的一個關鍵因素。容器服務ACK已經從配置、開啟自動伸縮到監控通知各種維度提供了方法去快速響應搶占式實例到期釋放事件。這些處理方式的處理時間點都在搶占式實例到期回收之后,在回收到新實例補充這段時間集群可用資源仍然會減少。為盡量縮短甚至消除這段時間影響,ACK利用節點預補償功能,在到期實例還未回收前就觸發彈出補償實例。

    開啟節點預補償后,ACK會自動監控節點實例是否即將被釋放。當ACK監控到節點實例即將被釋放時,會自動觸發彈出新節點的伸縮活動。這個為了補充即將被釋放實例而彈出的實例,稱為補償實例。補償實例成功運行后,會觸發到期搶占式實例的縮容和釋放,縮容釋放策略包括cordon節點(將節點設置為不可調度)、排水節點、將節點移除等節點優雅下線處理,盡量讓到期搶占式實例節點上的業務負載平穩遷移到集群中其他節點上,避免業務受到實例到期的影響。

    說明 節點預補償的結果不會影響到期搶占式實例的回收。無論是否開啟節點預補償,到期實例仍然會在預回收的5分鐘后被回收釋放掉。
    搶占式實例節點預補償.png
  • 自定義處理行為

    在許多實際業務場景中,節點下線需要執行比一般優雅下線更多的步驟,例如即將下線的節點信息需要從注冊的DNS中心移除。結合監控與通知,此類需求建議您監控節點狀態中的InstanceExpired或者監聽InstanceToBeTerminated事件。收到節點實例到期或將被釋放消息后,即可把該節點作為即將下線處理,然后執行自定義的處理行為。關于監控搶占式實例到期狀態的具體操作,請參見查看搶占式實例到期狀態