Доступ к частному кластеру Службы Azure Kubernetes (AKS)
При доступе к частному кластеру AKS необходимо подключиться к кластеру из виртуальной сети кластера, одноранговой сети или настроенной частной конечной точки. Для этих подходов нужно настроить VPN или Express Route, развернуть Jumpbox в виртуальной сети кластера или создать частную конечную точку в другой виртуальной сети.
С помощью Azure CLI можно использовать command invoke
для доступа к частным кластерам без необходимости настройки VPN или Express Route. command invoke
позволяет удаленно вызывать команды, такие как kubectl
и helm
, в частном кластере с помощью API Azure без прямого подключения к кластеру. Действия Microsoft.ContainerService/managedClusters/runcommand/action
и Microsoft.ContainerService/managedclusters/commandResults/read
управляют разрешениями для использования command invoke
.
С помощью портал Azure можно использовать функцию Run command
для выполнения команд в частном кластере. Эта Run command
функция использует те же command invoke
функции для выполнения команд в кластере.
Подготовка к работе
Прежде чем начать, убедитесь, что у вас есть следующие ресурсы и разрешения:
- Существующий частный кластер. Если у вас его нет, см. статью Создание частного кластера AKS.
- Azure CLI версии 2.24.0 или более поздней. Чтобы узнать версию, выполните команду
az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0. - Доступ к ролям
Microsoft.ContainerService/managedClusters/runcommand/action
иMicrosoft.ContainerService/managedclusters/commandResults/read
в кластере.
Ограничения
Модуль pod, созданный командой , run
предоставляет helm
и последнюю совместимую версию kubectl
для кластера с kustomize
.
command invoke
выполняет команды из кластера, поэтому все команды, выполняемые таким образом, распространяются на настроенные ограничения сети и другие настроенные ограничения. Убедитесь, что в кластере достаточно узлов и ресурсов для планирования этого модуля командной строки.
Примечание
Размер выходных данных для command invoke
ограничен 512 КБ.
Выполнение команд в кластере AKS
Использование command invoke
для выполнения одной команды
Выполните команду в кластере
az aks command invoke --command
с помощью команды . В следующем примере команда выполняет командуkubectl get pods -n kube-system
в кластере myPrivateCluster в myResourceGroup.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl get pods -n kube-system"
Использование command invoke
для выполнения нескольких команд
Выполните несколько команд в кластере
az aks command invoke --command
с помощью команды . Следующий пример команды выполняет триhelm
команды в кластере myPrivateCluster в myResourceGroup.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "helm repo add bitnami https://charts.bitnami.com/bitnami && helm repo update && helm install my-release bitnami/nginx"
Использование command invoke
для выполнения команд с вложенным файлом или каталогом
Выполните команды с присоединенным файлом или каталогом,
az aks command invoke --command
используя команду с параметром--file
. Следующий пример команды выполняетсяkubectl apply -f deployment.yaml -n default
в кластере myPrivateCluster в myResourceGroup. Файлdeployment.yaml
присоединяется из текущего каталога на компьютере разработки, гдеaz aks command invoke
был запущен.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
Используйте command invoke
для выполнения команд со всеми файлами в текущем подключенном каталоге.
Выполните команды со всеми файлами в текущем каталоге, присоединенным с помощью
az aks command invoke --command
команды с параметром--file
. Следующий пример команды выполняетсяkubectl apply -f deployment.yaml configmap.yaml -n default
в кластере myPrivateCluster в myResourceGroup. Файлыdeployment.yaml
иconfigmap.yaml
являются частью текущего каталога на компьютере разработки, гдеaz aks command invoke
выполнялось выполнение.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml configmap.yaml -n default" \ --file .