Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Developer CLI zapewnia obsługę narzędzi Helm i Kustomize, aby ulepszyć proces aprowizacji i wdrażania w usłudze Azure Kubernetes Service (AKS). Helm i Kustomize to narzędzia, które ułatwiają konfigurowanie aplikacji Kubernetes i zarządzanie nimi. W nadchodzących sekcjach dowiesz się, jak włączyć i dostosować obsługę tych narzędzi w szablonach azd.
Włączanie obsługi programu Helm
Aby włączyć obsługę programu Helm, upewnij się, że masz zainstalowany interfejs wiersza polecenia programu Helm. Włącz flagę azd funkcji helm, uruchamiając azd config polecenie:
azd config set alpha.aks.helm on
Konfiguracja i wdrażanie programu Helm
azd Obsługa programu Helm umożliwia zdefiniowanie listy pakietów Helm do zainstalowania dla każdej azd usługi. Użyj sekcji konfiguracyjnych helm i k8s w pliku azure.yaml aby zdefiniować listę repozytoriów Helm lub wydań do zainstalowania.
name: todo-nodejs-mongo-aks
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
argocd:
host: aks
k8s:
namespace: argo
service:
name: argocd-server
helm:
repositories:
- name: argo
url: https://argoproj.github.io/argo-helm
releases:
- name: argocd
chart: argo/argo-cd
version: 5.51.4
jupyterhub:
host: aks
k8s:
namespace: jupyterhub
service:
name: proxy-public
helm:
repositories:
- name: jupyterhub
url: https://hub.jupyter.org/helm-chart/
releases:
- name: jupyterhub
chart: jupyterhub/jupyterhub
version: 3.1.0
Polecenie azd deploy obsługuje następujące zadania przy użyciu helm sekcji :
- Dodaje wszystkie przywoływane repozytoria Helm i/lub je aktualizuje
- Instaluje przywołytowane wykresy programu Helm
- Czeka na przejście wydania programu Helm do stanu wdrożenia
- Wyświetla listę odpowiednich usług i punktów dostępowych zdefiniowanych w zasobach wdrożenia
Włącz obsługę Kustomize
Aby włączyć obsługę Kustomize, upewnij się, że masz zainstalowany CLI Kustomize. Włącz flagę azd funkcji Kustomize przy użyciu azd config polecenia :
azd config set alpha.aks.kustomize on
Konfigurowanie i wdrażanie usługi Kustomize
Funkcja Kustomize umożliwia korzystanie z usługi Kustomize w ramach wdrożeń platformy Kubernetes i udostępnia następujące funkcje:
- Obsługuje
baseivariantkonfiguracje -
editsktóre można uruchomić przed wdrożeniami -
configMapGeneratorz środowiskamiazd
Skonfiguruj funkcje usługi Kustomize, korzystając z następujących azure.yaml sekcji:
-
dir: ścieżka względna z usługi do katalogu Kustomize zawierającego plikkustomization.yaml.- Obsługuje podstawianie zmiennych środowiskowych.
-
edits: Tablica wyrażeń edycji, które są stosowane przed wdrożeniem- Obsługuje podstawianie zmiennych środowiskowych
-
env: Mapa par klucz/wartość wygenerowana przed wdrożeniem- Wartości mapy obsługują podstawianie zmiennych środowiskowych
Przypadki użycia
azd obsługuje następujące przypadki użycia Kustomize.
Wdrażaj manifesty K8s
Poniższa konfiguracja wykonuje polecenie kubectl apply -k <dir>, które wskazuje folder manifestów zawierający kustomization.yaml.
# azure.yaml
name: todo-nodejs-mongo-aks
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
api:
project: ./src/api
language: js
host: aks
k8s:
kustomize:
dir: ./kustomize/base
Używanie nakładek do wdrażania na różne warianty
Ten przypadek użycia jest zwykle używany do niestandardowych konfiguracji dla wdrożeń na różnych etapach lub w różnych środowiskach, takich jak dev, test i prod. W poniższym przykładzie użytkownik może określić zmienną środowiskową ${AZURE_ENV_NAME} w katalogu kustomize, aby automatycznie używać środowisk azd jako domyślnej konwencji nakładki.
# azure.yaml
name: todo-nodejs-mongo-aks
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
api:
project: ./src/api
language: js
host: aks
k8s:
kustomize:
dir: ./kustomize/overlays/${AZURE_ENV_NAME}
Zmodyfikuj kustomization.yaml przed wdrożeniem
Typowym przypadkiem użycia modyfikowania elementu kustomization.yaml jest zmodyfikowanie nazw/wersji obrazów kontenera używanych w ramach wdrożenia.
Poniższy przykład określa konfigurację edits i ustawia dowolne prawidłowe kustomize edit ... polecenie.
azd automatycznie interpoluje wszystkie zmienne środowiskowe, do których odwołuje się edit polecenie .
# azure.yaml
name: todo-nodejs-mongo-aks
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
api:
project: ./src/api
language: js
host: aks
k8s:
kustomize:
dir: ./kustomize/overlays/${AZURE_ENV_NAME}
edits:
- set image todo-api=${SERVICE_API_IMAGE_NAME}
Używanie azd zmiennych środowiskowych w ramach map konfiguracji
Mapy konfiguracyjne lub sekrety są kluczowe przy konfigurowaniu klastrów K8s. Ponieważ kustomize nie obsługuje żadnych bezpośrednich podstawiań zmiennych środowiskowych, możemy użyć kustomize configMapGenerator z plikiem .env.
Sekcja kustomize konfiguracji obsługuje sekcję env, w której można zdefiniować jedną lub wiele par klucz/wartość. Ta konfiguracja automatycznie generuje plik tymczasowy .env w katalogu kustomizacji, który może być używany przez configMapGenerator.
Poniższa konfiguracja tworzy obiekt .env z określonymi parami klucz/wartość.
# azure.yaml
name: todo-nodejs-mongo-aks
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
api:
project: ./src/api
language: js
host: aks
k8s:
kustomize:
dir: ./kustomize/overlays/${AZURE_ENV_NAME}
edits:
- set image todo-api=${SERVICE_API_IMAGE_NAME}
env:
AZURE_AKS_IDENTITY_CLIENT_ID: ${AZURE_AKS_IDENTITY_CLIENT_ID}
AZURE_KEY_VAULT_ENDPOINT: ${AZURE_KEY_VAULT_ENDPOINT}
APPLICATIONINSIGHTS_CONNECTION_STRING: ${APPLICATIONINSIGHTS_CONNECTION_STRING}
Element configMapGenerator generuje mapę konfiguracji K8s z określoną nazwą i zawiera wszystkie pary klucz/wartość, do których odwołuje się .env plik.
# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
- ingress.yaml
configMapGenerator:
- name: todo-web-config
envs:
- .env