Linux-alkalmazás üzembe helyezése
A következőkre vonatkozik: AKS on Azure Stack HCI 22H2, AKS on Windows Server
Ez az útmutató bemutatja, hogyan helyezhet üzembe egy többtárolós alkalmazást, amely webes előtér- és Redis-adatbázispéldányt tartalmaz az Azure Arc által engedélyezett AKS-ben a Kubernetes-fürtön. Azt is megtudhatja, hogyan tesztelheti és skálázhatja az alkalmazást.
Ez az útmutató feltételezi a Kubernetes-fogalmak alapszintű megértését. További információkért tekintse meg a Kubernetes alapfogalmait.
Mielőtt elkezdené
Ellenőrizze, hogy rendelkezik-e a következő előfeltételekkel:
- Egy AKS-fürt, amely legalább egy futó Linux-feldolgozó csomóponttal rendelkezik.
- Kubeconfig-fájl a fürt eléréséhez.
- Az AksHci PowerShell modul telepítve van. További információ: Install-AksHci.
Az eljárások végrehajtásakor:
- Futtassa a parancsokat egy rendszergazdai jogosultságokkal megnyitott PowerShell-ablakban.
- Győződjön meg arról, hogy az operációsrendszer-specifikus számítási feladatok a megfelelő tároló gazdagépre szállnak. Ha a Kubernetes-fürt linuxos és Windowsos feldolgozó csomópontok keverékével rendelkezik, akkor használhat csomópontválasztókat, illetve aint és toleranciákat. További információkért tekintse meg a csomópontválasztók, a fertőzöttség és a toleranciák használatát.
Feljegyzés
Ha olyan célfürtöt helyez üzembe, amely egy másik célfürttel közös hálózatot használ, terheléselosztó IP-címütközésekhez vezethet.
IP-címütközések akkor fordulhatnak elő, ha két olyan számítási feladatot helyez üzembe, amelyek különböző portokat használnak az azonos objektumot AksHciClusterNetwork
használó célfürtökben. Mivel az IP-címek és a portleképezések a HA-proxyn belül vannak lefoglalva, duplikált IP-címek hozzárendeléséhez vezethet. Ha ez történik, egy vagy mindkét számítási feladat véletlenszerű hálózati csatlakozási problémákba ütközhet, amíg újra üzembe nem helyezi a számítási feladatokat. A számítási feladatok ismételt üzembe helyezésekor használhatja ugyanazt a portot, amely minden számítási feladathoz hozzárendel egy szolgáltatás IP-címét, vagy újra üzembe helyezheti a számítási feladatokat a különböző AksHciClusterNetwork
objektumokat használó célfürtökön.
Az alkalmazás üzembe helyezése
A Kubernetes-jegyzékfájl meghatározza a fürt kívánt állapotát, például hogy mely tárolólemezképek fussanak. Ez az oktatóanyag egy jegyzék használatával hozza létre az Azure szavazási alkalmazás futtatásához szükséges összes objektumot. Ez a jegyzék két Kubernetes-üzembe helyezést tartalmaz: az egyiket a minta Azure Vote Python-alkalmazásokhoz, a másikat pedig egy Redis-példányhoz. Két Kubernetes-szolgáltatás is létrejön: egy belső szolgáltatás a Redis-példányhoz, és egy külső szolgáltatás az Azure Vote alkalmazás internetről való eléréséhez.
Hozzon létre egy azure-vote.yaml nevű fájlt, és másolja/illessze be a következő YAML-definíciót:
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: <path to image>/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
Telepítse az alkalmazást a kubectl apply
paranccsal, és adja meg a YAML-jegyzék nevét:
kubectl apply -f azure-vote.yaml
Az alábbi példakimenet a sikeresen létrehozott üzembe helyezéseket és szolgáltatásokat mutatja be:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Az alkalmazás tesztelése
Az alkalmazás futtatásakor egy Kubernetes-szolgáltatás elérhetővé teszi az alkalmazás előtérét az interneten. A folyamat eltarthat pár percig.
A folyamat figyeléséhez használja a kubectl get service
parancsot az --watch
alábbi argumentummal:
kubectl get service azure-vote-front --watch
Kezdetben az azure-vote-front szolgáltatás KÜLSŐ IP-címe függőben van:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 22m
Ha a külső IP-cím függőben lévőről tényleges nyilvános IP-címre változik, a CTRL-C billentyűkombinációval állítsa le a kubectl
figyelés folyamatát. Az alábbi példakimenet a szolgáltatáshoz rendelt érvényes nyilvános IP-címet jeleníti meg:
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
Az Azure Vote alkalmazás működés közbeni megtekintéséhez nyisson meg egy webböngészőt a szolgáltatás külső IP-címére.
Alkalmazás podok méretezése
Az Azure Voting App előtér- és Redis-példányának egyetlen replikáját hoztuk létre. A fürtön lévő podok számának és állapotának megtekintéséhez használja a kubectl get
következő parancsot:
kubectl get pods -n default
A következő példa egy előtérbeli podot és egy háttérbeli podot mutat be:
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
A podok számának módosításához használja kubectl scale
az azure-vote-front üzembe helyezést. A következő példa 5-re növeli az előtérbeli podok számát:
kubectl scale --replicas=5 deployment/azure-vote-front
Futtassa kubectl get pods
újra a további podok létrehozásának ellenőrzéséhez. Hozzávetőleg egy perc elteltével az újabb podok elérhetők a fürtön:
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
Következő lépések
A fürt és az alkalmazás monitorozása az Azure Monitor használatával