Criar um cluster do Red Hat OpenShift 4 no Azure

O Red Hat OpenShift no Azure é um serviço gerenciado do OpenShift que permite implantar e gerenciar clusters rapidamente. Este artigo mostra como implantar um cluster do Red Hat OpenShift no Azure usando a CLI do Azure ou o portal do Azure.

Antes de começar

Se optar por instalar e usar a CLI localmente, você precisará executar a CLI do Azure versão 2.30.0 ou posterior. Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

O Red Hat OpenShift no Azure requer um mínimo de 40 núcleos para criar e executar um cluster do OpenShift. A cota de recursos padrão do Azure para uma nova assinatura do Azure não atende a esse requisito. Para solicitar um aumento no limite de recursos, confira Cota Standard: Aumentar limites por série de VM.

  • Por exemplo, para verificar a cota de assinatura atual da menor SKU da família de máquinas virtuais com suporte "Standard DSv3":

    LOCATION=eastus
    az vm list-usage -l $LOCATION \
    --query "[?contains(name.value, 'standardDSv3Family')]" \
    -o table
    

Verificar suas permissões

Neste artigo, você cria um grupo de recursos, que contém a rede virtual do cluster. Para fazer isso, você precisará de permissões Colaborador e Administrador de Acesso do Usuário (ou permissões Proprietário) diretamente na rede virtual ou no grupo de recursos ou na assinatura que o contém.

Também serão necessárias permissões suficientes do Microsoft Entra (um usuário membro do locatário ou um convidado atribuído com a função Administrador de aplicativos) para que a ferramenta crie um aplicativo e uma entidade de serviço em seu nome para o cluster. Consulte Membro e convidados e Atribuir funções de administrador e não administrador a usuários no Microsoft Entra ID para obter mais detalhes.

Registrar os provedores de recursos

  1. Se você tem várias assinaturas do Azure, especifique a ID de assinatura relevante:

    az account set --subscription <SUBSCRIPTION ID>
    
  2. Registre o provedor de recursos Microsoft.RedHatOpenShift:

    az provider register -n Microsoft.RedHatOpenShift --wait
    
  3. Registre o provedor de recursos Microsoft.Compute:

    az provider register -n Microsoft.Compute --wait
    
  4. Registre o provedor de recursos Microsoft.Storage:

    az provider register -n Microsoft.Storage --wait
    
  5. Registre o provedor de recursos Microsoft.Authorization:

    az provider register -n Microsoft.Authorization --wait
    

Obter um segredo de pull do Red Hat (opcional)

Observação

O segredo de pull do ARO não altera o custo da licença do RH OpenShift para o ARO.

Um segredo de pull do Red Hat permite que o cluster acesse registros de contêiner do Red Hat com outros conteúdos, como operadores do OperatorHub. Esta etapa é opcional, mas recomendada. Se você decidir adicionar o segredo de pull mais tarde, siga estas diretrizes. O campo cloud.openshift.com é removido do seu segredo, mesmo que o segredo de pull contenha esse campo. Esse campo habilita um recurso de monitoramento extra que envia dados para o RedHat e, portanto, é desabilitado por padrão. Para habilitar esse recurso, confira https://docs.openshift.com/container-platform/4.11/support/remote_health_monitoring/enabling-remote-health-reporting.html.

  1. Navegue até o portal do gerenciador de cluster do Red Hat OpenShift e faça login.

    Você precisa logar na sua conta do Red Hat ou criar uma conta do Red Hat com seu email empresarial e aceitar os termos e condições.

  2. Selecione Baixar o segredo de pull e baixe um segredo de pull para ser usado com o cluster ARO.

    Mantenha o arquivo pull-secret.txt salvo em algum lugar seguro. O arquivo será usado em cada criação de cluster se você precisar criar um cluster que inclua exemplos ou operadores para o Red Hat ou com os parceiros certificados.

    Quando executar o comando az aro create, você pode fazer referência ao segredo de pull usando o parâmetro --pull-secret @pull-secret.txt. Execute az aro create no diretório em que você armazenou o arquivo pull-secret.txt. Caso contrário, substitua @pull-secret.txt por @/path/to/my/pull-secret.txt.

    Se você estiver copiando o segredo de pull ou fazendo referência a ele em outros scripts, o segredo de pull deverá ser formatado como uma cadeia de caracteres JSON válida.

Preparar um domínio personalizado para o seu cluster (opcional)

Ao executar o comando az aro create, você pode especificar um domínio personalizado para o cluster usando o parâmetro --domain foo.example.com.

Observação

Embora adicionar um nome de domínio seja opcional ao criar um cluster por meio da CLI do Azure, um nome de domínio (ou um prefixo usado como parte do nome DNS gerado automaticamente para servidores de API e console do OpenShift) é necessário ao adicionar um cluster por meio do portal. Confira Início Rápido: Implantar um cluster do Red Hat OpenShift no Azure usando o portal do Azure para obter mais informações.

Se você fornecer um domínio personalizado para o seu cluster, observe os seguintes pontos:

  • Após criar o cluster, você precisa criar dois registros DNS A no servidor DNS para o --domain especificado:

    • api – apontando para o endereço IP do servidor de API
    • *.apps – apontando para o endereço IP de entrada
    • Recupere esses valores executando o seguinte comando após a criação do cluster: az aro show -n -g --query '{api:apiserverProfile.ip, ingress:ingressProfiles[0].ip}'.
  • O console do OpenShift estará disponível em uma URL, como https://console-openshift-console.apps.example.com, em vez de no domínio interno https://console-openshift-console.apps.<random>.<location>.aroapp.io.

  • Por padrão, o OpenShift usa certificados autoassinados para todas as rotas criadas em domínios personalizados *.apps.example.com. Se você optar por usar o DNS personalizado após a conexão com o cluster, será necessário seguir a documentação do OpenShift para configurar uma AC personalizada para o controlador de entrada e uma AC personalizada para o servidor de API.

Criar uma rede virtual contendo duas sub-redes vazias

Em seguida, você criará uma rede virtual contendo duas sub-redes vazias. Se você tiver uma rede virtual existente que atenda às suas necessidades, poderá ignorar esta etapa.

  1. Defina as variáveis a seguir no ambiente de shell no qual você executará os comandos az.

    LOCATION=eastus                 # the location of your cluster
    RESOURCEGROUP=aro-rg            # the name of the resource group where you want to create your cluster
    CLUSTER=cluster                 # the name of your cluster
    
  2. Crie um grupo de recursos.

    Um grupo de recursos do Azure é um grupo lógico no qual os recursos do Azure são implantados e gerenciados. Ao criar um grupo de recursos, você é solicitado a especificar um local. Essa é a localização na qual os metadados do grupo de recursos são armazenados e na qual os recursos são executados no Azure, caso você não especifique outra região durante a criação de recursos. Crie um grupo de recursos usando o comando az group create.

    Observação

    O Red Hat OpenShift no Azure não está disponível em todas as regiões em que um grupo de recursos do Azure pode ser criado. Confira regiões disponíveis para obter informações sobre em que locais há suporte para o Red Hat OpenShift no Azure.

    az group create \
      --name $RESOURCEGROUP \
      --location $LOCATION
    

    A seguinte saída de exemplo mostra o grupo de recursos criado com êxito:

    {
      "id": "/subscriptions/<guid>/resourceGroups/aro-rg",
      "location": "eastus",
      "name": "aro-rg",
      "properties": {
        "provisioningState": "Succeeded"
      },
      "type": "Microsoft.Resources/resourceGroups"
    }
    
  3. Crie uma rede virtual.

    Os clusters do Red Hat OpenShift no Azure que executam o OpenShift 4 exigem uma rede virtual com duas sub-redes vazias para os nós mestre e de trabalho. Você pode criar uma rede virtual para isso ou usar uma existente.

    Crie uma rede virtual no mesmo grupo de recursos que você criou anteriormente:

    az network vnet create \
       --resource-group $RESOURCEGROUP \
       --name aro-vnet \
       --address-prefixes 10.0.0.0/22
    

    A seguinte saída de exemplo mostra a rede virtual criada com êxito:

    {
      "newVNet": {
        "addressSpace": {
          "addressPrefixes": [
            "10.0.0.0/22"
          ]
        },
        "dhcpOptions": {
          "dnsServers": []
        },
        "id": "/subscriptions/<guid>/resourceGroups/aro-rg/providers/Microsoft.Network/virtualNetworks/aro-vnet",
        "location": "eastus",
        "name": "aro-vnet",
        "provisioningState": "Succeeded",
        "resourceGroup": "aro-rg",
        "type": "Microsoft.Network/virtualNetworks"
      }
    }
    
  4. Adicione uma sub-rede vazia para os nós mestres.

    az network vnet subnet create \
      --resource-group $RESOURCEGROUP \
      --vnet-name aro-vnet \
      --name master-subnet \
      --address-prefixes 10.0.0.0/23
    
  5. Adicione uma sub-rede vazia para os nós de trabalho.

    az network vnet subnet create \
      --resource-group $RESOURCEGROUP \
      --vnet-name aro-vnet \
      --name worker-subnet \
      --address-prefixes 10.0.2.0/23
    

Criar o cluster

Execute o comando a seguir para criar um cluster. Se você optar por usar uma das seguintes opções, modifique o comando adequadamente:

  • Opcionalmente, você pode passar o segredo de pull do Red Hat, o que permite que seu cluster acesse registros de contêiner do Red Hat juntamente com outro conteúdo. Adicione o argumento --pull-secret @pull-secret.txt ao comando.
  • Opcionalmente, você pode usar um domínio personalizado. Adicione o argumento --domain foo.example.com ao comando, substituindo foo.example.com pelo seu domínio personalizado.

Observação

O número máximo de nós de trabalho definíveis no momento da criação é 50. Você pode escalar verticalmente até 250 nós após a criação do cluster.

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet

Depois de executar o comando az aro create, normalmente leva cerca de 45 minutos para criar um cluster.

Clusters ARO em grande escala

Se você estiver procurando implantar um cluster do Red Hat OpenShift no Azure com mais de 100 nós de trabalho, confira Implantar um cluster grande do Red Hat OpenShift no Azure

Selecionando uma versão diferente do ARO

Você pode optar por usar uma versão específica do ARO ao criar o cluster. Primeiro, use a CLI para consultar versões do ARO disponíveis:

az aro get-versions --location <region>

Depois de escolher a versão, especifique-a usando o parâmetro --version no comando az aro create:

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --version <x.y.z>