Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Интерфейс командной строки разработчика Azure обеспечивает поддержку Helm и Kustomize для улучшения процесса подготовки и развертывания в службе Azure Kubernetes (AKS). Helm и Kustomize — это средства, помогающие настраивать приложения Kubernetes и управлять ими. В следующих разделах вы узнаете, как включить и настроить поддержку этих средств в azd шаблонах.
Включение поддержки Helm
Чтобы включить поддержку Helm, убедитесь, что у вас установлен интерфейс командной строки Helm.
azd Включите флаг функции Helm, выполнив azd config команду:
azd config set alpha.aks.helm on
Конфигурация и развертывание Helm
azd Поддержка Helm позволяет определить список чартов Helm для установки для каждого azd сервиса. Используйте разделы конфигурации helm и k8s в файле azure.yaml, чтобы определить список репозиториев helm или выпусков для установки.
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
Команда azd deploy обрабатывает следующие задачи с помощью helm раздела:
- Добавляет все ссылки на репозитории Helm и (или) обновляет их
- Устанавливает указанные чарты Helm
- Ожидание, пока Helm-релиз перейдет в развернутое состояние.
- Перечисляет соответствующие службы и входящий трафик, определенные в развернутых ресурсах
Включение поддержки Kustomize
Чтобы включить поддержку Kustomize, убедитесь, что установлен интерфейс командной строки Kustomize.
azd Включите флаг компонента Kustomize с помощью azd config команды:
azd config set alpha.aks.kustomize on
Настройка и развертывание Kustomize
Функция Kustomize позволяет использовать Kustomize в рамках развертываний Kubernetes и предоставляет следующие функции:
- Поддержка
baseиvariantконфигурации -
editsэто можно запустить перед развертыванием -
configMapGeneratorсо средамиazd
Настройте функции Kustomize с помощью следующих azure.yaml разделов:
-
dir: относительный путь из службы в каталог Kustomize, содержащийkustomization.yamlфайл.- Поддерживает подстановку переменных среды.
-
edits: массив выражений редактирования, применяемых перед развертыванием- Поддерживает подстановку переменных среды
-
env: отображение пар "ключ-значение", созданное перед развертыванием- Значения карты поддерживают подстановку переменных среды
Случаи использования
azd поддерживает следующие варианты использования Kustomize.
Развертывание манифестов K8s
Следующая конфигурация выполняет команду kubectl apply -k <dir>, указывающую на папку манифестов, содержащую 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
Использование наложений для развертывания с различными вариантами
Этот вариант использования обычно применяется для настройки кастомных конфигураций при развертывании на разных этапах или средах, таких как dev, test и prod. В следующем примере пользователь может указать ${AZURE_ENV_NAME} переменную среды в каталоге kustomize, чтобы автоматически использовать среды azd в качестве стандартного наложения.
# 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}
Измените kustomization.yaml перед развертыванием
Типичное использование изменения kustomization.yaml заключается в корректировке имен и версий образов контейнера, используемых в процессе развертывания.
В следующем примере задается edits конфигурация и kustomize edit ... любая допустимая команда.
azd автоматически интерполирует все переменные среды, на которые ссылается команда edit .
# 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}
Использование azd переменных среды в картах конфигурации
Карты конфигурации или секреты критически важны при настройке кластеров K8s. Так как kustomize не поддерживает прямую подстановку переменных окружения, можно использовать kustomize configMapGenerator с файлом .env.
Раздел kustomize конфигурации поддерживает env раздел, в котором можно определить одну или несколько пар "ключ-значение". Эта конфигурация автоматически создает временный .env файл в каталоге kustomization, который может использоваться configMapGenerator.
Следующая конфигурация создает .env с указанными парами "ключ-значение".
# 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}
configMapGenerator генерирует ConfigMap K8s с указанным именем, содержащую все пары ключ/значение, упомянутые в файле .env.
# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
- ingress.yaml
configMapGenerator:
- name: todo-web-config
envs:
- .env