Öğretici: Linux uygulaması dağıtma
Şunlar için geçerlidir: Azure Stack HCI 22H2 üzerinde AKS, Windows Server'da AKS
Bu öğreticide, Azure Arc tarafından etkinleştirilen AKS'deki Kubernetes kümenizde web ön ucu ve Redis veritabanı örneği içeren çok kapsayıcılı bir uygulamanın nasıl dağıtılacağı açıklanır. Ayrıca uygulamanızı test etmeyi ve ölçeklendirmeyi de öğrenirsiniz.
Bu öğreticide Kubernetes kavramları hakkında temel bilgiler edinirsiniz. Daha fazla bilgi için bkz. Kubernetes temel kavramları.
Başlamadan önce
Aşağıdaki gereksinimlerin hazır olduğunu doğrulayın:
- En az bir Linux çalışan düğümü çalışır durumda olan bir AKS kümesi.
- Kümeye erişmek için bir kubeconfig dosyası.
- AksHci PowerShell modülü yüklenir. Daha fazla bilgi için bkz . Install-AksHci.
Öğretici yordamlarını gerçekleştirdiğinizde:
- Komutları yönetici ayrıcalıklarıyla açılan bir PowerShell penceresinde çalıştırın.
- İşletim sistemine özgü iş yüklerinin uygun kapsayıcı konağına indiğinden emin olun. Kubernetes kümenizde Linux ve Windows çalışan düğümlerinin bir karışımı varsa düğüm seçicileri veya renk tonlarını ve toleransları kullanabilirsiniz. Daha fazla bilgi için bkz. düğüm seçicileri ve renk tonlarını ve toleransları kullanma.
Not
Bir ağı başka bir hedef kümeyle paylaşan bir hedef kümenin dağıtılması yük dengeleyici IP adresi çakışmalarına yol açabilir.
Aynı AksHciClusterNetwork
nesneyi paylaşan hedef kümelerde farklı bağlantı noktaları kullanan iki iş yükü dağıtırsanız IP adresi çakışmaları oluşabilir. IP adreslerinin ve bağlantı noktası eşlemelerinin HA Proxy içinde ayrılma şekli nedeniyle, yinelenen IP adreslerinin atanmasına yol açabilir. Bu durumda, siz iş yüklerinizi yeniden dağıtana kadar bir veya iki iş yükü rastgele ağ bağlantısı sorunlarıyla karşılaşabilir. İş yüklerinizi yeniden dağıttığınızda, her iş yüküne bir hizmet IP adresi atayan aynı bağlantı noktasını kullanabilir veya iş yüklerinizi farklı AksHciClusterNetwork
nesneler kullanan hedef kümelere yeniden dağıtabilirsiniz.
Uygulamayı dağıtma
Kubernetes bildirim dosyası, küme için hangi kapsayıcı görüntülerinin çalıştırıldığı gibi istenen durumu tanımlar. Bu öğreticide , Azure vote uygulamasını çalıştırmak için gereken tüm nesneleri oluşturmak için bir bildirim kullanılır. Bu bildirim iki Kubernetes dağıtımı içerir: biri örnek Azure Vote Python uygulamaları için, diğeri redis örneği için. İki Kubernetes hizmeti de oluşturulur: Redis örneği için bir iç hizmet ve Azure Vote uygulamasına İnternet'ten erişmek için bir dış hizmet.
azure-vote.yaml adlı bir dosya oluşturun ve aşağıdaki YAML tanımını kopyalayıp yapıştırın:
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
komutunu kullanarak kubectl apply
uygulamayı dağıtın ve YAML bildiriminizin adını belirtin:
kubectl apply -f azure-vote.yaml
Aşağıdaki örnek çıktı, başarıyla oluşturulan dağıtımları ve hizmetleri gösterir:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Uygulamayı test etme
Uygulama çalıştırıldığında Kubernetes hizmeti, uygulama ön ucunu İnternet'te kullanıma sunar. Bu işlemin tamamlanması birkaç dakika sürebilir.
İlerleme durumunu kubectl get service
izlemek için komutunu bağımsız değişkeniyle --watch
birlikte kullanın:
kubectl get service azure-vote-front --watch
Başlangıçta, azure-vote-front hizmetinin EXTERNAL-IP'ibeklemede olarak gösterilir:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 22m
EXTERNAL-IP adresi beklemeden gerçek bir genel IP adresine değiştiğinde, watch işlemini durdurmak kubectl
için CTRL-C tuşlarını kullanın. Aşağıdaki örnek çıktı, hizmete atanmış geçerli bir genel IP adresini gösterir:
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
Azure Vote uygulamasının çalıştığını görmek için, hizmetinizin dış IP adresine bir web tarayıcısı açın.
Uygulama podlarını ölçeklendirme
Azure Voting Uygulaması ön ucu ve Redis örneğinin tek bir çoğaltmasını oluşturduk. Kümenizdeki podların sayısını ve durumunu görmek için komutunu kullanın kubectl get
:
kubectl get pods -n default
Aşağıdaki örnek çıktıda bir ön uç podu ve bir arka uç podu gösterilmektedir:
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
azure-vote-front dağıtımında pod sayısını değiştirmek için komutunu kullanınkubectl scale
. Aşağıdaki örnekte ön uç podlarının sayısı 5'e çıkarılmaktadır:
kubectl scale --replicas=5 deployment/azure-vote-front
Ek podların oluşturulduğunu doğrulamak için yeniden çalıştırın kubectl get pods
. Yaklaşık bir dakika sonra ek podlar kümenizde kullanılabilir duruma gelir:
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
Sonraki adımlar
Kümenizi ve uygulamanızı izlemek için Azure İzleyici'yi kullanın.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Gönderin ve geri bildirimi görüntüleyin