Uygulama geliştiricilerinin Azure Kubernetes Service (AKS) içinde kaynakları yönetmesi için en iyi yöntemler
Azure Kubernetes Service (AKS) içinde uygulama geliştirirken ve çalıştırarak göz önünde bulunduracak birkaç önemli alan vardır. Uygulama dağıtımlarınızı nasıl yönetebilirsiniz? Başarılı olmak için AKS'de uygulama geliştirirken ve çalıştırarak takip etmek için en iyi yöntemlerden bazılarını unutmayın.
Bu makale, kümenizi ve iş yüklerinizi uygulama geliştiricisi perspektifinden çalıştırmaya odaklanır. Yönetimle ilgili en iyi yöntemler hakkında bilgi için bkz. Küme (AKS)içinde yalıtım ve kaynak yönetimi için küme Azure Kubernetes Service en iyi yöntemleri. Bu makalede şunları öğrenirsiniz:
- Pod kaynak istekleri ve sınırları.
- Bridge to Kubernetes ve Visual Studio Code.
Pod kaynak isteklerini ve sınırlarını tanımlama
En iyi yöntemler kılavuzu
YAML bildirimlerinizin tüm podlarında pod isteklerini ve sınırlarını ayarlayın. AKS kümesi kaynak kotalarını kullanıyorsa ve bu değerleri tanımlayamasanız dağıtımınız reddedilir.
AKS kümesi içindeki işlem kaynaklarını yönetmek için pod isteklerini ve sınırlarını kullanın. Pod istekleri ve sınırları, Kubernetes zamanlayıcısını poda hangi işlem kaynaklarının atan programları hakkında bilgi verir.
Pod CPU/Bellek istekleri
Pod istekleri, poda düzenli olarak gereken belirli miktarda CPU ve bellek tanımlar.
Pod belirtimlerinize göre, bu istek ve sınırları yukarıdaki bilgilere göre tanımlamak en iyi yöntemdir ve çok önemlidir. Bu değerleri dahil etmeseniz Kubernetes zamanlayıcısı, uygulamalarınızı zamanlama kararlarına yardımcı olmak için gereken kaynakları hesaba katamaz.
Pod isteklerini ayarlamak için uygulamanızın performansını izleyin.
- Pod isteklerini daha fazla tahmin ediyorsanız, bir düğüm üzerinde işlem zamanlamasından dolayı uygulamanız düşürülmüş performans alabilir.
- İstekler fazla tahmin alıyorsa, uygulamanız zamanlanan zorluk derecesini artırabilir.
Pod CPU/bellek sınırları * *
Pod sınırları , Pod 'ın kullanabileceği en yüksek CPU ve bellek miktarını ayarlar.
- Yetersiz kaynaklar nedeniyle düğümler kararsız hale geldiğinde hangi yığınların sonlandırılanıyor olduğunu tanımlar. Doğru sınır kümesi olmadan, kaynak baskısı yükseltilmemiş olana kadar Pod sonlandırılacak.
- Pod, CPU sınırını düzenli aralıklarla aşacağından, Pod, CPU sınırını aşmayacak şekilde sonlandırılamaz.
Pod sınırları, Pod 'ın kaynak tüketimine ilişkin denetim kayıp olduğunu tanımlar. Sınırı aştığında Pod, sonlandırma için işaretlenir. Bu davranış, düğüm durumunu korur ve düğümü paylaşan bir etkiyi en aza indirir. Pod sınırı ayarlamamaya, belirli bir düğümdeki en yüksek kullanılabilir değere göre varsayılan değer verilmez.
Düğümlerinizin destekleyebileceğinden daha yüksek bir pod sınırı ayarlamaktan kaçının. Her AKS düğümü, çekirdek Kubernetes bileşenleri için ayarlanan bir CPU ve bellek miktarı ayırır. Uygulamanız, diğer yığınların başarıyla çalıştırılması için düğümde çok fazla kaynak kullanmayı deneyebilir.
Uygulamanızın performansını, gün veya hafta boyunca farklı zamanlarda izleyin. En yüksek talep zamanlarını belirleme ve pod sınırlarını, en fazla ihtiyaçları karşılamak için gereken kaynaklara hizalayın.
Önemli
Pod belirtimleriniz içinde, bu istekleri ve sınırları yukarıdaki bilgilere göre tanımlayın. Bu değerlerin dahil olmasının başarısız olması, Kubernetes Scheduler 'ın uygulamalarınızın zamanlama kararlarına yardımcı olması için ihtiyaç duyduğu kaynaklar için hesaplamasını önler.
Zamanlayıcı, kaynakları yetersiz olan bir düğüme bir pod yerleştiriyor, uygulama performansı düşecek. Küme yöneticileri, kaynak isteklerini ve sınırlarını ayarlamayı gerektiren bir ad alanı üzerinde kaynak kotaları ayarlamalı. Daha fazla bilgi için bkz. AKS kümelerini kaynak kotaları.
Bir CPU isteği veya sınırı tanımladığınız zaman, değer CPU birimleriyle ölçülür.
- 1.0 CPU, düğümde temel alınan bir sanal CPU çekirdeğine eşit olur.
- Aynı ölçüm GPU'lar için de kullanılır.
- Milicore cinsinden ölçülen kesirleri tanımlayabilirsiniz. Örneğin, 100m, temel alınan bir vCPU çekirdeğinin 0,1'idir.
Tek bir NGINX podu için aşağıdaki temel örnekte, pod 100 m CPU süresi ve 128Mi bellek isteğinde bulunuyor. Pod için kaynak sınırları 250 milyon CPU ve 256Mi belleğe ayarlanır:
kind: Pod
apiVersion: v1
metadata:
name: mypod
spec:
containers:
- name: mypod
image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
Kaynak ölçümleri ve atamaları hakkında daha fazla bilgi için bkz. Kapsayıcılar için işlem kaynaklarını yönetme.
AKS kümesine karşı uygulama geliştirme ve hata ayıklama
En iyi yöntemler kılavuzu
Geliştirme ekiplerinin bir AKS kümesine dağıtması ve hata ayıklaması için Bridge to Kubernetes.
Bu Bridge to Kubernetes doğrudan aks kümesinde uygulama geliştirebilir, hata ayıklar ve test etmek için kullanılabilirsiniz. Ekip içindeki geliştiriciler, uygulama yaşam döngüsü boyunca derleme ve test için işbirliği yapıyor. Visual Studio veya Visual Studio Code gibi mevcut araçları Bridge to Kubernetes devam Bridge to Kubernetes.
Tümleşik geliştirme ve test işlemini Bridge to Kubernetes, gibi yerel test ortamlarına olan ihtiyacı azaltır. Bunun yerine, güvenli ve yalıtılmış kümeler bile olmak için AKS kümesi geliştirir ve test edilirsiniz.
Not
Bridge to Kubernetes, Linux pod'ları ve düğümlerde çalıştırlanan uygulamalarla kullanılmak üzere tasarlanmıştır.
Kubernetes Visual Studio Code (VS Code) uzantısını kullanma
En iyi yöntemler kılavuzu
YAML bildirimleri VS Code Kubernetes için VS Code uzantısını yükleyin ve kullanın. Tümleşik dağıtım çözümü uzantısını da kullanabilirsiniz; Bu, AKS kümesiyle sık sık etkileşimde bulunan uygulama sahiplerine yardımcı olabilir.
Kubernetes için Visual Studio Code uzantısı , aks 'e uygulama geliştirmenize ve dağıtmanıza yardımcı olur. Uzantı şunları sağlar:
Kubernetes kaynakları, HELI grafikleri ve şablonlar için IntelliSense.
VS Code içinden Kubernetes kaynakları için tarama, dağıtma ve düzenleme özellikleri.
Pod belirtimlerinde ayarlanan kaynak istekleri veya sınırlar için bir IntelliSense denetimi:

Sonraki adımlar
Bu makalede, küme operatörü perspektifinden kümenizi ve iş yüklerinizi çalıştırma konusunda odaklanılmıştır. En iyi yönetim uygulamaları hakkında daha fazla bilgi için bkz. Azure Kubernetes Service 'te (AKS) yalıtım ve kaynak yönetimi Için küme işletmeni en iyi uygulamaları.
Bu en iyi uygulamalardan bazılarını uygulamak için aşağıdaki makalelere bakın: