Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode implantar um cluster Kubernetes no Azure Stack Hub a partir de uma VM cliente executando o mecanismo AKS. Este artigo descreve como escrever uma especificação de cluster, implantar um cluster com o arquivo apimodel.json e verificar seu cluster implantando o MySQL com Helm.
Definir uma especificação de cluster
Você pode especificar uma especificação de cluster em um arquivo de documento usando o formato JSON chamado modelo de API. O mecanismo AKS usa uma especificação de cluster no modelo de API para criar seu cluster.
Você pode encontrar exemplos do modelo de API para seu sistema operacional e número de versão do mecanismo AKS para versões recentes no mecanismo AKS e mapeamento de imagem correspondente.
- Encontre o número da versão do motor AKS, por exemplo,
v.0.63.0na tabela. - Na tabela de exemplos de Modelo de API, selecione e abra o link para seu sistema operacional.
- Selecione Raw. Você pode usar o URL nas instruções a seguir.
Uma URL para o modelo de API pode ter a seguinte aparência:
https://raw.githubusercontent.com/Azure/aks-engine-azurestack/master/examples/azure-stack/kubernetes-azurestack.json
Para cada um dos exemplos a seguir, substitua <URL for the API Model> pelo URL.
Atualizar a API de modelo
Esta seção descreve como criar um modelo de API para seu cluster.
Comece usando um arquivo de Modelo de API do Azure Stack Hub para Linux ou Windows. A partir da máquina, você instalou o mecanismo AKS, execute:
curl -o kubernetes-azurestack.json <URL for the API Model>Nota
Se estiver desligado, pode transferir o ficheiro e copiá-lo manualmente para a máquina desligada onde pretende editá-lo. Você pode copiar o arquivo para sua máquina Linux usando ferramentas como PuTTY ou WinSCP.
Para abrir o modelo de API em um editor, você pode usar nano:
nano ./kubernetes-azurestack.jsonNota
Se você não tem nano instalado, você pode instalar nano no Ubuntu:
sudo apt-get install nano.No arquivo kubernetes-azurestack.json, localize orchestratorRelease e orchestratorVersion. Selecione uma das versões suportadas do Kubernetes; Você pode encontrar a tabela Version nas Notas de versão. Especifique o como x.xx e orchestratorVersion
orchestratorReleasecomo x.xx.x. Para obter uma lista das versões atuais, consulte Versões suportadas do mecanismo AKSLocalize
customCloudProfilee forneça a URL para o portal do locatário. Por exemplo,https://portal.local.azurestack.external.Adicione
"identitySystem":"adfs"se estiver a utilizar o AD FS. Por exemplo,"customCloudProfile": { "portalURL": "https://portal.local.azurestack.external", "identitySystem": "adfs" },Nota
Se estiver a utilizar o Microsoft Entra ID para o seu sistema de identidade, não precisa de adicionar o campo identitySystem .
No
masterProfile, defina os seguintes campos:Campo Descrição dnsPrefix Insira uma cadeia de caracteres exclusiva que servirá para identificar o nome do host das VMs. Por exemplo, um nome baseado no nome do grupo de recursos. contagem Insira o número de mestres que você deseja para sua implantação. O mínimo para uma implantação de HA é 3, mas 1 é permitido para implantações sem HA. vmTamanho Insira um tamanho suportado pelo Azure Stack Hub, exemplo Standard_D2_v2.Distro Digite aks-ubuntu-18.04ouaks-ubuntu-20.04.Atualização em
agentPoolProfiles:Campo Descrição contagem Insira o número de agentes que você deseja para sua implantação. A contagem máxima de nós a utilizar por subscrição é de 50. Se você estiver implantando mais de um cluster por assinatura, certifique-se de que a contagem total de agentes não ultrapasse 50. Certifique-se de usar os itens de configuração especificados no arquivo JSON do modelo de API de exemplo. vmTamanho Insira um tamanho suportado pelo Azure Stack Hub, exemplo Standard_D2_v2.Distro Digite aks-ubuntu-18.04,aks-ubuntu-20.04ouWindows.
UseWindowspara agentes que serão executados no Windows. Por exemplo, consulte kubernetes-windows.jsonAtualização em
linuxProfile:Campo Descrição nomeDeUtilizadorAdmin Insira o nome de usuário administrador da VM. SSH Insira a chave pública que será usada para autenticação SSH com VMs. Use ssh-rsae, em seguida, a chave. Para obter instruções sobre como criar uma chave pública, consulte Criar uma chave SSH para Linux.Se você estiver implantando em uma rede virtual personalizada, poderá encontrar instruções sobre como localizar e adicionar a chave e os valores necessários às matrizes apropriadas no modelo de API em Implantar um cluster Kubernetes em uma rede virtual personalizada.
Nota
O mecanismo AKS para o Azure Stack Hub não permite que você forneça seus próprios certificados para a criação do cluster.
Se estiver a utilizar o Windows, atualize
windowsProfileos valores deadminUsername:eadminPassword:"windowsProfile": { "adminUsername": "azureuser", "adminPassword": "", "sshEnabled": true }
Mais informações sobre o modelo de API
- Para obter uma referência completa de todas as opções disponíveis no modelo de API, consulte as definições de cluster.
- Para obter destaques de opções específicas para o Azure Stack Hub, consulte as especificidades da definição de cluster do Azure Stack Hub.
Implementar um cluster do Kubernetes
Depois de coletar todos os valores necessários em seu modelo de API, você pode criar seu cluster. Neste ponto, você deve pedir ao operador do Azure Stack Hub para:
- Verifique a integridade do sistema, sugira a execução
Test-AzureStacke a ferramenta de monitoramento de hardware do seu fornecedor OEM. - Verifique a capacidade do sistema, incluindo recursos como memória, armazenamento e IPs públicos.
- Forneça detalhes da cota associada à sua assinatura para que você possa verificar se ainda há espaço suficiente para o número de VMs que você planeja usar.
Prossiga para implantar um cluster:
Analise os parâmetros disponíveis para o mecanismo AKS nos sinalizadores da CLI do Azure Stack Hub.
Parâmetro Exemplo Descrição Azure-ENV AzureStackCloud Para indicar ao mecanismo AKS que sua plataforma de destino é o Azure Stack Hub, use AzureStackCloud.sistema de identidade ADFS Opcional. Especifique sua solução de gerenciamento de identidades se estiver usando os Serviços Federados do Ative Directory (AD FS). localização Locais O nome da região para o seu Azure Stack Hub. grupo de recursos KUBE-RG Insira o nome de um novo grupo de recursos ou selecione um grupo de recursos existente. O nome do recurso precisa ser alfanumérico e minúsculo. Modelo API ./kubernetes-azurestack.json Caminho para o arquivo de configuração do cluster ou modelo de API. diretório de saída KUBE-RG Digite o nome do diretório para conter o arquivo de saída apimodel.json e outros arquivos gerados. ID do cliente xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Insira o GUID da entidade de serviço. A ID do Cliente identificada como a ID do Aplicativo quando o administrador do Hub de Stack do Azure criou a entidade de serviço. segredo de cliente xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Insira o segredo da entidade de serviço. Você configura o segredo do cliente ao criar seu serviço. ID da subscrição xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Introduza o seu ID de Subscrição. Você deve fornecer uma assinatura para o locatário. Não há suporte para a implantação na assinatura administrativa. Para obter mais informações, consulte Assinar uma oferta Segue-se um exemplo:
Nota
Para AKSe versão 0.75.3 e superior, o comando para implantar um cluster de mecanismo AKS é
aks-engine-azurestack deploy.aks-engine deploy \ --azure-env AzureStackCloud \ --location \ --resource-group kube-rg \ --api-model ./kubernetes-azurestack.json \ --output-directory kube-rg \ --client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --identity-system adfs # required if using AD FSSe, por algum motivo, a execução falhar após a criação do diretório de saída, você poderá corrigir o problema e executar novamente o comando. Se você estiver executando novamente a implantação e usou o mesmo diretório de saída antes, o mecanismo AKS retornará um erro informando que o diretório já existe. Você pode substituir o diretório existente usando o sinalizador
--force-overwrite.Salve a configuração do cluster do mecanismo AKS em um local seguro e criptografado.
Localize o arquivo apimodel.json. Salve-o em um local seguro. Este ficheiro é usado como entrada em todas as suas outras operações do motor AKS.
O arquivo apimodel.json gerado contém a entidade de serviço, o segredo e a chave pública SSH que você usa no modelo de API de entrada. O arquivo também tem todos os outros metadados necessários para o mecanismo AKS executar todas as outras operações. Se você perder o arquivo, o mecanismo AKS não poderá configurar o cluster.
Os segredos não são encriptados. Mantenha o ficheiro num local encriptado e seguro.
Verificar o cluster
Verifique o cluster conectando-se ao kubectl, obtendo as informações e, em seguida, obtendo os estados dos nós.
Obtenha o
kubeconfigarquivo para se conectar ao plano de controle.- Se você já tiver
kubectlinstalado, verifique okubeconfigarquivo para o cluster recém-criado neste caminho/kubeconfig/kubeconfig.jsonde diretório . Você pode adicionar o/kubeconfig.jsonao.kubediretório e renomeá-lo para "config" para acessar seu novo cluster.
Se ainda não instaloukubectl, consulte Instalar ferramentas para configurar a ferramenta de linha de comandos do Kubernetes. Caso contrário, siga estas instruções para acessar o cluster a partir de um dos nós do plano de controle.
- Se você já tiver
Obtenha o endereço IP público de um dos nós do plano de controle usando o portal do Azure Stack Hub.
A partir de uma máquina com acesso à sua instância do Azure Stack Hub, conecte-se via SSH ao novo nó do plano de controle usando um cliente como PuTTY ou MobaXterm.
Para o utilizador SSH, utilize
azureusere o ficheiro de chave privada do par de chaves que forneceu para a implementação do cluster.Verifique se os pontos de extremidade do cluster estão em execução:
kubectl cluster-infoO resultado deve ser algo semelhante ao seguinte:
Kubernetes master is running at https://democluster01.location.domain.com CoreDNS is running at https://democluster01.location.domain.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy Metrics-server is running at https://democluster01.location.domain.com/api/v1/namespaces/kube-system/services/https:metrics-server:/proxyEm seguida, o nó de revisão afirma:
kubectl get nodesO resultado deve ser semelhante ao seguinte:
k8s-linuxpool-29969128-0 Ready agent 9d v1.15.5 k8s-linuxpool-29969128-1 Ready agent 9d v1.15.5 k8s-linuxpool-29969128-2 Ready agent 9d v1.15.5 k8s-master-29969128-0 Ready master 9d v1.15.5 k8s-master-29969128-1 Ready master 9d v1.15.5 k8s-master-29969128-2 Ready master 9d v1.15.5
Solucionar problemas de implantação de cluster
Se você encontrar erros ao implantar um cluster Kubernetes usando o mecanismo AKS, poderá verificar:
- Você está usando as credenciais corretas da entidade de serviço (SPN)?
- O SPN tem uma função "Colaboradores" para a assinatura do Azure Stack Hub?
- Você tem uma cota grande o suficiente em seu plano do Azure Stack Hub?
- A instância do Azure Stack Hub está com um patch ou atualização sendo aplicado?
Para obter mais informações, consulte o artigo Solução de problemas no repositório GitHub Azure/aks-engine-azurestack .
Gire o segredo do princípio de serviço
Após a implantação do cluster Kubernetes com o mecanismo AKS, a entidade de serviço (SPN) é usada para gerenciar interações com o Azure Resource Manager em sua instância do Azure Stack Hub. Em algum momento, o segredo para isso o responsável pelo serviço pode expirar. Se o seu segredo expirar, você pode atualizar as credenciais da seguinte forma:
- Atualizando cada nó com o novo segredo da entidade de serviço.
- Ou atualizando as credenciais do modelo de API e executando a atualização.
Atualizar cada nó manualmente
- Obtenha um novo segredo para a sua entidade de serviço junto do seu operador de nuvem. Para obter instruções sobre o Azure Stack Hub, consulte Usar uma identidade de aplicativo para acessar recursos do Azure Stack Hub.
- Use as novas credenciais fornecidas pelo seu operador de nuvem para atualizar /etc/kubernetes/azure.json em cada nó. Depois de fazer a atualização, reinicie ambos e
kubelekube-controller-manager.
Atualizar o cluster com a atualização aks-engine
Como alternativa, você pode substituir as credenciais no apimodel.json e executar a atualização usando o arquivo .json atualizado para a mesma versão ou versão mais recente do Kubernetes. Para obter instruções sobre como atualizar o modelo, consulte Atualizar um cluster Kubernetes no Azure Stack Hub