Compartilhar via


Criar um cluster privado do Red Hat OpenShift 4 no Azure

Neste artigo, você prepara seu ambiente para criar clusters privados do Red Hat OpenShift no Azure executando o OpenShift 4. Você aprenderá como:

  • Configurar os pré-requisitos e criar a rede virtual e as sub-redes necessárias
  • Implantar um cluster com um ponto de extremidade privado do servidor de API e um controlador de entrada privado

Se você optar por instalar e usar a CLI localmente, este tutorial exigirá que esteja executando a CLI do Azure versão 2.30.0 ou posterior. Para localizar a versão, execute o comando az --version. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

Antes de começar

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 (caso ainda não tenha feito isso):

    az provider register -n Microsoft.Compute --wait
    
  4. Registre o provedor de recursos Microsoft.Network (caso ainda não tenha feito isso):

    az provider register -n Microsoft.Network --wait
    
  5. Registre o provedor de recursos Microsoft.Storage (caso ainda não tenha feito isso):

    az provider register -n Microsoft.Storage --wait
    

Obter um segredo de pull do Red Hat (opcional)

Um segredo de pull do Red Hat permite que o cluster acesse registros de contêiner do Red Hat juntamente com outro conteúdo. Este passo é opcional, mas recomendado.

  1. Acesse o portal do gerenciador de cluster do Red Hat OpenShift e entre.

    Entre em sua conta da Red Hat ou crie uma conta na Red Hat com seu email comercial e aceite os termos e condições.

  2. Clique em Baixar segredo de acesso.

Mantenha o arquivo pull-secret.txt salvo em algum lugar seguro; ele será usado em cada criação de cluster.

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-file.

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.

Criar uma rede virtual contendo duas sub-redes vazias

Em seguida, crie uma rede virtual contendo duas sub-redes vazias.

  1. Defina as variáveis a seguir.

    LOCATION=eastus                 # the location of your cluster
    RESOURCEGROUP="v4-$LOCATION"    # the name of the resource group where you want to create your cluster
    CLUSTER=aro-cluster             # the name of your cluster
    
  2. Criar 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ê deve especificar um local. Esse local é onde os metadados do grupo de recursos são armazenados e também é onde seus recursos são executados no Azure se você não especificar outra região durante a criação do recurso. Crie um grupo de recursos usando o comando az group create.

    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",
    "managedBy": null,
    "name": "aro-rg",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null
    }
    
  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 de controle e de trabalho.

    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"
          ]
        },
        "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 \
    --service-endpoints Microsoft.ContainerRegistry
    
  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 \
    --service-endpoints Microsoft.ContainerRegistry
    
  6. Desabilitar as políticas de ponto de extremidade privado da sub-rede na sub-rede principal. Isso é necessário para conectar e gerenciar o cluster.

    az network vnet subnet update \
    --name master-subnet \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --private-link-service-network-policies Disabled
    

Criar o cluster

Execute o comando a seguir para criar um cluster. Opcionalmente, você pode fornecer seu segredo de pull da Red Hat, o que permite que seu cluster acesse registros de contêiner da Red Hat, entre outros conteúdos.

Observação

Se estiver copiando/colando comandos e usando um dos parâmetros opcionais, certifique-se de excluir as hashtags iniciais e o texto do comentário final. Além de isso, feche o argumento na linha anterior do comando com uma barra invertida à direita.

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private
  # --domain foo.example.com # [OPTIONAL] custom domain
  # --pull-secret @pull-secret.txt # [OPTIONAL]

O comando az aro create normalmente leva cerca de 35 minutos para criar um cluster.

Observação

Ao tentar criar um cluster, se você receber uma mensagem de erro informando que sua cota de recursos foi excedida, consulte Adicionar Cota à conta para saber como proceder.

Importante

Se você optar por especificar um domínio personalizado, por exemplo foo.example.com, o console do OpenShift estará disponível em uma URL, como https://console-openshift-console.apps.foo.example.com, em vez do domínio https://console-openshift-console.apps.<random>.<location>.aroapp.iointerno.

Por padrão, o OpenShift usa certificados autoassinados para todas as rotas criadas em *.apps.<random>.<location>.aroapp.io. Se você escolher DNS personalizado, depois de se conectar ao cluster, será necessário seguir a documentação do OpenShift para configurar um certificado personalizado o para o controlador de entrada e certificado personalizado para o servidor de API.

Criar um cluster privado sem um endereço IP público

Normalmente, os clusters privados são criados com um endereço IP público e um balanceador de carga, fornecendo um meio de conectividade de saída para outros serviços. No entanto, você pode criar um cluster privado sem um endereço IP público. Isso pode ser necessário em situações em que os requisitos de segurança ou política proíbem o uso de endereços IP públicos.

Para criar um cluster privado sem um endereço IP público, siga o procedimento acima, acrescentando o parâmetro --outbound-type UserDefinedRouting ao comando aro create, como no exemplo a seguir:

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private \
  --outbound-type UserDefinedRouting

Observação

O sinalizador UserDefinedRouting só pode ser usado na criação de clusters com os parâmetros --apiserver-visibility Private e --ingress-visibility Private. Verifique se você está usando a CLI mais recente do Azure. Os clusters implantados com a CLI do Azure 2.52.0 e anteriores serão implantados com IPs públicos.

Essa opção de Roteamento Definido pelo Usuário impede que um endereço IP público seja provisionado. O UDR (Roteamento Definido pelo Usuário, roteamento definido pelo usuário) permite que você crie rotas personalizadas no Azure para substituir as rotas padrão do sistema ou adicionar mais rotas à tabela de rotas de uma sub-rede. Consulte Roteamento de tráfego de rede virtual para saber mais.

Importante

Certifique-se de especificar a sub-rede correta com a tabela de roteamento configurada corretamente ao criar seu cluster privado.

Para saída, a opção Roteamento Definido pelo Usuário garante que o cluster recém-criado tenha o recurso de bloqueio de saída habilitado para permitir que você proteja o tráfego de saída do seu novo cluster privado. Consulte Controle do tráfego de saída para seu cluster do Azure Red Hat OpenShift para saber mais.

Observação

Se você escolher o tipo de rede Roteamento Definido pelo Usuário, será totalmente responsável por gerenciar a saída do roteamento do seu cluster fora da sua rede virtual (por exemplo, obter acesso à Internet pública). O Red Hat OpenShift do Azure não pode gerenciar isso para você.

Você pode configurar um ou mais endereços IP de saída para um namespace ou para pods específicos em um namespace de um cluster privado sem endereço IP público. Para fazer isso, siga o procedimento acima para criar um cluster privado sem um endereço IP público e, em seguida, configure o IP de saída de acordo com este documento do Red Hat OpenShift. Esses endereços IP de saída precisam ser das sub-redes associadas ao cluster.

A configuração de um IP de saída para um cluster privado só tem suporte para clusters com o --outbound-type UserDefinedRouting parâmetro. Não há suporte para clusters públicos que têm o --outbound-type LoadBalancer parâmetro.

Conectar ao cluster privado

Você pode fazer logon no cluster usando o usuário kubeadmin. Execute o comando a seguir para localizar a senha para o usuário kubeadmin.

az aro list-credentials \
  --name $CLUSTER \
  --resource-group $RESOURCEGROUP

O exemplo de saída a seguir mostra a senha em kubeadminPassword.

{
  "kubeadminPassword": "<generated password>",
  "kubeadminUsername": "kubeadmin"
}

Você pode encontrar a URL do console do cluster executando o seguinte comando, que se parece com https://console-openshift-console.apps.<random>.<region>.aroapp.io/

 az aro show \
    --name $CLUSTER \
    --resource-group $RESOURCEGROUP \
    --query "consoleProfile.url" -o tsv

Importante

Para se conectar a um cluster privado do Red Hat OpenShift no Azure, você precisa executar a etapa a seguir de um host que esteja na Rede Virtual criada ou em uma Rede Virtual emparelhada com a Rede Virtual na qual o cluster foi implantado.

Inicie a URL do console em um navegador e entre usando as credenciais kubeadmin.

Instalar a CLI do OpenShift

Depois de entrar no Console Web do OpenShift, selecione no ? canto superior direito e, em seguida, nas Ferramentas de Linha de Comando. Baixe a versão apropriada para seu computador.

Captura de tela que realça a opção Ferramentas de Linha de Comando na lista quando você seleciona o ícone de ponto de interrogação.

Você também pode baixar a versão mais recente da CLI apropriada para seu computador.

Conectar-se usando a CLI do OpenShift

Recupere o endereço do servidor de API.

apiServer=$(az aro show --resource-group $RESOURCEGROUP --name $CLUSTER --query apiserverProfile.url --output tsv)

Importante

Para se conectar a um cluster privado do Red Hat OpenShift no Azure, você precisará executar a etapa a seguir em um host que esteja na Rede Virtual que você criou ou em uma Rede Virtual que esteja emparelhada com a Rede Virtual na qual o cluster foi implantado.

Entre no servidor de API do cluster do OpenShift usando o seguinte comando. Substitua <kubeadmin password> pela senha que você recuperou.

oc login $apiServer --username kubeadmin --password <kubeadmin password>

Próximas etapas

Neste artigo, foi implantado um cluster do Red Hat OpenShift no Azure que executa o OpenShift 4. Você aprendeu a:

  • Configurar os pré-requisitos e criar a rede virtual e as sub-redes necessárias
  • Implantar um cluster
  • Conectar-se ao cluster usando o usuário kubeadmin

Prossiga para o próximo artigo para saber como configurar o cluster para autenticação usando o Microsoft Entra ID.