Metodtips för programutvecklare för att hantera resurser i Azure Kubernetes Service (AKS)
När du utvecklar och kör program i Azure Kubernetes Service (AKS) finns det några viktiga områden att tänka på. Hur du hanterar dina programdistributioner kan påverka slutanvändarupplevelsen av tjänster som du tillhandahåller negativt. För att lyckas bör du komma ihåg några metodtips som du kan följa när du utvecklar och kör program i AKS.
Den här artikeln fokuserar på att köra ditt kluster och dina arbetsbelastningar ur ett programutvecklingsperspektiv. Information om administrativa metodtips finns i Metodtips för klusteroperator för isolering och resurshantering i Azure Kubernetes Service (AKS). I den här artikeln lär du dig:
- Poddresursbegäranden och begränsningar.
- Sätt att utveckla och distribuera program med Bridge to Kubernetes och Visual Studio Code.
Definiera poddresursbegäranden och gränser
Vägledning och metodtips
Ange poddbegäranden och begränsningar för alla poddar i dina YAML-manifest. Om AKS-klustret använder resurskvoter och du inte definierar dessa värden kan distributionen avvisas.
Använd poddbegäranden och begränsningar för att hantera beräkningsresurserna i ett AKS-kluster. Poddbegäranden och begränsningar informerar Kubernetes-schemaläggaren vilka beräkningsresurser som ska tilldelas till en podd.
Podd-CPU/minnesbegäranden
Poddbegäranden definierar en viss mängd cpu och minne som podden behöver regelbundet.
I poddspecifikationerna är det bästa praxis och mycket viktigt att definiera dessa begäranden och begränsningar baserat på informationen ovan. Om du inte inkluderar dessa värden kan Kubernetes-schemaläggaren inte ta hänsyn till de resurser som dina program behöver för att underlätta schemaläggningsbesluten.
Övervaka programmets prestanda för att justera poddbegäranden.
- Om du underskattar poddbegäranden kan programmet få försämrad prestanda på grund av överschemaläggning av en nod.
- Om begäranden överbeskattas kan det ha blivit allt svårare att schemalägga programmet.
Gränser för podd-CPU/minne**
Poddbegränsningar anger den maximala mängden cpu och minne som en podd kan använda.
- Minnesgränser definierar vilka poddar som ska tas bort när noderna är instabila på grund av otillräckliga resurser. Utan rätt gränser kommer poddar att tas bort tills resurstrycket har lyfts.
- Även om en podd kan överskrida CPU-gränsen med jämna mellanrum, kommer podden inte att avlivas för att den överskrider CPU-gränsen.
Poddgränser definierar när en podd har förlorat kontrollen över resursförbrukningen. När den överskrider gränsen markeras podden för avlivning. Det här beteendet upprätthåller nodhälsan och minimerar påverkan på poddar som delar noden. Om du inte anger en poddgräns får den som standard det högsta tillgängliga värdet på en viss nod.
Undvik att ange en poddgräns som är högre än vad noderna har stöd för. Varje AKS-nod reserverar en viss mängd processor och minne för Kubernetes-kärnkomponenterna. Programmet kan försöka använda för många resurser på noden för att andra poddar ska kunna köras.
Övervaka programmets prestanda vid olika tidpunkter under dagen eller veckan. Fastställ tider med hög efterfrågan och justera poddgränserna till de resurser som krävs för att uppfylla maximalt behov.
Viktigt
I dina podspecifikationer definierar du dessa begäranden och begränsningar baserat på informationen ovan. Om dessa värden inte tas med förhindrar Kubernetes-schemaläggaren från att redovisa resurser som dina program behöver för att underlätta schemaläggningsbesluten.
Om schemaläggaren placerar en podd på en nod med otillräckliga resurser degraderas programmets prestanda. Klusteradministratörer måste ange resurskvoter i ett namnområde som kräver att du anger resursbegäranden och begränsningar. Mer information finns i resurskvoter i AKS-kluster.
När du definierar en CPU-begäran eller -gräns mäts värdet i CPU-enheter.
- 1,0 CPU motsvarar en underliggande virtuell processorkärna på noden.
- Samma mått används för GPU:er.
- Du kan definiera bråktal som mäts icores. 100 m är till exempel 0,1 av en underliggande vCPU-kärna.
I följande grundläggande exempel för en enskild NGINX-podd begär podden 100 m CPU-tid och 128Mi minne. Resursgränserna för podden är inställda på 250 m CPU och 256Mi minne:
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
Mer information om resursmått och tilldelningar finns i Hantera beräkningsresurser för containrar.
Utveckla och felsöka program mot ett AKS-kluster
Vägledning och metodtips
Utvecklingsteam bör distribuera och felsöka mot ett AKS-kluster med Bridge to Kubernetes.
Med Bridge to Kubernetes kan du utveckla, felsöka och testa program direkt mot ett AKS-kluster. Utvecklare i ett team samarbetar för att skapa och testa programmets livscykel. Du kan fortsätta att använda befintliga verktyg som Visual Studio eller Visual Studio Code med tillägget Bridge to Kubernetes.
Med integrerad utvecklings- och testprocess med Bridge to Kubernetes minskar behovet av lokala testmiljöer som minikube. I stället utvecklar och testar du mot ett AKS-kluster, även skyddade och isolerade kluster.
Anteckning
Bridge to Kubernetes är avsett att användas med program som körs på Linux-poddar och -noder.
Använda tillägget Visual Studio Code (VS Code) för Kubernetes
Vägledning och metodtips
Installera och använd VS Code-tillägget för Kubernetes när du skriver YAML-manifest. Du kan också använda tillägget för en integrerad distributionslösning, vilket kan hjälpa programägare som sällan interagerar med AKS-klustret.
Tillägget Visual Studio Code för Kubernetes hjälper dig att utveckla och distribuera program till AKS. Tillägget innehåller:
IntelliSense för Kubernetes-resurser, Helm-diagram och mallar.
Bläddra, distribuera och redigera funktioner för Kubernetes-resurser i VS Code.
En IntelliSense-kontroll för resursbegäranden eller begränsningar som anges i poddspecifikationerna:

Nästa steg
Den här artikeln fokuserar på hur du kör ditt kluster och dina arbetsbelastningar ur ett klusteroperatorperspektiv. Information om administrativa metodtips finns i Metodtips för klusteroperatör för isolering och resurshantering i Azure Kubernetes Service (AKS).
Om du vill implementera några av dessa metodtips kan du läsa följande artiklar: