Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka
Pro aplikace Spring Boot použijte Azure Container Apps. Azure Kubernetes Service ale můžete dál používat jako cíl. Další informace najdete v tématu Volba správných služeb Azure pro vaše aplikace v Javě.
V tomto kurzu se dozvíte, jak pomocí Kubernetes a Dockeru vyvíjet a nasazovat aplikaci Spring Boot pro Microsoft Azure. Konkrétně používáte Spring Boot pro vývoj aplikací, Kubernetes pro nasazení kontejnerů a Azure Kubernetes Service (AKS) k hostování vaší aplikace.
Kubernetes a dockeru jsou opensourcová řešení, která vývojářům pomáhají automatizovat nasazení, škálování a správu aplikací běžících v kontejnerech.
Požadavky
- Předplatné Azure; pokud ještě nemáte předplatné Azure, aktivujte výhody pro předplatitele MSDN nebo si zaregistrujte bezplatný Azure účet.
- rozhraní
Azure Command-Line (CLI). - Podporovaná sada Java Development Kit (JDK). Další informace o sadách JDK, které jsou k dispozici při vývoji v Azure, najdete v tématu podpora Javy v Azure a azure Stack.
- Apache Maven nástroj pro sestavování (Verze 3).
- Klient Git.
- Klient Dockeru.
- Pomocník pro přihlašovací údaje Dockeru ACR.
Poznámka
Vzhledem k požadavkům na virtualizaci tohoto kurzu nemůžete postupovat podle kroků v tomto článku na virtuálním počítači. Musíte použít fyzický počítač s povolenými funkcemi virtualizace.
Vytvořte webovou aplikaci Spring Boot pro Docker – Začínáme
Následující kroky vás provedou vytvořením webové aplikace Spring Boot a jeho místním testováním.
Otevřete příkazový řádek a vytvořte místní adresář pro uložení aplikace a přejděte na tento adresář; Například:
mkdir C:\SpringBoot cd C:\SpringBoot-- nebo --
mkdir /users/$USER/SpringBoot cd /users/$USER/SpringBootNaklonujte do adresáře ukázkový projekt Spring Boot v Dockeru Začínáme.
git clone https://github.com/spring-guides/gs-spring-boot-docker.gitPřejděte do adresáře dokončeného projektu.
cd gs-spring-boot-docker cd completePomocí Mavenu sestavte a spusťte ukázkovou aplikaci.
mvn package spring-boot:runOtestujte webovou aplikaci tak, že přejdete na
http://localhost:8080nebo pomocí následujícího příkazucurl:curl http://localhost:8080Zobrazí se následující zpráva: Hello Docker World
Vytvoření služby Azure Container Registry pomocí Azure CLI
Otevřete příkazový řádek.
Přihlaste se ke svému účtu Azure:
az loginVyberte své předplatné Azure:
az account set -s <YourSubscriptionID>Vytvořte skupinu prostředků pro prostředky Azure použité v tomto kurzu.
az group create --name=wingtiptoys-kubernetes --location=eastusVytvořte privátní registr kontejneru Azure ve skupině prostředků. Tento kurz odešle ukázkovou aplikaci jako image Dockeru do tohoto registru v dalších krocích. Nahraďte
wingtiptoysregistryjedinečným názvem vašeho registru.az acr create --resource-group wingtiptoys-kubernetes --location eastus \ --name wingtiptoysregistry --sku Basic
Nasazení aplikace do registru kontejneru pomocí Jib
Přihlaste se ke svému Azure Container Registry z Azure CLI.
# set the default name for Azure Container Registry, otherwise you need to specify the name in "az acr login" az config set defaults.acr=wingtiptoysregistry az acr loginOtevřete soubor pom.xml textovým editorem, například Visual Studio Code.
code pom.xmlAktualizujte kolekci
<properties>v souboru pom.xml názvem registru pro službu Azure Container Registry a nejnovější verzíjib-maven-plugin.<properties> <!-- Note: If your ACR name contains upper case characters, be sure to convert them to lower case characters. --> <docker.image.prefix>wingtiptoysregistry.azurecr.io</docker.image.prefix> <jib-maven-plugin.version>2.5.2</jib-maven-plugin.version> <java.version>1.8</java.version> </properties>Aktualizujte kolekci
<plugins>v souboru pom.xml tak, aby prvek<plugin>obsahoval položku projib-maven-plugin, jak je znázorněno v následujícím příkladu. Použijte základní image ze služby Microsoft Container Registry (MCR):mcr.microsoft.com/openjdk/jdk:11-ubuntu, která obsahuje oficiálně podporovanou sadu JDK pro Azure. Další základní image MCR s oficiálně podporovanými sadami JDK najdete v článku Instalace Microsoft Build pro OpenJDK.<plugin> <artifactId>jib-maven-plugin</artifactId> <groupId>com.google.cloud.tools</groupId> <version>${jib-maven-plugin.version}</version> <configuration> <from> <image>mcr.microsoft.com/openjdk/jdk:11-ubuntu</image> </from> <to> <image>${docker.image.prefix}/gs-spring-boot-docker</image> </to> </configuration> </plugin>Přejděte do adresáře dokončeného projektu pro aplikaci Spring Boot a spuštěním následujícího příkazu sestavte image a nasdílejte image do registru:
az acr login && mvn compile jib:build
Poznámka
Z bezpečnostních důvodů jsou přihlašovací údaje, které vytvoříte pomocí, az acr login platné po dobu jedné hodiny. Pokud se zobrazí 401 Unauthorized chyba, spusťte az acr login --name <your registry name> příkaz znovu, aby se znovu provedlo ověření. Pokud se zobrazí chyba Read timed out, zkuste zvýšit časové limity pomocí mvn -Djib.httpTimeout=7200000 jib:dockerBuild nebo použijte -Djib.httpTimeout=0 pro neomezený časový limit.
Vytvoření clusteru Kubernetes v AKS pomocí Azure CLI
Vytvořte cluster Kubernetes ve službě Azure Kubernetes Service. Následující příkaz vytvoří cluster Kubernetes ve skupině prostředků
wingtiptoys-kubernetess názvem clusteruwingtiptoys-akscluster, s připojeným Azure Container Registry (ACR)wingtiptoysregistrya s předponou DNSwingtiptoys-kubernetes:az aks create --resource-group=wingtiptoys-kubernetes --name=wingtiptoys-akscluster \ --attach-acr wingtiptoysregistry \ --dns-name-prefix=wingtiptoys-kubernetes --generate-ssh-keysDokončení tohoto příkazu může chvíli trvat.
Nainstalujte
kubectlpomocí Azure CLI. Uživatelé Linuxu možná budou muset před tento příkaz doplnitsudo, protože se tím nástroj příkazového řádku Kubernetes nainstaluje do/usr/local/bin.az aks install-cliStáhněte si informace o konfiguraci clusteru, abyste mohli cluster spravovat z webového rozhraní Kubernetes a
kubectl.az aks get-credentials --resource-group=wingtiptoys-kubernetes --name=wingtiptoys-akscluster
Nasazení image do clusteru Kubernetes
V tomto kurzu nasadíte aplikaci pomocí kubectl a poté můžete nasazení prozkoumat ve webovém rozhraní Kubernetes.
Nasazení pomocí kubectl
Otevřete příkazový řádek.
Spuštění kontejneru v clusteru Kubernetes pomocí příkazu
kubectl runZadejte název služby pro vaši aplikaci v prostředí Kubernetes a také celý název image. Například:kubectl run gs-spring-boot-docker --image=wingtiptoysregistry.azurecr.io/gs-spring-boot-docker:latestV tomto příkazu:
Název
gs-spring-boot-dockerkontejneru zadáte hned za příkazemrun.Parametr
--imageurčuje sloučený přihlašovací server a název image jakowingtiptoysregistry.azurecr.io/gs-spring-boot-docker:latest.
Externí zveřejnění clusteru Kubernetes pomocí příkazu
kubectl exposeZadejte název vaší služby, veřejně přístupný port TCP, který se používá pro přístup k aplikaci, a interní cílový port, na kterém vaše aplikace naslouchá. Například:kubectl expose pod gs-spring-boot-docker --type=LoadBalancer --port=80 --target-port=8080V tomto příkazu:
Název
gs-spring-boot-dockerkontejneru zadáte hned za příkazemexpose pod.Parametr
--typeurčuje, že cluster používá nástroj pro vyrovnávání zatížení.Parametr
--porturčuje veřejně přístupný port TCP 80. K aplikaci se dostanete na tento port.Parametr
--target-porturčuje interní port TCP 8080. Nástroj pro vyrovnávání zatížení předává požadavky vaší aplikaci na tomto portu.
Po nasazení aplikace do clusteru zadejte dotaz na externí IP adresu a otevřete ji ve webovém prohlížeči:
kubectl get services -o=jsonpath='{.items[*].status.loadBalancer.ingress[0].ip}'
Nasazení pomocí zobrazení prostředků Kubernetes
Vyberte Přidat z libovolného zobrazení prostředků (obor názvů, úlohy, služby a příchozí přenos dat, úložiště nebo konfigurace).
Vložte následující YAML:
apiVersion: apps/v1 kind: Deployment metadata: name: gs-spring-boot-docker spec: replicas: 1 selector: matchLabels: app: gs-spring-boot-docker template: metadata: labels: app: gs-spring-boot-docker spec: containers: - name: gs-spring-boot-docker image: wingtiptoysregistry.azurecr.io/gs-spring-boot-docker:latestVyberte Přidat v dolní části editoru YAML a nasaďte aplikaci.
Po nasazení
Deployment, stejně jako v předchozím kroku, vyberte Přidat v dolní části editoru YAML a nasaďteServiceho pomocí následujícího YAML:apiVersion: v1 kind: Service metadata: name: gs-spring-boot-docker spec: type: LoadBalancer ports: - port: 80 targetPort: 8080 selector: app: gs-spring-boot-dockerPo přidání souboru YAML se v prohlížeči prostředků zobrazí vaše aplikace Spring Boot. Externí služba obsahuje propojenou externí IP adresu, abyste mohli snadno zobrazit aplikaci v prohlížeči.
Vyberte externí IP. Zobrazí se aplikace Spring Boot spuštěná na Azure.
Další kroky
Další informace o Springu a Azure najdete v centru dokumentace Spring on Azure.
Viz také
Další informace o používání Spring Bootu v Azure najdete v následujícím článku:
Další informace o používání Azure s Javou najdete v Azure pro vývojáře v Javě a Práce s Azure DevOps a javou.
Další informace o nasazení aplikace v Javě do Kubernetes pomocí editoru Visual Studio Code najdete v kurzech visual studio Code v jazyce Java.
Další informace o ukázkovém projektu Spring Boot v Dockeru najdete v tématu Spring Boot v Dockeru Začínáme.
Následující odkazy obsahují další informace o vytváření aplikací Spring Boot:
- Další informace o vytvoření jednoduché aplikace Spring Boot naleznete v aplikaci Spring Initializr na https://start.spring.io/.
Následující odkazy obsahují další informace o používání Kubernetes s Azure:
Další informace o používání rozhraní příkazového řádku Kubernetes najdete v uživatelské příručce kubectl na adrese https://kubernetes.io/docs/reference/kubectl/.
Web Kubernetes obsahuje několik článků, které popisují použití imagí v privátních registrech:
Další příklady použití vlastních imagí Dockeru s Azure najdete v tématu Použití vlastní image Dockeru pro Azure Web App v Linuxu.
Další informace o iterativním spouštění a ladění kontejnerů přímo v Azure Kubernetes Service (AKS) s Azure Dev Spaces najdete v tématu Začínáme s Azure Dev Spaces s Java.