Vývoj aplikace Kubernetes pro Azure SQL Database
Platí pro:Azure SQL Database
V tomto kurzu se naučíte vyvíjet moderní aplikaci pomocí Pythonu, Kontejnerů Dockeru, Kubernetes a Azure SQL Database.
Moderní vývoj aplikací má několik výzev. Od výběru "zásobníku" front-endu prostřednictvím úložiště dat a zpracování z několika konkurenčních standardů, prostřednictvím zajištění nejvyšší úrovně zabezpečení a výkonu, musí vývojáři zajistit, aby se aplikace škálovat a dobře fungovala a je podporována na více platformách. V případě posledního požadavku je teď vytvoření aplikace do technologií kontejnerů, jako je Docker a nasazení několika kontejnerů na platformu Kubernetes, nyní ve vývoji aplikací derigueur.
V tomto příkladu prozkoumáme použití Pythonu, kontejnerů Dockeru a Kubernetes – vše spuštěné na platformě Microsoft Azure. Použití Kubernetes znamená, že máte také flexibilitu používání místních prostředí nebo dokonce jiných cloudů pro bezproblémové a konzistentní nasazení vaší aplikace a umožňuje nasazení s více cloudy pro ještě vyšší odolnost. Pro ukládání a zpracování dat také použijeme Microsoft Azure SQL Database pro vysoce odolné a zabezpečené prostředí založené na službách. V mnoha případech už microsoft Azure SQL Database často používají jiné aplikace a tato ukázková aplikace se dá použít k dalšímu použití a obohacení těchto dat.
Tento příklad je poměrně komplexní v oboru, ale používá nejjednodušší aplikaci, databázi a nasazení k ilustraci procesu. Tuto ukázku můžete přizpůsobit tak, aby byla mnohem robustnější, i když pro vrácená data používáte nejnovější technologie. Je to užitečný výukový nástroj k vytvoření vzoru pro jiné aplikace.
Použití ukázkové databáze Python, Docker Containers, Kubernetes a AdventureWorksLT v praktickém příkladu
Společnost AdventureWorks (fiktivní) používá databázi, která ukládá data o prodejích a marketingu, produktech, zákaznících a výrobě. Obsahuje také zobrazení a uložené procedury, které spojují informace o produktech, jako je název produktu, kategorie, cena a stručný popis.
Vývojový tým AdventureWorks chce vytvořit testování konceptu (PoC), který vrací data ze zobrazení v AdventureWorksLT
databázi, a zpřístupnit je jako rozhraní REST API. Pomocí tohoto PoC vytvoří vývojový tým škálovatelnější a vícecloudovou aplikaci připravenou pro prodejní tým. Pro všechny aspekty nasazení vybrali platformu Microsoft Azure. PoC používá následující prvky:
- Aplikace Pythonu využívající balíček Flask pro bezobsadové nasazení webu.
- Kontejnery Dockeru pro izolaci kódu a prostředí uložené v privátním registru, aby celá společnost mohli kontejnery aplikací znovu použít v budoucích projektech, což šetří čas a peníze.
- Kubernetes umožňuje snadné nasazení a škálování a vyhnout se uzamčení platformy.
- Microsoft Azure SQL Database pro výběr velikosti, výkonu, škálování, automatického zpracování a zálohování kromě úložiště a zpracování relačních dat na nejvyšší úrovni zabezpečení.
V tomto článku vysvětlujeme proces vytvoření celého projektu testování konceptu. Obecné kroky pro vytvoření aplikace jsou:
- Nastavení požadavků
- Vytvoření aplikace
- Vytvoření kontejneru Dockeru pro nasazení aplikace a testování
- Vytvoření registru služby Azure Container Service (ACS) a načtení kontejneru do registru služby ACS
- Vytvoření prostředí Azure Kubernetes Service (AKS)
- Nasazení kontejneru aplikace z registru služby ACS do AKS
- Otestování aplikace
- Vyčištění
Požadavky
V tomto článku je několik hodnot, které byste měli nahradit. Zajistěte, abyste tyto hodnoty pro každý krok konzistentně nahradili. Možná budete chtít otevřít textový editor a tyto hodnoty vypustit, abyste při práci s projektem testování konceptu nastavili správné hodnoty:
-
ReplaceWith_AzureSubscriptionName
: Tuto hodnotu nahraďte názvem předplatného Azure, který máte. -
ReplaceWith_PoCResourceGroupName
: Tuto hodnotu nahraďte názvem skupiny prostředků, kterou chcete vytvořit. -
ReplaceWith_AzureSQLDBServerName
: Tuto hodnotu nahraďte názvem logického serveru Azure SQL Database, který vytvoříte pomocí webu Azure Portal. -
ReplaceWith_AzureSQLDBSQLServerLoginName
: Tuto hodnotu nahraďte hodnotou uživatelského jména SQL Serveru, které vytvoříte na webu Azure Portal. -
ReplaceWith_AzureSQLDBSQLServerLoginPassword
: Tuto hodnotu nahraďte hodnotou uživatelského hesla SQL Serveru, které vytvoříte na webu Azure Portal. -
ReplaceWith_AzureSQLDBDatabaseName
: Tuto hodnotu nahraďte názvem azure SQL Database, kterou vytvoříte pomocí webu Azure Portal. -
ReplaceWith_AzureContainerRegistryName
: Tuto hodnotu nahraďte názvem služby Azure Container Registry, kterou chcete vytvořit. -
ReplaceWith_AzureKubernetesServiceName
: Tuto hodnotu nahraďte názvem služby Azure Kubernetes Service, kterou chcete vytvořit.
Vývojáři v AdventureWorks používají pro vývoj kombinaci systémů Windows, Linux a Apple, takže používají Visual Studio Code jako své prostředí a git pro správu zdrojového kódu, z nichž obě běží na různých platformách.
Pro poC tým vyžaduje následující požadavky:
Python, pip a balíčky – Vývojový tým zvolí programovací jazyk Python jako standard pro tuto webovou aplikaci. V současné době používají verzi 3.9, ale jakákoli verze podporující požadované balíčky PoC je přijatelná.
- Python verze 3.9 si můžete stáhnout z python.org.
Tým používá
pyodbc
balíček pro přístup k databázi.- Balíček pyodbc můžete nainstalovat pomocí příkazů pip.
- Pokud ho ještě nemáte nainstalovanou , možná budete potřebovat software ovladače Microsoft ODBC.
Tým používá
ConfigParser
balíček pro řízení a nastavení konfiguračních proměnných.- Balíček configparser můžete nainstalovat pomocí příkazů pip.
Tým používá balíček Flask pro webové rozhraní aplikace.
- Můžete nainstalovat verzi Pythonu knihovny Flask.
V dalším kroku tým nainstaloval nástroj Azure CLI, který je snadno identifikován syntaxí
az
. Tento nástroj pro různé platformy umožňuje přístup příkazového řádku a skriptovaného přístupu k PoC, aby mohl kroky opakovat při provádění změn a vylepšení.- Nástroj Azure CLI si můžete stáhnout a nainstalovat.
Po nastavení Azure CLI se tým přihlásí ke svému předplatnému Azure a nastaví název předplatného, které použil pro PoC. Pak zajistili, aby byl server a databáze Azure SQL Database přístupné pro předplatné:
az login az account set --name "ReplaceWith_AzureSubscriptionName" az sql server list az sql db list ReplaceWith_AzureSQLDBDatabaseName
Skupina prostředků Microsoft Azure je logický kontejner, který obsahuje související prostředky pro řešení Azure. Obecně platí, že prostředky, které sdílejí stejný životní cyklus, se přidají do stejné skupiny prostředků, abyste je mohli snadno nasadit, aktualizovat a odstranit jako skupinu. Skupina prostředků ukládá metadata o prostředcích a můžete zadat umístění skupiny prostředků.
Skupiny prostředků je možné vytvářet a spravovat pomocí webu Azure Portal nebo Azure CLI. Dají se také použít k seskupení souvisejících prostředků pro aplikaci a jejich rozdělení do skupin pro produkční a neprodukční prostředí nebo jakékoli jiné organizační struktury, které dáváte přednost.
V následujícím fragmentu
az
kódu uvidíte příkaz použitý k vytvoření skupiny prostředků. V naší ukázce používáme oblast Azure eastus.az group create --name ReplaceWith_PoCResourceGroupName --location eastus
Vývojový tým vytvoří službu Azure SQL Database s
AdventureWorksLT
nainstalovanou ukázkovou databází pomocí ověřeného přihlášení SQL.AdventureWorks má standardizovanou platformu Microsoft SQL Server Relational Database Management System a vývojový tým chce místo místní instalace použít spravovanou službu pro databázi. Použití Azure SQL Database umožňuje, aby tato spravovaná služba byla zcela kompatibilní s kódem všude, kde běží modul SQL Serveru: místně, v kontejneru, v Linuxu nebo Windows nebo dokonce v prostředí Internetu věcí (IoT).
Během vytváření použili Portál pro správu Azure k nastavení brány firewall pro aplikaci na místní vývojový počítač a změnili výchozí nastavení, které tady vidíte, aby povolovaly všechny služby Azure a také načetly přihlašovací údaje pro připojení.
Díky tomuto přístupu může být databáze přístupná v jiné oblasti nebo dokonce v jiném předplatném.
Tým pro testování nastavil ověřené přihlášení SQL, ale v rámci kontroly zabezpečení se k tomuto rozhodnutí znovu připojí.
Tým použil ukázkovou
AdventureWorksLT
databázi pro PoC pomocí stejné skupiny prostředků PoC. Nedělejte si starosti, na konci tohoto kurzu vyčistíme všechny prostředky v této nové skupině prostředků PoC.K nasazení služby Azure SQL Database můžete použít Azure Portal. Při vytváření služby Azure SQL Database na kartě Další nastavení u možnosti Použít existující data vyberte Ukázka.
Nakonec na kartě Značky nové služby Azure SQL Database poskytl vývojový tým metadata značek pro tento prostředek Azure, například Vlastník nebo ServiceClass nebo WorkloadName.
Vytvoření aplikace
Vývojový tým vytvořil jednoduchou aplikaci v Pythonu, která otevře připojení ke službě Azure SQL Database a vrátí seznam produktů. Tento kód bude nahrazen složitějšími funkcemi a může také zahrnovat více než jednu aplikaci nasazenou do podů Kubernetes v produkčním prostředí pro robustní přístup řízený manifestem k aplikačním řešením.
Tým vytvořil jednoduchý textový soubor, který bude obsahovat
.env
proměnné pro připojení k serveru a další informace.python-dotenv
Pomocí knihovny pak mohou proměnné oddělit od kódu Pythonu. Jedná se o běžný přístup k uchovávání tajných kódů a dalších informací mimo samotný kód.SQL_SERVER_ENDPOINT = ReplaceWith_AzureSQLDBServerName SQL_SERVER_USERNAME = ReplaceWith_AzureSQLDBSQLServerLoginName SQL_SERVER_PASSWORD = ReplaceWith_AzureSQLDBSQLServerLoginPassword SQL_SERVER_DATABASE = ReplaceWith_AzureSQLDBDatabaseName
Upozornění
Pro srozumitelnost a jednoduchost tato aplikace používá konfigurační soubor, který se čte z Pythonu. Vzhledem k tomu, že se kód nasadí s kontejnerem, můžou být informace o připojení možné odvodit z obsahu. Měli byste pečlivě zvážit různé metody práce se zabezpečením, připojeními a tajnými kódy a určit nejlepší úroveň a mechanismus, který byste měli pro naši aplikaci použít. Vždy vyberte nejvyšší úroveň zabezpečení a dokonce i několik úrovní, abyste zajistili zabezpečení vaší aplikace. Máte několik možností práce s tajnými informacemi, jako jsou připojovací řetězec a podobně, a následující seznam obsahuje několik těchto možností.
Další informace najdete v tématu Zabezpečení služby Azure SQL Database.
- Další metodou práce s tajnými kódy v Pythonu je použití knihovny python-secrets.
- Zkontrolujte zabezpečení a tajné kódy Dockeru.
- Projděte si tajné kódy Kubernetes.
- Další informace o ověřování Microsoft Entra (dříve Azure Active Directory) najdete také.
Tým dále napsal aplikaci PoC a nazval ji
app.py
.Následující skript provede následující kroky:
- Nastavte knihovny pro konfigurační a základní webová rozhraní.
- Načtěte proměnné ze
.env
souboru. - Vytvořte aplikaci Flask-RESTful.
- Pomocí hodnot souborů se dostanete k informacím o připojení ke službě
config.ini
Azure SQL Database. - Vytvořte připojení ke službě
config.ini
Azure SQL Database pomocí hodnot souborů. - Připojte se ke službě
pyodbc
Azure SQL Database pomocí balíčku. - Vytvořte dotaz SQL, který se spustí v databázi.
- Vytvořte třídu, která se použije k vrácení dat z rozhraní API.
- Nastavte koncový bod rozhraní API na
Products
třídu. - Nakonec spusťte aplikaci na výchozím portu Flask 5000.
# Set up the libraries for the configuration and base web interfaces from dotenv import load_dotenv from flask import Flask from flask_restful import Resource, Api import pyodbc # Load the variables from the .env file load_dotenv() # Create the Flask-RESTful Application app = Flask(__name__) api = Api(app) # Get to Azure SQL Database connection information using the config.ini file values server_name = os.getenv('SQL_SERVER_ENDPOINT') database_name = os.getenv('SQL_SERVER_DATABASE') user_name = os.getenv('SQL_SERVER_USERNAME') password = os.getenv('SQL_SERVER_PASSWORD') # Create connection to Azure SQL Database using the config.ini file values ServerName = config.get('Connection', 'SQL_SERVER_ENDPOINT') DatabaseName = config.get('Connection', 'SQL_SERVER_DATABASE') UserName = config.get('Connection', 'SQL_SERVER_USERNAME') PasswordValue = config.get('Connection', 'SQL_SERVER_PASSWORD') # Connect to Azure SQL Database using the pyodbc package # Note: You may need to install the ODBC driver if it is not already there. You can find that at: # https://learn.microsoft.com/sql/connect/odbc/download-odbc-driver-for-sql-server connection = pyodbc.connect(f'Driver=ODBC Driver 17 for SQL Server;Server={ServerName};Database={DatabaseName};uid={UserName};pwd={PasswordValue}') # Create the SQL query to run against the database def query_db(): cursor = connection.cursor() cursor.execute("SELECT TOP (10) [ProductID], [Name], [Description] FROM [SalesLT].[vProductAndDescription] WHERE Culture = 'EN' FOR JSON AUTO;") result = cursor.fetchone() cursor.close() return result # Create the class that will be used to return the data from the API class Products(Resource): def get(self): result = query_db() json_result = {} if (result == None) else json.loads(result[0]) return json_result, 200 # Set the API endpoint to the Products class api.add_resource(Products, '/products') # Start App on default Flask port 5000 if __name__ == "__main__": app.run(debug=True)
Zkontrolovali, že tato aplikace běží místně, a vrátí stránku do
http://localhost:5000/products
.Důležité
Při vytváření produkčních aplikací nepoužívejte účet správce pro přístup k databázi. Další informace najdete v článku o tom, jak nastavit účet pro vaši aplikaci. Kód v tomto článku je zjednodušený, abyste mohli rychle začít s aplikacemi pomocí Pythonu a Kubernetes v Azure.
Realističtěji můžete použít uživatele databáze s oprávněními jen pro čtení nebo uživatele databáze s oprávněními jen pro čtení nebo uživatele databáze s omezením připojeným ke spravované identitě přiřazené uživatelem s oprávněními jen pro čtení.
Další informace najdete v kompletním příkladu vytváření rozhraní API pomocí Pythonu a Azure SQL Database.
Nasazení aplikace do kontejneru Dockeru
Kontejner je vyhrazený chráněný prostor v výpočetním systému, který poskytuje izolaci a zapouzdření. Pokud chcete vytvořit kontejner, použijte soubor manifestu, což je jednoduše textový soubor popisující binární soubory a kód, který chcete obsahovat. Pomocí modulu runtime kontejneru (například Dockeru) pak můžete vytvořit binární image, která obsahuje všechny soubory, které chcete spustit, a odkazovat na nich. Odtud můžete "spustit" binární image a to se nazývá kontejner, na který můžete odkazovat, jako by to byl úplný výpočetní systém. Je to menší, jednodušší způsob, jak abstrahovat moduly runtime a prostředí aplikací než použití úplného virtuálního počítače. Další informace najdete v tématu Kontejnery a Docker.
Tým začal souborem DockerFile (manifest), který vrství prvky toho, co chce tým použít. Začínají základní imagí Pythonu, která už má pyodbc
nainstalované knihovny, a pak spustí všechny příkazy potřebné k tomu, aby obsahovaly program a konfigurační soubor v předchozím kroku.
Následující soubor Dockerfile obsahuje následující kroky:
- Začněte binárním souborem kontejneru, který už má Python a
pyodbc
nainstalovaný. - Vytvořte pracovní adresář pro aplikaci.
- Zkopírujte veškerý kód z aktuálního adresáře do
WORKDIR
souboru . - Nainstalujte požadované knihovny.
- Po spuštění kontejneru spusťte aplikaci a otevřete všechny porty TCP/IP.
# syntax=docker/dockerfile:1
# Start with a Container binary that already has Python and pyodbc installed
FROM laudio/pyodbc
# Create a Working directory for the application
WORKDIR /flask2sql
# Copy all of the code from the current directory into the WORKDIR
COPY . .
# Install the libraries that are required
RUN pip install -r ./requirements.txt
# Once the container starts, run the application, and open all TCP/IP ports
CMD ["python3", "-m" , "flask", "run", "--host=0.0.0.0"]
Když je soubor na místě, tým přešel do příkazového řádku v adresáři kódování a spustil následující kód pro vytvoření binární image z manifestu a dalším příkazem pro spuštění kontejneru:
docker build -t flask2sql .
docker run -d -p 5000:5000 -t flask2sql
Tým znovu otestuje http://localhost:5000/products
odkaz, aby zajistil, že kontejner bude mít přístup k databázi a uvidí následující návrat:
Nasazení image do registru Dockeru
Kontejner teď funguje, ale je dostupný jenom na počítači vývojáře. Vývojový tým chce zpřístupnit tuto image aplikace pro zbytek společnosti a pak do Kubernetes pro produkční nasazení.
Oblast úložiště pro image kontejnerů se nazývá úložiště a pro image kontejnerů může existovat veřejná i privátní úložiště. Ve skutečnosti adventureWorks ve svém souboru Dockerfile použila veřejnou image pro prostředí Pythonu.
Tým chce řídit přístup k imagi a místo toho, aby ho umístil na web, rozhodl se, že by ho chtěl hostovat sami, ale v Microsoft Azure, kde mají plnou kontrolu nad zabezpečením a přístupem. Další informace o službě Microsoft Azure Container Registry najdete tady.
Když se vrátíte do příkazového řádku, vývojový tým použije az CLI
k přidání služby Container Registry, povolení účtu pro správu, nastavení na anonymní přijetí změn během testovací fáze a nastavení kontextu přihlášení do registru:
az acr create --resource-group ReplaceWith_PoCResourceGroupName --name ReplaceWith_AzureContainerRegistryName --sku Standard
az acr update -n ReplaceWith_AzureContainerRegistryName --admin-enabled true
az acr update --name ReplaceWith_AzureContainerRegistryName --anonymous-pull-enabled
az acr login --name ReplaceWith_AzureContainerRegistryName
Tento kontext se použije v následujících krocích.
Označte místní image Dockeru a připravte ji na nahrání.
Dalším krokem je odeslání image kontejneru místní aplikace do služby Azure Container Registry (ACR), aby byla dostupná v cloudu.
- V následujícím ukázkovém skriptu tým pomocí příkazů Dockeru zobrazí seznam imagí na počítači.
- Pomocí
az CLI
nástroje zobrazí seznam imagí ve službě ACR. - Pomocí příkazu Dockeru označí image názvem cíle ACR, který vytvořili v předchozím kroku, a nastaví číslo verze pro správné DevOps.
- Nakonec znovu vypíše informace o místním obrázku, aby se značka použila správně.
docker images
az acr list --resource-group ReplaceWith_PoCResourceGroupName --query "[].{acrLoginServer:loginServer}" --output table
docker tag flask2sql ReplaceWith_AzureContainerRegistryName.azurecr.io/azure-flask2sql:v1
docker images
Když je kód napsaný a otestovaný, soubor Dockerfile, image a kontejner spuštěný a otestovaný, nastaví se služba ACR a použije se všechny značky, tým může nahrát image do služby ACR.
K odeslání souboru používají příkaz "push" Dockeru a pak az CLI
nástroj k zajištění načtení image:
docker push ReplaceWith_AzureContainerRegistryName.azurecr.io/azure-flask2sql:v1
az acr repository list --name ReplaceWith_AzureContainerRegistryName --output table
Nasazení do Kubernetes
Tým může jednoduše spouštět kontejnery a nasazovat aplikaci do místních a cloudových prostředí. Chtěli by ale přidat více kopií aplikace pro škálování a dostupnost, přidat další kontejnery provádějící různé úlohy a přidat monitorování a instrumentaci do celého řešení.
Aby se kontejnery seskupily do kompletního řešení, tým se rozhodl používat Kubernetes. Kubernetes běží místně a ve všech hlavních cloudových platformách. Microsoft Azure má kompletní spravované prostředí pro Kubernetes, označované jako Azure Kubernetes Service (AKS). Přečtěte si další informace o AKS s kurzem Úvod do Kubernetes v Azure.
az CLI
Pomocí nástroje přidá tým AKS do stejné skupiny prostředků, kterou vytvořili dříve. Jedním příkazem az
provede vývojový tým následující kroky:
- Přidání dvou "uzlů" nebo výpočetních prostředí pro odolnost ve fázi testování
- Automatické generování klíčů SSH pro přístup k prostředí
- Připojte službu ACR, kterou vytvořili v předchozích krocích, aby cluster AKS mohl vyhledat image, které chtějí použít pro nasazení.
az aks create --resource-group ReplaceWith_PoCResourceGroupName --name ReplaceWith_AzureKubernetesServiceName --node-count 2 --generate-ssh-keys --attach-acr ReplaceWith_AzureContainerRegistryName
Kubernetes používá nástroj příkazového řádku pro přístup ke clusteru s názvem kubectl
a řízení clusteru. Tým nástroj stáhne az CLI
kubectl
a nainstaluje:
az aks install-cli
Vzhledem k tomu, že v tuto chvíli mají připojení k AKS, můžou požádat o odeslání klíčů SSH pro připojení, které se mají použít při spuštění kubectl
nástroje:
az aks get-credentials --resource-group ReplaceWith_PoCResourceGroupName --name ReplaceWith_AzureKubernetesServiceName
Tyto klíče jsou uloženy v souboru s názvem .config v adresáři uživatele. V této sadě kontextu zabezpečení tým používá kubectl get nodes
k zobrazení uzlů v clusteru:
kubectl get nodes
Tým teď pomocí az CLI
nástroje vypíše obrázky ve službě ACR:
az acr list --resource-group ReplaceWith_PoCResourceGroupName --query "[].{acrLoginServer:loginServer}" --output table
Teď můžou sestavit manifest, který Kubernetes používá k řízení nasazení. Jedná se o textový soubor uložený ve formátu yaml . Tady je text s poznámkami v flask2sql.yaml
souboru:
apiVersion: apps/v1
# The type of commands that will be sent, along with the name of the deployment
kind: Deployment
metadata:
name: flask2sql
# This section sets the general specifications for the application
spec:
replicas: 1
selector:
matchLabels:
app: flask2sql
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
minReadySeconds: 5
template:
metadata:
labels:
app: flask2sql
spec:
nodeSelector:
"kubernetes.io/os": linux
# This section sets the location of the Image(s) in the deployment, and where to find them
containers:
- name: flask2sql
image: bwoodyflask2sqlacr.azurecr.io/azure-flask2sql:v1
# Recall that the Flask application uses (by default) TCP/IP port 5000 for access. This line tells Kubernetes that this "pod" uses that address.
ports:
- containerPort: 5000
---
apiVersion: v1
# This is the front-end of the application access, called a "Load Balancer"
kind: Service
metadata:
name: flask2sql
spec:
type: LoadBalancer
# this final step then sets the outside exposed port of the service to TCP/IP port 80, but maps it internally to the app's port of 5000
ports:
- protocol: TCP
port: 80
targetPort: 5000
selector:
app: flask2sql
S definovaným flask2sql.yaml
souborem může tým nasadit aplikaci do spuštěného clusteru AKS. To se provádí příkazem kubectl apply
, který má při úplnosti stále kontext zabezpečení clusteru. Pak se kubectl get service
odešle příkaz, který bude sledovat cluster při jeho sestavení.
kubectl apply -f flask2sql.yaml
kubectl get service flask2sql --watch
Po chvíli příkaz "watch" vrátí externí IP adresu. V tomto okamžiku tým stisknutím kombinace kláves CTRL-C přeruší příkaz kukátku a zaznamená externí IP adresu nástroje pro vyrovnávání zatížení.
Testování aplikace
Pomocí IP adresy (koncového bodu), kterou získali v posledním kroku, tým zkontroluje stejný výstup jako místní aplikace a kontejner Dockeru:
Vyčištění
Když je aplikace vytvořená, upravená, zdokumentovaná a otestovaná, tým teď může aplikaci "odbourat". Když v Microsoft Azure necháte všechno v jedné skupině prostředků, je to jednoduché odstranění skupiny prostředků PoC pomocí az CLI
nástroje:
az group delete -n ReplaceWith_PoCResourceGroupName -y
Poznámka:
Pokud jste službu Azure SQL Database vytvořili v jiné skupině prostředků a už ji nepotřebujete, můžete ji odstranit pomocí webu Azure Portal.
Člen týmu, který vede projekt PoC, používá jako pracovní stanici Microsoft Windows a chce zachovat soubor tajných kódů z Kubernetes, ale odebrat ho ze systému jako aktivní umístění. Můžou soubor jednoduše zkopírovat do textového config.old
souboru a pak ho odstranit:
copy c:\users\ReplaceWith_YourUserName\.kube\config c:\users\ReplaceWith_YourUserName\.kube\config.old
del c:\users\ReplaceWith_YourUserName\.kube\config