Recursos do OCI para o Instalador Baseado em Agente para Instalação Manual

Crie manualmente os recursos do OCI necessários para instalar um cluster do Container Platform OpenShift usando o Instalador baseado em Agente.

Dica

Se você estiver provisionando recursos com o Terraform, conforme descrito em Instalando um Cluster com o Instalador Baseado em Agente Usando o Terraform, poderá ignorar este tópico.

O workflow do Instalador baseado em Agente para configurar a infraestrutura começa na Console do Red Hat Hybrid Cloud, na qual você faz download do binário openshift-installpara criar uma imagem ISO de descoberta necessária para provisionar instâncias do serviço Compute no OCI. Consulte a página Downloads do Instalador e da CLI OpenShift para fazer download do binário.

Para poder gerar a imagem ISO de descoberta (usada para provisionar instâncias do serviço Compute no OCI), você precisa provisionar a infraestrutura do OCI. Isso inclui OCIDs, faixas de CIDR da VCN, contagens de plano de controle e instância de computação e outras entradas necessárias para criar os arquivos de instalação baseados no Agente agent-config.yaml, install-config.yaml e openshift/custom_manifest.yaml.

Após gerar a imagem, você alterna para a Console do OCI para provisionar a infraestrutura restante e continuar com a implantação do cluster.

Ao usar o Instalador baseado em Agente, você precisa dos recursos discutidos no tópico Pré-requisitos e nos seguintes componentes de infraestrutura:

  • Compartimento
  • VCN
  • Balanceadores de carga
  • Registros de DNS para os balanceadores de carga
  • Namespace de tag e tags definidas para os nós de computação do cluster
  • Grupo dinâmico do IAM para os nós de computação do cluster
  • Políticas de IAM para o grupo dinâmico
  • Imagem personalizada para provisionamento da instância do serviço Compute, criada com base na imagem ISO de descoberta OpenShift.
Dica

Você pode criar a maioria desses recursos antes de começar, exceto a imagem personalizada do serviço Compute, que requer a imagem ISO de descoberta.

Compartimento

Os compartimentos permitem que você organize e isole recursos de nuvem. Recomendamos a criação de um novo compartimento para o cluster OpenShift. Para obter mais informações, consulte Criando um Compartimento.

VCN e Recursos de Rede

Os nós de computação OpenShift, balanceadores de carga e outros recursos usam uma VCN (Rede Virtual na Nuvem) do OCI para estabelecer conexão. Consulte Criando uma VCN para obter instruções sobre como criar uma VCN.

Você precisa de permissões do serviço IAM para gerenciar VCNs e os recursos de Rede relacionados no Tipo de Recurso Agregado virtual-network-family. Consulte Gerenciando o Acesso a Recursos para obter detalhes. Observe que as permissões de rede são discutidas na seção Serviços principais.

Opcionalmente, você pode usar grupos de segurança de rede (NSGs) na sua VCN para controlar o acesso. Consulte Grupos de Segurança de Rede para obter detalhes sobre o uso de NSGs para controlar o tráfego e o acesso à rede. Observe que o NSG deve estar no mesmo compartimento que os outros recursos de infraestrutura OpenShfit.

Consulte a página Recursos Definidos pelo Terraform para OpenShift no OCI em GitHub para obter detalhes de configuração da VCN e da sub-rede. Para definições de recursos específicas, acesse as pastas relevantes no diretório shared_modules e procure os seguintes recursos: oci_core_vcn, oci_core_internet_gateway, oci_core_nat_gateway, oci_core_route_table, oci_core_subnet e oci_core_network_security_group.

Balanceadores de Carga

O cluster Red Hat OpenShift requer dois balanceadores de carga, um para tráfego de rede interno e outro para tráfego externo. Consulte Criando um Balanceador de Carga para obter instruções. Para obter detalhes de alto nível sobre configurações do balanceador de carga, consulte a página Recursos Definidos pelo Terraform para OpenShift no OCI em GitHub. Para definições de recursos específicas, acesse a pasta relevante no diretório shared_modules e procure os seguintes recursos: oci_load_balancer_load_balancer, oci_load_balancer_backend_set e oci_load_balancer_listener.

Balanceador de Carga Interna

Use as seguintes informações para configurar o balanceador de carga usado para tráfego interno:
Porta Máquinas de back-end (membros do pool) Descrição
6,443 Bootstrap e plano de controle Servidor da API Kubernetes
22,623 Bootstrap e plano de controle Servidor de configuração da máquina
22,624 Bootstrap e plano de controle Servidor de configuração da máquina

Balanceador de Carga da API

Usado para tráfego do servidor de API do Kubernetes. Pode ser público ou privado. Use as informações a seguir para configurar o balanceador de carga da API

Porta Máquinas de back-end (membros do pool) Descrição
6,443 Inicializar e controlar nós do plano Tráfego do servidor de API do Kubernetes (HTTPS)
22,624 Inicializar e controlar nós do plano Usado por nós de trabalho para fazer download de configurações de ignição ao ingressar no cluster.
Observação

A porta 22624 é necessária para adicionar novos nós de trabalho ao cluster. Certifique-se de que esteja aberto e roteado corretamente no balanceador de carga de API externo (não interno).

Balanceador de Carga de Aplicativos

Usado para tráfego de entrada de aplicativos (por exemplo, aplicativos do usuário, console web OpenShift). Pode ser público ou privado. Use as informações a seguir para configurar o balanceador de carga Aplicativos
Porta Máquinas de back-end (membros do pool) Descrição
80 Nós que executam pods do Controlador de Entrada (geralmente nós de computação ou de trabalho) Tráfego HTTP
443 Nós que executam pods do Controlador de Entrada (geralmente nós de computação ou de trabalho) tráfego HTTPS
Observação

Você pode configurar os balanceadores de carga para serem públicos ou privados, dependendo dos requisitos de rede e segurança.

Registros do DNS

Crie registros DNS para rotear tráfego de rede OpenShift interno e externo. Dependendo dos seus requisitos de rede e segurança, crie uma zona de DNS pública, uma zona de DNS privada ou ambas. Uma zona DNS privada só pode ser resolvida dentro de redes Oracle (como sua VCN). Uma zona de DNS pública permite acesso externo.

Depois de criar as zonas, adicione registros de DNS para os seguintes nomes de host:
  • api.<cluster_name>.<base_domain>
  • api-int.<cluster_name>.<base_domain>
  • *.apps.<cluster_name>.<base_domain>

Cada registro de DNS deve fazer referência aos mesmos IDs do balanceador de carga público e privado.

Consulte Zonas para obter instruções sobre como criar e gerenciar zonas de DNS.

Para obter detalhes de configuração de DNS de alto nível, consulte a página Recursos Definidos pelo Terraform para OpenShift no OCI em GitHub. Para definições de recursos específicos, acesse a pasta relevante no diretório shared_modules e procure os seguintes recursos: oci_dns_zone e oci_dns_rrset.

Componente Gravar Balanceador de Carga Descrição
API do Kubernetes api.<cluster_name>.<base_domain>. Usar IP do balanceador de carga da API

Um registro DNS A/AAAA ou CNAME e um registro PTR DNS para identificar o balanceador de carga da API.

Esses registros devem ser resolvidos por clientes externos ao cluster e de todos os nós dentro do cluster.

API do Kubernetes api-int.<cluster_name>.<base_domain>. Usar IP do balanceador de carga interno

Um registro DNS A/AAAA ou CNAME e um registro DNS PTR para identificar internamente o balanceador de carga da API.

Esses registros devem ser resolvidos de todos os nós dentro do cluster.

Entrada do Aplicativo *.apps.<cluster_name>.<base_domain>. Usar IP do balanceador de carga de aplicativos

Um registro DNS A/AAAA ou CNAME curinga que se refere ao balanceador de carga de entrada do aplicativo.

O balanceador de carga de entrada do aplicativo tem como alvo as máquinas que executam os pods do Controlador de Entrada. Os pods do Controlador de Entrada são executados nas máquinas de computação por padrão.

Esses registros devem ser resolvidos por clientes externos ao cluster e de todos os nós dentro do cluster.

Por exemplo, console-openshift-console.apps.<cluster_name>.<base_domain> é usado como uma rota curinga para a console do Container Platform OpenShift.

Tags definidas

As tags definidas são necessárias para agrupar e identificar todos os nós de plano de controle e computação.

Usando o serviço Tagging, crie dois namespaces de tag e defina as tags necessárias no compartimento que você está usando para criar o cluster OpenShift:

  • Namespace de tag: openshift-tags e openshift-{cluster_name}
  • Nomes e valores de tags definidos:
    • Para openshift-tags: openshift-resource
    • Para openshift-{cluster_name}:
      • instance-role: control_plane ou compute (dependendo do tipo de nó)
      • boot-volume-type: PARAVIRTUALIZED ou ISCSI

Essas tags devem ser aplicadas a todos os recursos relevantes durante o provisionamento. Para obter mais informações, consulte Tags de Atribuição de Recursos.

Para obter mais informações, consulte Conceitos de Tags e Namespace de Tag.

Para obter instruções de alto nível específicas para OpenShift no OCI, consulte a página Recursos Definidos pelo Terraform para OpenShift no OCI no GitHub. Para definições de recursos específicos, acesse a pasta relevante no diretório shared_modules e procure os seguintes recursos: oci_identity_tag_namespace e oci_identity_tag.

Grupos Dinâmicos

Os grupos dinâmicos permitem agrupar instâncias de computação da Oracle Cloud Infrastructure (OCI) como atores "principais" (semelhantes aos grupos de usuários) para conceder acesso por meio de políticas do IAM.

Você pode criar políticas do IAM (discutidas na seção a seguir) que façam referência a esses grupos dinâmicos para controlar o acesso aos recursos do OCI. Consulte Gerenciando Grupos Dinâmicos para obter instruções. Para obter detalhes de alto nível sobre a configuração de grupos dinâmicos, consulte a página Recursos Definidos pelo Terraform para OpenShift no OCI em GitHub. Para definições de recursos específicos, acesse a pasta relevante no diretório shared_modules e procure o seguinte recurso: oci_identity_dynamic_group.

Use os seguintes valores para definir o grupo dinâmico para instâncias do plano de controle:
  • Nome do grupo dinâmico:
    ${var.cluster_name}_control_plane_nodes
  • Compartimento: Compartimento do cluster
  • Regra de correspondência:
    all {
      instance.compartment.id = "${var.compartment_ocid}",
      tag.${var.op_openshift_tag_namespace}.${var.op_openshift_tag_instance_role}.value = "control_plane"
    }

Políticas de Grupo Dinâmico

Três políticas do IAM são necessárias para que o grupo dinâmico do plano de controle OpenShift acesse e gerencie recursos do OCI durante a criação do cluster. Essas políticas do serviço IAM são necessárias para o grupo dinâmico master. Consulte Gerenciando Grupos Dinâmicos e Visão Geral de Políticas do Serviço IAM para obter instruções. Para obter detalhes de alto nível sobre configurações de política de grupo dinâmico, consulte a página Recursos Definidos pelo Terraform para OpenShift no OCI no GitHub. Para definições de recursos específicos, acesse a pasta relevante no diretório shared_modules e procure o seguinte recurso: oci_identity_policy.

  • Política de Acesso a Recursos do Plano de Controle: Esta política permite que os noes do plano de controle gerenciem recursos básicos de infraestrutura. O grupo dinâmico para nós do plano de controle é chamado ${var.cluster_name}_control_plane_nodes
    • Nome da Política:${var.cluster_name}_control_plane_nodes
    • Compartimento: Compartimento do cluster
    • Instruções de Política:
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage volume-family in compartment id ${var.compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage instance-family in compartment id ${var.compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage security-lists in compartment id ${var.compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to use virtual-network-family in compartment id ${var.compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage load-balancers in compartment id ${var.compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage objects in compartment id ${var.compartment_ocid}
  • Política de Acesso ao Serviço Tagging de Recursos do Cluster: Esta política concede acesso aos nós do plano de controle para usar o namespace openshift-tags para marcar recursos do cluster.
    • Nome da Política: ${var.cluster_name}_control_plane_nodes_tags
    • Compartimento: Compartimento raiz
    • Instrução da Política:
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to use tag-namespaces in tenancy
  • (Opcional) Política de Acesso à Rede: Esta política só será necessária se os componentes de rede estiverem em um compartimento diferente das instâncias do cluster.
    • Nome da Política: ${var.cluster_name}_control_plane_nodes_networking_access_policy

    • Compartimento: Compartimento de rede
    • Instruções de Política:
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage security-lists in compartment id ${var.networking_compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage virtual-network-family in compartment id ${var.networking_compartment_ocid}  

Imagem Personalizada para Instâncias do Container Platform OpenShift

Para criar nós de cluster para o OpenShift Container Platform usando o Instalador baseado em Agente, você precisa de uma imagem personalizada do serviço Compute que contenha o software Red Hat necessário para executar os nós de cluster. Para criar esta imagem, faça o seguinte:

  1. Crie uma imagem ISO de descoberta localmente, usando o binário openshift-install, disponível no Red Hat Hybrid Cloud Console. Consulte Criando arquivos de configuração para instalar um cluster no OCI (documentação da Red Hat) (documentação da Red Hat) para obter instruções.
  2. Faça upload da sua imagem ISO de descoberta para o OCI Object Storage. Consulte Criando um Bucket do Object Storage e Fazendo Upload de um Objeto do Object Storage para um Bucket para obter instruções.
  3. Crie uma imagem personalizada em um serviço Compute com base no ISO de descoberta. Consulte Gerenciando Imagens Personalizadas para obter instruções.
Importante

Ao criar sua imagem personalizada, você deve limpar o recurso 'BIOS' para que essa opção não seja ativada para sua imagem. Consulte Configuring Image Capabilities for Custom Images na documentação Managing Custom Images para obter detalhes.

Arquivos de Configuração do Agente

O Instalador baseado em Agente requer dois arquivos de configuração que devem ser editados para que você possa usar o Instalador baseado em Agente para gerar a imagem ISO de descoberta. Estes são os arquivos agent-config.yaml e install-config.yaml. Consulte Criando arquivos de configuração para instalar um cluster no OCI (documentação da Red Hat) para obter detalhes.

Depois de criar os arquivos agent-config.yaml e install-config.yaml, salve-os localmente. Sua estrutura de diretório local deve ser a seguinte:

.
└── local_machine_work_directory/
    ├── agent-config.yaml
    ├── install-config.yaml
    └── openshift /
        ├── manifest.yml

Configuração do Firewall

Certifique-se de que seu firewall esteja configurado para conceder acesso aos sites que o OpenShift Container Platform exige. Consulte Configurando seu firewall para a OpenShift Container Platform (documentação da Red Hat) para obter detalhes sobre como configurar a lista de permissões do firewall para a OpenShift Container Platform.

Defina a lista de permissões do seu firewall para incluir os seguintes URLs:
URL Porta Função
ghcr.io 443 Fornece a imagem do contêiner para o Oracle Cloud Control Manager (CCM) e a Container Storage Interface (CSI).
Registro.k8s.io 443 Fornece as imagens de contêiner do kubernetes de suporte para CCM e CSI.