Kubernetes 1.18 ile 1,24 sürümleri, Elastic Container Instance (ECI) içindeki elastik zamanlama özelliğini korur. Mayıs 2023'ten itibaren Container Service for Kubernetes (ACK), Kubernetes v1.24 veya sonraki sürümleri çalıştıran kümeler için bu özelliğin bakımını durdurmuştur. Bunun yerine aşağıdaki alternatiflerden birini kullanın:
ECS örnekleri ve elastik konteyner örneklerine göre kaynak tahsisi yapılandırma: Kubernetes yerel taint'ler, tolerasyonlar ve düğüm afinite özelliklerini kullanarak yalnızca ECI, yalnızca ECS veya ECS öncelikli zamanlamayı zorlayın.
Öncelik tabanlı kaynak zamanlamayı yapılandırma: Abonelik tabanlı ECS, kullandıkça öde ECS ve ECI arasında öncelik tabanlı zamanlama, ters sırada ölçek küçültme ve müdahalesiz pod geçişi gibi gelişmiş stratejiler için ResourcePolicy kullanın.
Sanal düğüm zamanlama çözümlerinin karşılaştırması için bkz. Bir pod'u sanal düğüme zamanlama.
Elastic Container Instance tabanlı zamanlama, pod meta verilerine tek bir ek açıklama (annotation) ekleyerek pod'larınızın hangi hesaplama altyapısında çalışacağını kontrol etmenizi sağlar. Ek açıklama değerine bağlı olarak pod'lar yalnızca Elastic Compute Service (ECS) düğümlerinde, yalnızca elastik konteyner örneklerinde veya kümedeki ECS kapasitesi tükendiğinde yalnızca elastik konteyner örneklerinde çalışır.
Ön Koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Bir ACK yönetilen Pro kümesi
-
Kubernetes sürümünüz için desteklenen bir zamanlayıcı sürümü. Zamanlayıcı sürümleriyle ilgili ayrıntılar için bkz. kube-scheduler.
Kubernetes sürümü Minimum zamanlayıcı sürümü 1.18 v1.18-ack-3.0 1.20 v1.20.4-ack-4.0 1.22 v1.22.3-ack-1.0 1.24 v1.24.3-ack-2.0 Kümeye dağıtılan
ack-virtual-nodebileşeni. Kurulum talimatları için bkz. Sanal düğümler aracılığıyla pod'ları elastik konteyner örneklerine zamanlama.
Zamanlama Modunu Yapılandırma
Pod'un metadata bölümüne alibabacloud.com/burst-resource ek açıklamasını ekleyin. Bir Deployment için ek açıklamayı spec.template.metadata altına yerleştirin.
Aşağıdaki tabloda her bir ek açıklama değerinin zamanlama davranışını nasıl etkilediği özetlenmektedir:
| Ek açıklama değeri | Zamanlama davranışı | Sanal düğüm gerektirir mi? | Şu durumda başarısız olur |
|---|---|---|---|
| (ayarlanmamış) | Yalnızca kümedeki mevcut ECS düğümlerini kullanır (varsayılan) | Hayır | — |
eci |
Önce ECS düğümlerini kullanır; ECS kapasitesi yetersiz kaldığında ECI'ye geçer | — | — |
eci_only |
Yalnızca ECI kullanır; ECS düğümleri asla kullanılmaz | Evet | Kümede sanal düğüm yoksa |
| Diğer herhangi bir değer | — | — | Her zaman başarısız olur; geçersiz değer |
alibabacloud.com/burst-resource: eci ile alibabacloud.com/fluid-sidecar-target: eci çakışır. alibabacloud.com/fluid-sidecar-target kullanım örnekleri için bkz. Serverless cloud computing'de veri erişimini hızlandırma ve ilgili konular.
Ek Açıklamayı Uygulama
-
Aşağıdaki içeriğe sahip
nginx-deployment.yamladlı bir dosya oluşturun:apiVersion: apps/v1 kind: Deployment metadata: name: nginx labels: app: nginx spec: replicas: 4 selector: matchLabels: app: nginx template: metadata: name: nginx annotations: alibabacloud.com/burst-resource: eci # Fall back to ECI when ECS capacity is insufficient labels: app: nginx spec: containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 resources: limits: cpu: 2 requests: cpu: 2 -
Manifest dosyasını uygulayın:
kubectl apply -f nginx-deployment.yaml
Başarısızlık Senaryoları
Pod zamanlaması aşağıdaki durumlarda başarısız olur:
Ek açıklama değeri
eciveyaeci_onlydeğilse. PodStatus mesajırequesttypemustbeeci,eci_onlyorecsolur (Kubernetes v1.22.15 ve v1.24.6).Ek açıklama değeri
eci_onlyise ancak kümede sanal düğüm yoksa. PodStatus mesajıdoesn'tfitecitype:eci_onlyolur (Kubernetes v1.22.15 ve v1.24.6).