esemény
Intelligens alkalmazások létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációEzt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
Az Azure Kubernetes Service (AKS) egy felügyelt Kubernetes-szolgáltatás, amely lehetővé teszi a fürtök gyors üzembe helyezését és kezelését. Ebben a rövid útmutatóban a következőket hajtja végre:
Megjegyzés
Az AKS-fürtök gyors üzembe helyezésének megkezdéséhez ez a cikk a csak kiértékelési célokra alapértelmezett beállításokkal rendelkező fürtök üzembe helyezésének lépéseit tartalmazza. Az éles üzemre kész fürtök üzembe helyezése előtt javasoljuk, hogy ismerkedjen meg az alapszintű referenciaarchitektúrával, és gondolja át, hogyan igazodik az üzleti követelményekhez.
Megjegyzés
Az Azure Linux-csomópontkészlet mostantól általánosan elérhető (GA). Az előnyökről és az üzembe helyezés lépéseiről az AKS-hez készült Azure Linux Container Host bemutatása című témakörben olvashat.
Először jelentkezzen be az Azure-fiókjába, és hitelesítse magát a következő szakaszban ismertetett módszerek egyikével.
A Terraform csak az Azure CLI-vel támogatja az Azure-ba történő hitelesítést. Az Azure PowerShell használatával történő hitelesítés nem támogatott. Ezért bár használhatja az Azure PowerShell-modult a Terraform-munka során, először hitelesítenie kell magát az Azure-ban.
Megjegyzés
A cikk mintakódja az Azure Terraform GitHub-adattárban található. Megtekintheti a Terraform aktuális és korábbi verzióinak teszteredményeit tartalmazó naplófájlt.
Hozzon létre egy könyvtárat, amellyel tesztelheti a Terraform-mintakódot, és az aktuális könyvtárként használhatja.
Hozzon létre egy elnevezett providers.tf
fájlt, és szúrja be a következő kódot:
terraform {
required_version = ">=1.0"
required_providers {
azapi = {
source = "azure/azapi"
version = "~>1.5"
}
azurerm = {
source = "hashicorp/azurerm"
version = "~>3.0"
}
random = {
source = "hashicorp/random"
version = "~>3.0"
}
time = {
source = "hashicorp/time"
version = "0.9.1"
}
}
}
provider "azurerm" {
features {}
}
Hozzon létre egy elnevezett ssh.tf
fájlt, és szúrja be a következő kódot:
resource "random_pet" "ssh_key_name" {
prefix = "ssh"
separator = ""
}
resource "azapi_resource_action" "ssh_public_key_gen" {
type = "Microsoft.Compute/sshPublicKeys@2022-11-01"
resource_id = azapi_resource.ssh_public_key.id
action = "generateKeyPair"
method = "POST"
response_export_values = ["publicKey", "privateKey"]
}
resource "azapi_resource" "ssh_public_key" {
type = "Microsoft.Compute/sshPublicKeys@2022-11-01"
name = random_pet.ssh_key_name.id
location = azurerm_resource_group.rg.location
parent_id = azurerm_resource_group.rg.id
}
output "key_data" {
value = azapi_resource_action.ssh_public_key_gen.output.publicKey
}
Hozzon létre egy elnevezett main.tf
fájlt, és szúrja be a következő kódot:
# Generate random resource group name
resource "random_pet" "rg_name" {
prefix = var.resource_group_name_prefix
}
resource "azurerm_resource_group" "rg" {
location = var.resource_group_location
name = random_pet.rg_name.id
}
resource "random_pet" "azurerm_kubernetes_cluster_name" {
prefix = "cluster"
}
resource "random_pet" "azurerm_kubernetes_cluster_dns_prefix" {
prefix = "dns"
}
resource "azurerm_kubernetes_cluster" "k8s" {
location = azurerm_resource_group.rg.location
name = random_pet.azurerm_kubernetes_cluster_name.id
resource_group_name = azurerm_resource_group.rg.name
dns_prefix = random_pet.azurerm_kubernetes_cluster_dns_prefix.id
identity {
type = "SystemAssigned"
}
default_node_pool {
name = "agentpool"
vm_size = "Standard_D2_v2"
node_count = var.node_count
}
linux_profile {
admin_username = var.username
ssh_key {
key_data = azapi_resource_action.ssh_public_key_gen.output.publicKey
}
}
network_profile {
network_plugin = "kubenet"
load_balancer_sku = "standard"
}
}
Hozzon létre egy elnevezett variables.tf
fájlt, és szúrja be a következő kódot:
variable "resource_group_location" {
type = string
default = "eastus"
description = "Location of the resource group."
}
variable "resource_group_name_prefix" {
type = string
default = "rg"
description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
}
variable "node_count" {
type = number
description = "The initial quantity of nodes for the node pool."
default = 3
}
variable "msi_id" {
type = string
description = "The Managed Service Identity ID. Set this value if you're running this example using Managed Identity as the authentication method."
default = null
}
variable "username" {
type = string
description = "The admin username for the new cluster."
default = "azureadmin"
}
Hozzon létre egy elnevezett outputs.tf
fájlt, és szúrja be a következő kódot:
output "resource_group_name" {
value = azurerm_resource_group.rg.name
}
output "kubernetes_cluster_name" {
value = azurerm_kubernetes_cluster.k8s.name
}
output "client_certificate" {
value = azurerm_kubernetes_cluster.k8s.kube_config[0].client_certificate
sensitive = true
}
output "client_key" {
value = azurerm_kubernetes_cluster.k8s.kube_config[0].client_key
sensitive = true
}
output "cluster_ca_certificate" {
value = azurerm_kubernetes_cluster.k8s.kube_config[0].cluster_ca_certificate
sensitive = true
}
output "cluster_password" {
value = azurerm_kubernetes_cluster.k8s.kube_config[0].password
sensitive = true
}
output "cluster_username" {
value = azurerm_kubernetes_cluster.k8s.kube_config[0].username
sensitive = true
}
output "host" {
value = azurerm_kubernetes_cluster.k8s.kube_config[0].host
sensitive = true
}
output "kube_config" {
value = azurerm_kubernetes_cluster.k8s.kube_config_raw
sensitive = true
}
Futtassa a Terraform init parancsot a Terraform üzembe helyezésének inicializálásához. Ez a parancs letölti az Azure-erőforrások kezeléséhez szükséges Azure-szolgáltatót.
terraform init -upgrade
Főbb pontok:
-upgrade
paraméter frissíti a szükséges szolgáltatói beépülő modulokat a legújabb verzióra, amely megfelel a konfiguráció verziókorlátozásainak.Végrehajtási terv létrehozásához futtassa a Terraform-tervet .
terraform plan -out main.tfplan
Főbb pontok:
terraform plan
parancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosítanák a tényleges erőforrásokat.-out
paraméter lehetővé teszi a terv kimeneti fájljának megadását. -out
A paraméter használatával biztosítható, hogy a vizsgált terv pontosan az alkalmazott legyen.A terraform futtatásával alkalmazza a végrehajtási tervet a felhőinfrastruktúrára.
terraform apply main.tfplan
Főbb pontok:
terraform apply
feltételezi, hogy korábban futtatott terraform plan -out main.tfplan
.-out
paraméterhez, használja ugyanazt a fájlnevet a hívásban terraform apply
.-out
, hívjon terraform apply
paraméterek nélkül.Kérje le az Azure-erőforráscsoport nevét az alábbi paranccsal.
resource_group_name=$(terraform output -raw resource_group_name)
Az új Kubernetes-fürt nevének megjelenítése az az aks list paranccsal.
az aks list \
--resource-group $resource_group_name \
--query "[].{\"K8s cluster name\":name}" \
--output table
Kérje le a Kubernetes-konfigurációt a Terraform állapotából, és tárolja egy olyan fájlban, amely kubectl
az alábbi paranccsal olvasható.
echo "$(terraform output kube_config)" > ./azurek8s
Ellenőrizze, hogy az előző parancs nem adott hozzá ASCII EOT-karaktert az alábbi paranccsal.
cat ./azurek8s
Főbb pontok:
EOT
végén látható<< EOT
, távolítsa el ezeket a karaktereket a fájlból. Ellenkező esetben a következő hibaüzenet jelenhet meg: error: error loading config file "./azurek8s": yaml: line 2: mapping values are not allowed in this context
Állítson be egy környezeti változót, hogy kubectl
az alábbi paranccsal a megfelelő konfigurációt vegye fel.
export KUBECONFIG=./azurek8s
A parancs használatával kubectl get nodes
ellenőrizze a fürt állapotát.
kubectl get nodes
Főbb pontok:
Az alkalmazás üzembe helyezéséhez egy jegyzékfájl használatával hozza létre az AKS Store-alkalmazás futtatásához szükséges összes objektumot. A Kubernetes-jegyzékfájl meghatározza a fürt kívánt állapotát, például hogy mely tárolólemezképeket kell futtatni. A jegyzék a következő Kubernetes-üzemelő példányokat és szolgáltatásokat tartalmazza:
Megjegyzés
Nem javasoljuk az állapotalapú tárolók( például a Rabbit MQ) futtatását az éles környezetben tartós tárolás nélkül. Ezeket itt az egyszerűség kedvéért használjuk, de olyan felügyelt szolgáltatások használatát javasoljuk, mint az Azure CosmosDB vagy az Azure Service Bus.
Hozzon létre egy fájlt, aks-store-quickstart.yaml
és másolja a következő jegyzékbe:
apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq
spec:
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: rabbitmq
image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine
ports:
- containerPort: 5672
name: rabbitmq-amqp
- containerPort: 15672
name: rabbitmq-http
env:
- name: RABBITMQ_DEFAULT_USER
value: "username"
- name: RABBITMQ_DEFAULT_PASS
value: "password"
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
volumeMounts:
- name: rabbitmq-enabled-plugins
mountPath: /etc/rabbitmq/enabled_plugins
subPath: enabled_plugins
volumes:
- name: rabbitmq-enabled-plugins
configMap:
name: rabbitmq-enabled-plugins
items:
- key: rabbitmq_enabled_plugins
path: enabled_plugins
---
apiVersion: v1
data:
rabbitmq_enabled_plugins: |
[rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0].
kind: ConfigMap
metadata:
name: rabbitmq-enabled-plugins
---
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
spec:
selector:
app: rabbitmq
ports:
- name: rabbitmq-amqp
port: 5672
targetPort: 5672
- name: rabbitmq-http
port: 15672
targetPort: 15672
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: order-service
spec:
replicas: 1
selector:
matchLabels:
app: order-service
template:
metadata:
labels:
app: order-service
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: order-service
image: ghcr.io/azure-samples/aks-store-demo/order-service:latest
ports:
- containerPort: 3000
env:
- name: ORDER_QUEUE_HOSTNAME
value: "rabbitmq"
- name: ORDER_QUEUE_PORT
value: "5672"
- name: ORDER_QUEUE_USERNAME
value: "username"
- name: ORDER_QUEUE_PASSWORD
value: "password"
- name: ORDER_QUEUE_NAME
value: "orders"
- name: FASTIFY_ADDRESS
value: "0.0.0.0"
resources:
requests:
cpu: 1m
memory: 50Mi
limits:
cpu: 75m
memory: 128Mi
initContainers:
- name: wait-for-rabbitmq
image: busybox
command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;']
resources:
requests:
cpu: 1m
memory: 50Mi
limits:
cpu: 75m
memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
name: order-service
spec:
type: ClusterIP
ports:
- name: http
port: 3000
targetPort: 3000
selector:
app: order-service
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: product-service
spec:
replicas: 1
selector:
matchLabels:
app: product-service
template:
metadata:
labels:
app: product-service
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: product-service
image: ghcr.io/azure-samples/aks-store-demo/product-service:latest
ports:
- containerPort: 3002
resources:
requests:
cpu: 1m
memory: 1Mi
limits:
cpu: 1m
memory: 7Mi
---
apiVersion: v1
kind: Service
metadata:
name: product-service
spec:
type: ClusterIP
ports:
- name: http
port: 3002
targetPort: 3002
selector:
app: product-service
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: store-front
spec:
replicas: 1
selector:
matchLabels:
app: store-front
template:
metadata:
labels:
app: store-front
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: store-front
image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
ports:
- containerPort: 8080
name: store-front
env:
- name: VUE_APP_ORDER_SERVICE_URL
value: "http://order-service:3000/"
- name: VUE_APP_PRODUCT_SERVICE_URL
value: "http://product-service:3002/"
resources:
requests:
cpu: 1m
memory: 200Mi
limits:
cpu: 1000m
memory: 512Mi
---
apiVersion: v1
kind: Service
metadata:
name: store-front
spec:
ports:
- port: 80
targetPort: 8080
selector:
app: store-front
type: LoadBalancer
A YAML-jegyzékfájlok lebontásához tekintse meg az üzembe helyezéseket és a YAML-jegyzékeket.
Ha helyileg hozza létre és menti a YAML-fájlt, feltöltheti a jegyzékfájlt az alapértelmezett könyvtárba a CloudShellben a Fájlok feltöltése/letöltése gombra kattintva, majd kiválasztva a fájlt a helyi fájlrendszerből.
Telepítse az alkalmazást a kubectl apply
paranccsal, és adja meg a YAML-jegyzék nevét.
kubectl apply -f aks-store-quickstart.yaml
Az alábbi példakimenet az üzemelő példányokat és szolgáltatásokat mutatja be:
deployment.apps/rabbitmq created
service/rabbitmq created
deployment.apps/order-service created
service/order-service created
deployment.apps/product-service created
service/product-service created
deployment.apps/store-front created
service/store-front created
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.
Ellenőrizze az üzembe helyezett podok állapotát a kubectl get pods
paranccsal. Az összes podot a folytatás előtt készítse Running
el.
kubectl get pods
Ellenőrizze, hogy van-e nyilvános IP-cím az áruházi előtéralkalmazáshoz. A folyamat figyelése az kubectl get service
argumentumot tartalmazó paranccsal --watch
.
kubectl get service store-front --watch
A szolgáltatás KÜLSŐ-IP-kimenete store-front
kezdetben függőben lévőként jelenik meg:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4m
Ha a külső IP-cím függőben lévőről tényleges nyilvános IP-címre változik, állítsa CTRL-C
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
store-front LoadBalancer 10.0.100.10 20.62.159.19 80:30025/TCP 4h5m
Nyisson meg egy webböngészőt a szolgáltatás külső IP-címére az Azure Store-alkalmazás működés közbeni megtekintéséhez.
Ha már nincs szüksége a Terraformon keresztül létrehozott erőforrásokra, hajtsa végre az alábbi lépéseket:
Futtassa a Terraform-tervet , és adja meg a jelölőt destroy
.
terraform plan -destroy -out main.destroy.tfplan
Főbb pontok:
terraform plan
parancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosítanák a tényleges erőforrásokat.-out
paraméter lehetővé teszi a terv kimeneti fájljának megadását. -out
A paraméter használatával biztosítható, hogy a vizsgált terv pontosan az alkalmazott legyen.A végrehajtási terv alkalmazásához futtassa a terraformát .
terraform apply main.destroy.tfplan
Kérje le a szolgáltatásnév azonosítóját az alábbi paranccsal.
sp=$(terraform output -raw sp)
Törölje a szolgáltatásnevet az az ad sp delete paranccsal.
az ad sp delete --id $sp
Az Azure Developer CLI lehetővé teszi a minták gyors letöltését az Azure-Samples adattárból. Rövid útmutatónkban letölti az aks-store-demo
alkalmazást. Az általános használati esetekről további információt az áttekintésben azd
talál.
Klónozza az AKS-tároló demósablonját az Azure-Samples adattárból a azd init
paraméterrel rendelkező --template
paranccsal.
azd init --template Azure-Samples/aks-store-demo
Adjon meg egy olyan környezetnevet a projektnek, amely csak alfanumerikus karaktereket és kötőjeleket használ, például aks-terraform-1.
Enter a new environment name: aks-terraform-1
A azd
sablon tartalmazza a szolgáltatások létrehozásához szükséges összes kódot, de be kell jelentkeznie az Azure-fiókjába az alkalmazás AKS-en való üzemeltetéséhez.
Jelentkezzen be a fiókjába a azd auth login
paranccsal.
azd auth login
Másolja ki a kimenetben megjelenő eszközkódot, és nyomja le az Enter billentyűt a bejelentkezéshez.
Start by copying the next code: XXXXXXXXX
Then press enter and continue to log in from your browser...
Fontos
Ha hálózaton kívüli virtuális gépet vagy GitHub Codespace-t használ, bizonyos Azure-biztonsági szabályzatok ütközéseket okoznak a bejelentkezéshez azd auth login
. Ha itt problémát tapasztal, kövesse a megadott azd hitelesítési áthidaló megoldást, amely magában foglalja a curl
localhost URL-címre irányuló kérés használatát, amelyre a futtatás azd auth login
után átirányított.
Hitelesítés a szervezet bejelentkezési lapján található hitelesítő adataival.
Győződjön meg arról, hogy az Azure CLI-ből próbál csatlakozni.
Ellenőrizze az "Eszközkód hitelesítése befejeződött. Be van jelentkezve az Azure-ba." ekkor megjelenik az eredeti terminálban.
Waiting for you to complete authentication in the browser...
Device code authentication completed.
Logged in to Azure.
Ehhez a kerülő megoldáshoz telepítenie kell az Azure CLI-t .
Nyisson meg egy terminálablakot, és jelentkezzen be az Azure CLI-vel a az login
paraméter beállításával --scope
https://graph.microsoft.com/.default
.
az login --scope https://graph.microsoft.com/.default
A böngésző hozzáférési jogkivonatának létrehozásához egy új lapon lévő hitelesítési lapra kell átirányítani, ahogyan az alábbi példában látható:
https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?clientid=<your_client_id>.
Másolja ki annak a weblapnak a localhost URL-címét, amely a bejelentkezés azd auth login
után érkezett.
Egy új terminálablakban a következő curl
kéréssel jelentkezzen be. Ügyeljen arra, hogy a helyőrzőt <localhost>
cserélje le az előző lépésben másolt localhost URL-címre.
curl <localhost>
A sikeres bejelentkezés egy HTML-weblapot ad ki, ahogy az a következő példában is látható:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="refresh" content="60;url=https://docs.microsoft.com/cli/azure/">
<title>Login successfully</title>
<style>
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
code {
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
display: inline-block;
background-color: rgb(242, 242, 242);
padding: 12px 16px;
margin: 8px 0px;
}
</style>
</head>
<body>
<h3>You have logged into Microsoft Azure!</h3>
<p>You can close this window, or we will redirect you to the <a href="https://docs.microsoft.com/cli/azure/">Azure CLI documentation</a> in 1 minute.</p>
<h3>Announcements</h3>
<p>[Windows only] Azure CLI is collecting feedback on using the <a href="https://learn.microsoft.com/windows/uwp/security/web-account-manager">Web Account Manager</a> (WAM) broker for the login experience.</p>
<p>You may opt-in to use WAM by running the following commands:</p>
<code>
az config set core.allow_broker=true<br>
az account clear<br>
az login
</code>
</body>
</html>
Zárja be az aktuális terminált, és nyissa meg az eredeti terminált. Meg kell jelennie az előfizetések JSON-listájának.
Másolja ki a id
használni kívánt előfizetés mezőjét.
Állítsa be az előfizetést a az account set
paranccsal.
az account set --subscription <subscription_id>
Az alkalmazás üzembe helyezéséhez a azd up
paranccsal hozza létre az AKS Store-alkalmazás futtatásához szükséges összes objektumot.
azure.yaml
fájlok meghatározzák a fürt kívánt állapotát, például hogy mely tárolólemezképeket kell lekérni, és az alábbi Kubernetes-telepítéseket és -szolgáltatásokat tartalmazzák:Megjegyzés
Nem javasoljuk az állapotalapú tárolók( például a Rabbit MQ) futtatását az éles környezetben tartós tárolás nélkül. Ezeket itt az egyszerűség kedvéért használjuk, de ajánlott felügyelt szolgáltatásokat használni, például az Azure Cosmos DB-t vagy az Azure Service Bust.
A azd
rövid útmutató sablonja létrehoz egy új erőforráscsoportot egy AKS-fürttel és egy Azure Key Vaulttal. A kulcstartó tárolja az ügyfél titkos kulcsait, és futtatja a szolgáltatásokat a pets
névtérben.
Hozza létre az összes alkalmazás-erőforrást a azd up
paranccsal.
azd up
azd up
Futtatja a mappa összes horgát az azd-hooks
alkalmazásszolgáltatások előregisztrációjához, kiépítéséhez és üzembe helyezéséhez.
A horgok testreszabásával egyéni kódot adhat hozzá a azd
munkafolyamat szakaszaihoz. További információ: a azd
horgok referenciája .
Válasszon ki egy Azure-előfizetést a számlázási használathoz.
? Select an Azure Subscription to use: [Use arrows to move, type to filter]
> 1. My Azure Subscription (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
Válasszon ki egy régiót, amelyben üzembe szeretné helyezni az alkalmazást.
Select an Azure location to use: [Use arrows to move, type to filter]
1. (South America) Brazil Southeast (brazilsoutheast)
2. (US) Central US (centralus)
3. (US) East US (eastus)
> 43. (US) East US 2 (eastus2)
4. (US) East US STG (eastusstg)
5. (US) North Central US (northcentralus)
6. (US) South Central US (southcentralus)
azd
automatikusan futtatja az elő- és a postprovision-horgokat az alkalmazás erőforrásainak létrehozásához. A folyamat eltarthat pár percig. Ha elkészült, az alábbi példához hasonló kimenetnek kell megjelennie:
SUCCESS: Your workflow to provision and deploy to Azure completed in 9 minutes 40 seconds.
Az Azure Developer-sablonban a /infra/terraform
mappa tartalmazza a Terraform-csomag létrehozásához használt összes kódot.
A Terraform üzembe helyezi és futtatja a parancsokat terraform apply
a kiépítési azd
lépés részeként. Ha elkészült, az alábbi példához hasonló kimenetnek kell megjelennie:
Plan: 5 to add, 0 to change, 0 to destroy.
...
Saved the plan to: /workspaces/aks-store-demo/.azure/aks-terraform-azd/infra/terraform/main.tfplan
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.
Állítsa be a névteret bemutató névtérként pets
a kubectl set-context
parancs használatával.
kubectl config set-context --current --namespace=pets
Ellenőrizze az üzembe helyezett podok állapotát a kubectl get pods
paranccsal. Győződjön meg arról, hogy az összes pod a folytatás előtt van Running
.
kubectl get pods
Ellenőrizze, hogy van-e nyilvános IP-cím az áruházi előtéralkalmazáshoz, és figyelje az előrehaladást az kubectl get service
--watch
argumentumot tartalmazó paranccsal.
kubectl get service store-front --watch
A szolgáltatás KÜLSŐ-IP-kimenete store-front
kezdetben függőben lévőként jelenik meg:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4m
Ha a külső IP-cím függőben lévőről tényleges nyilvános IP-címre változik, állítsa CTRL-C
le a kubectl
figyelés folyamatát.
Az alábbi mintakimenet a szolgáltatáshoz rendelt érvényes nyilvános IP-címet jeleníti meg:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
store-front LoadBalancer 10.0.100.10 20.62.159.19 80:30025/TCP 4h5m
Nyisson meg egy webböngészőt a szolgáltatás külső IP-címére az Azure Store-alkalmazás működés közbeni megtekintéséhez.
Ha végzett a gyorsútmutatóval, törölje a felesleges erőforrásokat, hogy elkerülje az Azure-díjakat.
Törölje a rövid útmutatóban létrehozott összes erőforrást a azd down
paranccsal.
azd down
Erősítse meg, hogy az összes használt erőforrást el szeretné távolítani az előfizetésből a gépeléssel y
és a billentyű lenyomásával Enter
.
? Total resources to delete: 14, are you sure you want to continue? (y/N)
Ha lehetséges, a törlés lehetővé teszi a gyorsindítási változók újbóli felhasználását a beírással y
és a lenyomással Enter
.
[Warning]: These resources have soft delete enabled allowing them to be recovered for a period or time after deletion. During this period, their names can't be reused. In the future, you can use the argument --purge to skip this confirmation.
A Terraform Azure-beli használatakor felmerülő gyakori problémák elhárítása.
Ebben a rövid útmutatóban üzembe helyezett egy Kubernetes-fürtöt, majd üzembe helyezett egy egyszerű többtárolós alkalmazást. Ez a mintaalkalmazás csak bemutató célokra készült, és nem képviseli a Kubernetes-alkalmazások ajánlott eljárásait. Az éles AKS-sel való teljes megoldások létrehozásáról az AKS-megoldásokkal kapcsolatos útmutatást talál.
Ha többet szeretne megtudni az AKS-ről, és végig szeretne járni egy teljes kód–üzembe helyezési példán, folytassa a Kubernetes-fürt oktatóanyagával.
Azure Kubernetes Service-visszajelzés
A(z) Azure Kubernetes Service egy nyílt forráskód projekt. Visszajelzés adásához válasszon egy hivatkozást:
esemény
Intelligens alkalmazások létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációOktatás
Modul
引導式專案 - 將應用程式部署至 Azure Kubernetes Service - Training
歡迎使用此互動式技能驗證體驗。 完成本課程模組可協助您準備使用 Azure Kubernetes Service 評定部署和管理容器。
Tanúsítvány
Microsoft Certified: Azure Developer Associate - Certifications
在 Microsoft Azure 中建置端對端解決方案,以建立 Azure Functions、實作和管理 Web 應用程式、開發使用 Azure 儲存體的解決方案等等。