Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

1. Configurar Infraestrutura e Registro Privado

Nesta seção, você irá provisionar a infraestrutura subjacente para o seu servidor de gerenciamento Rancher em um ambiente air-gapped. Você também irá configurar o registro privado de imagens de contêiner que deve estar disponível para seu(s) nó(s) Rancher.

Um ambiente air-gapped é um ambiente onde o servidor Rancher é instalado offline ou atrás de um firewall.

A infraestrutura depende de você estar instalando o Rancher em um cluster Kubernetes K3s, um cluster Kubernetes RKE ou em um único contêiner Docker. Para mais informações sobre cada opção de instalação, consulte esta página.

O Rancher pode ser instalado em qualquer cluster Kubernetes. Os tutoriais de infraestrutura RKE e K3s abaixo ainda estão incluídos por conveniência.

  • K3s

  • RKE

Recomendamos configurar a seguinte infraestrutura para uma instalação de alta disponibilidade:

  • Dois nós Linux, tipicamente máquinas virtuais, no provedor de infraestrutura de sua escolha.

  • Um banco de dados externo para armazenar os dados do cluster. PostgreSQL, MySQL e etcd são suportados.

  • Um balanceador de carga para direcionar o tráfego para os dois nós.

  • Um registro DNS para mapear uma URL para o balanceador de carga. Isso se tornará a URL do servidor Rancher, e os clusters Kubernetes downstream precisarão acessá-la.

  • Um registro de imagens privado para distribuir imagens de contêiner para suas máquinas.

1. Configure os Nós Linux

Esses hosts estarão desconectados da internet, mas precisam ser capazes de se conectar ao seu registro privado.

Certifique-se de que seus nós atendam aos requisitos gerais de instalação para sistema operacional, tempo de execução do contêiner, hardware e rede.

Para um exemplo de uma maneira de configurar nós Linux, consulte este tutorial para configurar nós como instâncias na Amazon EC2.

2. Configurar Armazenamento de Dados Externo

A capacidade de executar Kubernetes usando um armazenamento diferente de etcd diferencia o K3s de outras distribuições do Kubernetes. Esse recurso oferece flexibilidade para os operadores de Kubernetes. As opções disponíveis permitem que você selecione um armazenamento que melhor se adapte ao seu caso de uso.

Para uma instalação K3s de alta disponibilidade, você precisará configurar um dos seguintes bancos de dados externos:

  • PostgreSQL (certificado contra as versões 10.7 e 11.5)

  • MySQL (certificado contra a versão 5.7)

  • etcd (certificado contra a versão 3.3.15)

Quando você instala o Kubernetes, você fornecerá detalhes para o K3s se conectar ao banco de dados.

Para um exemplo de uma maneira de configurar o banco de dados, consulte este tutorial para configurar um banco de dados MySQL no serviço RDS da Amazon.

Para a lista completa de opções disponíveis para configurar um datastore de cluster K3s, consulte a documentação do K3s.

3. Configure o Balanceador de Carga

Você também precisará configurar um balanceador de carga para direcionar o tráfego para a réplica do Rancher em ambos os nós. Isso evitará que a falha de qualquer nó único interrompa as comunicações com o servidor de gerenciamento do Rancher.

Quando o Kubernetes for configurado em uma etapa posterior, a ferramenta K3s implantará um controlador de Ingress Traefik. Esse controlador escutará nas portas 80 e 443 dos nós de trabalho, respondendo ao tráfego destinado a nomes de host específicos.

Quando o Rancher for instalado (também em uma etapa posterior), o sistema Rancher cria um recurso de Ingress. Esse Ingress informa ao controlador de Ingress Traefik para escutar o tráfego destinado ao nome de host do Rancher. O controlador de Ingress Traefik, ao receber tráfego destinado ao nome de host do Rancher, encaminhará esse tráfego para os pods do Rancher em execução no cluster.

Para sua implementação, considere se você deseja ou precisa usar um balanceador de carga de Camada 4 ou Camada 7:

  • Um balanceador de carga de camada 4 é a escolha mais simples das duas, na qual você está encaminhando tráfego TCP para seus nós. Recomendamos configurar seu balanceador de carga como um balanceador de Camada 4, encaminhando tráfego para as portas TCP/80 e TCP/443 para os nós do cluster de gerenciamento do Rancher. O controlador de Ingress no cluster redirecionará o tráfego HTTP para HTTPS e encerrará o SSL/TLS na porta TCP/443. O controlador de Ingress encaminhará o tráfego para a porta TCP/80 para o pod de Ingress na implantação do Rancher.

  • Um balanceador de carga de camada 7 é um pouco mais complicado, mas pode oferecer recursos que você pode querer. Por exemplo, um balanceador de carga de camada 7 é capaz de lidar com a terminação TLS no balanceador de carga, ao contrário do Rancher que faz a terminação TLS por conta própria. Isso pode ser benéfico se você quiser centralizar a terminação TLS em sua infraestrutura. O balanceamento de carga de camada 7 também oferece a capacidade de o seu balanceador de carga tomar decisões com base em atributos HTTP, como cookies, etc., que um balanceador de carga de camada 4 não consegue considerar. Se você decidir terminar o tráfego SSL/TLS em um balanceador de carga de camada 7, precisará usar a opção --set tls=external ao instalar o Rancher em um passo posterior. Para mais informações, consulte as opções do gráfico Helm do Rancher.

Para um exemplo mostrando como configurar um balanceador de carga NGINX, consulte esta página.

Para um guia de procedimentos para configurar um balanceador de carga de rede Amazon ELB, consulte esta página.

Importante:

Não use este balanceador de carga (ou seja, o local Ingress do cluster) para balancear aplicações além do Rancher após a instalação. Compartilhar este Ingress com outras aplicações pode resultar em erros de websocket para o Rancher após recarregamentos de configuração do Ingress para outros apps. Recomendamos dedicar o local cluster ao Rancher e a nenhuma outra aplicação.

4. Configure o Registro DNS

Uma vez que você tenha configurado seu balanceador de carga, precisará criar um registro DNS para enviar tráfego a este balanceador de carga.

Dependendo do seu ambiente, isso pode ser um registro A apontando para o IP do balanceador de carga, ou pode ser um CNAME apontando para o nome do host do balanceador de carga. Em qualquer um dos casos, certifique-se de que este registro é o nome do host que você pretende que o Rancher responda.

Você precisará especificar este nome do host em um passo posterior ao instalar o Rancher, e não é possível alterá-lo depois. Certifique-se de que sua decisão é final.

Para um guia de procedimentos para configurar um registro DNS para direcionar o tráfego de domínio para um balanceador de carga Amazon ELB, consulte a documentação oficial da AWS.

5. Configure um Registro de Imagens Privado

O Rancher suporta instalações air gap usando um registro privado. Você deve ter seu próprio registro privado ou outros meios de distribuir imagens de contêiner para suas máquinas.

Em uma etapa posterior, quando você configurar seu cluster Kubernetes K3s, você criará um arquivo de configuração de registros privados com detalhes deste registro.

Se você precisar criar um registro privado, consulte as páginas de documentação para seu respectivo runtime:

Para instalar o servidor de gerenciamento Rancher em um cluster RKE de alta disponibilidade, recomendamos configurar a seguinte infraestrutura:

  • Três nós Linux, tipicamente máquinas virtuais, em um provedor de infraestrutura como o EC2 da Amazon, Google Compute Engine ou vSphere.

  • Um balanceador de carga para direcionar o tráfego do front end para os três nós.

  • Um registro DNS para mapear uma URL para o balanceador de carga. Isso se tornará a URL do servidor Rancher, e os clusters Kubernetes downstream precisarão acessá-la.

  • Um registro de imagens privado para distribuir imagens de contêiner para suas máquinas.

Esses nós devem estar na mesma região/data center. Você pode colocar esses servidores em zonas de disponibilidade separadas.

Por que Três Nós?

Em um cluster RKE, os dados do servidor Rancher são armazenados no etcd. Este banco de dados etcd é executado em todos os três nós.

O banco de dados etcd requer um número ímpar de nós para que possa sempre eleger um líder com a maioria do cluster etcd. Se o banco de dados etcd não conseguir eleger um líder, o etcd pode sofrer de split brain, exigindo que o cluster seja restaurado do backup. Se um dos três nós etcd falhar, os dois nós restantes podem eleger um líder porque têm a maioria do número total de nós etcd.

1. Configure os Nós Linux

Esses hosts estarão desconectados da internet, mas precisam ser capazes de se conectar ao seu registro privado.

Certifique-se de que seus nós atendam aos requisitos gerais de instalação para sistema operacional, tempo de execução do contêiner, hardware e rede.

Para um exemplo de uma maneira de configurar nós Linux, consulte este tutorial para configurar nós como instâncias na Amazon EC2.

2. Configure o Balanceador de Carga

Você também precisará configurar um balanceador de carga para direcionar o tráfego para a réplica do Rancher em ambos os nós. Isso evitará que a falha de qualquer nó único interrompa as comunicações com o servidor de gerenciamento do Rancher.

Quando o Kubernetes for configurado em uma etapa posterior, a ferramenta RKE irá implantar um controlador de Ingress NGINX. Esse controlador escutará nas portas 80 e 443 dos nós de trabalho, respondendo ao tráfego destinado a nomes de host específicos.

Quando o Rancher for instalado (também em uma etapa posterior), o sistema Rancher cria um recurso de Ingress. Esse Ingress informa ao controlador de Ingress NGINX para ouvir o tráfego destinado ao nome de host do Rancher. O controlador de Ingress NGINX, ao receber tráfego destinado ao nome de host do Rancher, encaminhará esse tráfego para os pods do Rancher em execução no cluster.

Para sua implementação, considere se você deseja ou precisa usar um balanceador de carga de Camada 4 ou Camada 7:

  • Um balanceador de carga de camada 4 é a escolha mais simples das duas, na qual você está encaminhando tráfego TCP para seus nós. Recomendamos configurar seu balanceador de carga como um balanceador de Camada 4, encaminhando tráfego para as portas TCP/80 e TCP/443 para os nós do cluster de gerenciamento do Rancher. O controlador de Ingress no cluster redirecionará o tráfego HTTP para HTTPS e encerrará o SSL/TLS na porta TCP/443. O controlador de Ingress encaminhará o tráfego para a porta TCP/80 para o pod de Ingress na implantação do Rancher.

  • Um balanceador de carga de camada 7 é um pouco mais complicado, mas pode oferecer recursos que você pode querer. Por exemplo, um balanceador de carga de camada 7 é capaz de lidar com a terminação TLS no balanceador de carga, ao contrário do Rancher que faz a terminação TLS por conta própria. Isso pode ser benéfico se você quiser centralizar a terminação TLS em sua infraestrutura. O balanceamento de carga de camada 7 também oferece a capacidade de o seu balanceador de carga tomar decisões com base em atributos HTTP, como cookies, etc., que um balanceador de carga de camada 4 não consegue considerar. Se você decidir terminar o tráfego SSL/TLS em um balanceador de carga de camada 7, precisará usar a opção --set tls=external ao instalar o Rancher em um passo posterior. Para mais informações, consulte as opções do gráfico Helm do Rancher.

Para um exemplo mostrando como configurar um balanceador de carga NGINX, consulte esta página.

Para um guia de procedimentos para configurar um balanceador de carga de rede Amazon ELB, consulte esta página.

Não use este balanceador de carga (ou seja, o local Ingress do cluster) para balancear aplicações além do Rancher após a instalação. Compartilhar este Ingress com outras aplicações pode resultar em erros de websocket para o Rancher após recarregamentos de configuração do Ingress para outros apps. Recomendamos dedicar o local cluster ao Rancher e a nenhuma outra aplicação.

3. Configure o Registro DNS

Uma vez que você tenha configurado seu balanceador de carga, precisará criar um registro DNS para enviar tráfego a este balanceador de carga.

Dependendo do seu ambiente, isso pode ser um registro A apontando para o IP do LB, ou pode ser um CNAME apontando para o nome do host do balanceador de carga. Em qualquer um dos casos, certifique-se de que este registro é o nome do host que você pretende que o Rancher responda.

Você precisará especificar este nome do host em um passo posterior ao instalar o Rancher, e não é possível alterá-lo depois. Certifique-se de que sua decisão é final.

Para um guia de procedimentos para configurar um registro DNS para direcionar o tráfego de domínio para um balanceador de carga Amazon ELB, consulte a documentação oficial da AWS.

4. Configure um Registro de Imagens Privado

O Rancher suporta instalações air gap usando um registro privado seguro. Você deve ter seu próprio registro privado ou outros meios de distribuir imagens de contêiner para suas máquinas.

Em uma etapa posterior, ao configurar seu cluster Kubernetes RKE, você criará um arquivo de configuração de registros privados com detalhes deste registro.

Se você precisar criar um registro privado, consulte as páginas de documentação para seu respectivo runtime: