Kurz: Nasazení aplikace pro Linux
Platí pro: AKS ve Službě Azure Stack HCI 22H2, AKS na Windows Serveru
Tento kurz popisuje, jak nasadit vícekontejnerovou aplikaci, která zahrnuje webový front-end a instanci databáze Redis v clusteru Kubernetes v AKS s povolenou službou Azure Arc. Dozvíte se také, jak aplikaci testovat a škálovat.
Tento kurz předpokládá základní znalosti konceptů Kubernetes. Další informace najdete v tématu Základní koncepty Kubernetes.
Než začnete
Ověřte, že máte připravené následující požadavky:
- Cluster AKS s alespoň jedním pracovním uzlem Linuxu, který je spuštěný a spuštěný.
- Soubor kubeconfig pro přístup ke clusteru.
- Je nainstalovaný modul PowerShellu AksHci . Další informace najdete v tématu Install-AksHci.
Když provedete postupy kurzu:
- Příkazy spusťte v okně PowerShellu otevřeném s oprávněními správce.
- Ujistěte se, že úlohy specifické pro operační systém přistávají na příslušném hostiteli kontejneru. Pokud má váš cluster Kubernetes kombinaci pracovních uzlů s Linuxem a Windows, můžete použít selektory uzlů nebo tainty a tolerance. Další informace najdete v tématu Použití selektorů uzlů a taintů a tolerance.
Poznámka
Nasazení cílového clusteru, který sdílí síť s jiným cílovým clusterem, může vést ke konfliktům IP adres nástroje pro vyrovnávání zatížení.
Ke konfliktům IP adres může dojít, pokud nasadíte dvě úlohy, které používají různé porty v cílových clusterech, které sdílejí stejný AksHciClusterNetwork
objekt. Vzhledem k tomu, jak se IP adresy a mapování portů přidělují v rámci proxy vysoké dostupnosti, může to vést k přiřazení duplicitních IP adres. Pokud k tomu dojde, může u jedné nebo obou úloh dorazit k náhodným problémům s připojením k síti, dokud úlohy znovu nenasadíte. Při opětovném nasazení úloh můžete buď použít stejný port, který každé úloze přiřadí IP adresu služby, nebo můžete úlohy znovu nasadit do cílových clusterů, které používají různé AksHciClusterNetwork
objekty.
Nasazení aplikace
Soubor manifestu Kubernetes definuje požadovaný stav clusteru, například které image kontejneru se mají spustit. V tomto kurzu se pomocí manifestu vytvoří všechny objekty potřebné ke spuštění hlasovací aplikace Azure. Tento manifest zahrnuje dvě nasazení Kubernetes: jedno pro ukázkové aplikace Azure Vote Python a druhé pro instanci Redis. Vytvoří se také dvě služby Kubernetes: interní služba pro instanci Redis a externí služba pro přístup k aplikaci Azure Vote z internetu.
Create soubor s názvem azure-vote.yaml a zkopírujte nebo vložte následující definici YAML:
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-back
template:
metadata:
labels:
app: azure-vote-back
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: azure-vote-back
image: redis
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 6379
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-back
spec:
ports:
- port: 6379
selector:
app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-front
template:
metadata:
labels:
app: azure-vote-front
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: azure-vote-front
image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
env:
- name: REDIS
value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
Nasaďte aplikaci pomocí kubectl apply
příkazu a zadejte název manifestu YAML:
kubectl apply -f azure-vote.yaml
Následující příklad výstupu ukazuje nasazení a služby, které byly úspěšně vytvořeny:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Otestování aplikace
Když aplikace běží, služba Kubernetes zpřístupní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut.
Pokud chcete monitorovat průběh, použijte kubectl get service
příkaz s argumentem --watch
:
kubectl get service azure-vote-front --watch
Zpočátku se externí IP adresa služby azure-vote-front zobrazí jako čekající:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 22m
Když se externí IP adresa změní z čekající na skutečnou veřejnou IP adresu, zastavte kubectl
proces watch pomocí kombinace kláves CTRL-C. Následující příklad výstupu ukazuje platnou veřejnou IP adresu přiřazenou službě:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 24m
Pokud chcete zobrazit aplikaci Azure Vote v akci, otevřete webový prohlížeč na externí IP adresu vaší služby.
Škálování podů aplikací
Vytvořili jsme jednu repliku front-endu hlasovací aplikace Azure a instance Redis. Pokud chcete zobrazit počet a stav podů v clusteru, použijte příkaz kubectl get
:
kubectl get pods -n default
Následující příklad výstupu ukazuje jeden pod front-endu a jeden pod back-endu:
NAME READY STATUS RESTARTS AGE
azure-vote-back-6bdcb87f89-g2pqg 1/1 Running 0 25m
azure-vote-front-84c8bf64fc-cdq86 1/1 Running 0 25m
Pokud chcete změnit počet podů v nasazení azure-vote-front , použijte kubectl scale
příkaz . Následující příklad zvýší počet podů front-endu na 5:
kubectl scale --replicas=5 deployment/azure-vote-front
Spusťte kubectl get pods
znovu a ověřte, že se vytvořily další pody. Asi za minutu budou další pody dostupné ve vašem clusteru:
kubectl get pods -n default
Name READY STATUS RESTARTS AGE
azure-vote-back-6bdcb87f89-g2pqg 1/1 Running 0 31m
azure-vote-front-84c8bf64fc-cdq86 1/1 Running 0 31m
azure-vote-front-84c8bf64fc-56h64 1/1 Running 0 80s
azure-vote-front-84c8bf64fc-djkp8 1/1 Running 0 80s
azure-vote-front-84c8bf64fc-jmmvs 1/1 Running 0 80s
azure-vote-front-84c8bf64fc-znc6z 1/1 Running 0 80s
Další kroky
Monitorování clusteru a aplikace pomocí Služby Azure Monitor
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro