Развертывание приложений Windows
Область применения: AKS в Azure Stack HCI 22H2, AKS в Windows Server
В этом руководстве описывается, как развернуть пример приложения ASP.NET в контейнере Windows Server в кластере Служба Azure Kubernetes (AKS) в AKS, включенном с помощью Arc, а затем протестировать и масштабировать приложение. Вы также узнаете, как присоединить узел Windows к домену Active Directory.
В этом руководстве предполагается базовое понимание концепций Kubernetes. Дополнительные сведения см. в статье Основные понятия Kubernetes для гибридной среды AKS.
Подготовка к работе
Убедитесь, что выполнены следующие требования:
- Кластер Служба Azure Kubernetes с по крайней мере одним рабочим узлом Windows.
- Файл kubeconfig для доступа к кластеру.
- Установлен модуль PowerShell AksHci .
При выполнении процедур:
- Выполните команды в окне администрирования PowerShell.
- Убедитесь, что рабочие нагрузки, относящиеся к операционной системе, размещаются на соответствующем узле контейнера. Если в кластере Kubernetes есть сочетание рабочих узлов Linux и Windows, можно использовать селекторы узлов или отметки и допуски. Дополнительные сведения см. в разделе Об использовании селекторов узлов, а также в разделах с отметками и допусками.
Развертывание приложения
Файл манифеста Kubernetes определяет требуемое состояние кластера, например образы контейнеров для запуска. В этих процедурах манифест используется для создания всех объектов, необходимых для запуска примера приложения ASP.NET в контейнере Windows Server. Этот манифест включает развертывание Kubernetes для примера приложения ASP.NET и внешнюю службу Kubernetes для получения доступа к приложению через Интернет.
Пример ASP.NET приложения предоставляется в составе примеров платформа .NET Framework и выполняется в контейнере Windows Server. AkS Arc требует, чтобы контейнеры Windows Server были основаны на образах Windows Server 2019.
Файл манифеста Kubernetes также должен определить селектор узлов, чтобы сообщить кластеру, что нужно запустить модуль pod ASP.NET примера приложения на узле, где могут выполняться контейнеры Windows Server.
Создайте файл с именем sample.yaml
и скопируйте или вставьте следующее определение YAML:
apiVersion: apps/v1
kind: Deployment
metadata:
name: sample
labels:
app: sample
spec:
replicas: 1
template:
metadata:
name: sample
labels:
app: sample
spec:
nodeSelector:
"beta.kubernetes.io/os": windows
containers:
- name: sample
image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp
resources:
limits:
cpu: 1
memory: 800M
requests:
cpu: .1
memory: 300M
ports:
- containerPort: 80
selector:
matchLabels:
app: sample
---
apiVersion: v1
kind: Service
metadata:
name: sample
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 80
selector:
app: sample
Разверните приложение с помощью kubectl apply
команды и укажите имя манифеста YAML:
kubectl apply -f sample.yaml
В следующем примере выходных данных показано, что развертывание и служба были успешно созданы:
deployment.apps/sample created
service/sample created
Тестирование приложения
При запуске приложения Служба Kubernetes предоставляет внешний интерфейс приложения в Интернете. Процесс создания может занять несколько минут. Иногда подготовка службы может занять больше нескольких минут. В таком случае подождите примерно 10 минут.
Чтобы отслеживать ход выполнения, используйте kubectl get service
команду с аргументом --watch
:
kubectl get service sample --watch
Изначально external-IP для примера службы отображается как ожидающий.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sample LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Когда значение EXTERNAL-IP изменится с состояния pending на фактический общедоступный IP-адрес, используйте команду CTRL-C
, чтобы остановить процесс отслеживания kubectl
. В следующем примере выходных данных показан общедоступный IP-адрес, присвоенный службе.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sample LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Чтобы увидеть пример приложения в действии, откройте в веб-браузере внешний IP-адрес вашей службы.
Если время ожидания подключения истекает при попытке загрузить страницу, проверьте, готов ли пример приложения, выполнив kubectl get pods --watch
команду . Иногда внешний IP-адрес становится доступным до запуска контейнера Windows.
Масштабирование модулей pod приложений
Мы создали один реплика внешнего интерфейса приложения. Чтобы просмотреть количество и состояние модулей pod в кластере, используйте следующую kubectl get
команду:
kubectl get pods -n default
Чтобы изменить количество модулей pod в примере развертывания, используйте kubectl scale
команду . В следующем примере число интерфейсных модулей pod увеличивается до 3:
kubectl scale --replicas=3 deployment/sample
Запустите kubectl get pods
еще раз, чтобы убедиться, что модули pod созданы. Они становятся доступными примерно через минуту.
kubectl get pods -n default
Дальнейшие действия
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по