|
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. |
Instalação do Docker com terminação TLS no balanceador de carga NGINX de camada 7
Para ambientes de desenvolvimento e teste que têm um requisito especial para terminar TLS/SSL em um balanceador de carga em vez do seu contêiner do Rancher Server, implante o Rancher e configure um balanceador de carga para trabalhar em conjunto com ele.
Um balanceador de carga de camada 7 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.
Este procedimento de instalação orienta você na implantação do Rancher usando um único contêiner e, em seguida, fornece uma configuração de exemplo para um balanceador de carga NGINX de camada 7.
Requisitos para SO, Docker, Hardware e Rede
Certifique-se de que seu nó atenda aos requisitos de instalação gerais.
1. Provisionar Host Linux
Provisione um único host Linux de acordo com nossos Requisitos para iniciar seu Rancher Server.
2. Escolha uma Opção de SSL e Instale o Rancher
Por motivos de segurança, o SSL (Secure Sockets Layer) é necessário ao usar o Rancher. O SSL protege toda a comunicação de rede do Rancher, como quando você faz login ou interage com um cluster.
|
Você deseja..
Veja Opções Avançadas abaixo antes de continuar. |
Selecione entre as opções a seguir:
Opção A-Traga Seu Próprio Certificado: Autoassinado
Se você optar por usar um certificado autoassinado para criptografar a comunicação, deve instalar o certificado em seu balanceador de carga (o que você fará mais tarde) e em seu contêiner Rancher. Execute o comando Docker para implantar o Rancher, apontando-o para o seu certificado.
|
Pré-requisitos:
Crie um certificado autoassinado.
|
Para Instalar o Rancher Usando um Certificado Autoassinado:
-
Ao executar o comando Docker para implantar o Rancher, aponte o Docker para o seu arquivo de certificado CA.
docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ -v /etc/your_certificate_directory/cacerts.pem:/etc/rancher/ssl/cacerts.pem \ rancher/rancher:latest
Opção B-Traga Seu Próprio Certificado: Assinado por uma CA Reconhecida
Details
Se seu cluster for público, é melhor usar um certificado assinado por uma CA reconhecida.
|
Pré-requisitos:
|
Para Instalar o Rancher Usando um Certificado Assinado por uma CA Reconhecida:
Se você usar um certificado assinado por uma CA reconhecida, não é necessário instalar seu certificado no contêiner Rancher. Precisamos garantir que não haja um certificado CA padrão gerado e armazenado, você pode fazer isso passando o parâmetro --no-cacerts para o contêiner.
-
Digite o seguinte comando.
docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ rancher/rancher:latest --no-cacerts
3. Configure o balanceador de carga
Ao usar um balanceador de carga na frente do seu contêiner Rancher, não há necessidade de o contêiner redirecionar a comunicação de porta da porta 80 ou da porta 443. Ao passar o cabeçalho X-Forwarded-Proto: https, esse redirecionamento é desativado.
O balanceador de carga ou proxy deve ser configurado para suportar o seguinte:
-
Conexões WebSocket
-
SPDY / HTTP/2 protocolos
-
Passando / definindo os seguintes cabeçalhos:
Cabeçalho Valor Descrição HostNome do host usado para acessar o Rancher.
Para identificar o servidor solicitado pelo cliente.
X-Forwarded-ProtohttpsPara identificar o protocolo que um cliente usou para se conectar ao balanceador de carga ou proxy. Nota: Se este cabeçalho estiver presente,
rancher/ranchernão redireciona HTTP para HTTPS.X-Forwarded-PortPorta usada para acessar o Rancher.
Para identificar o protocolo que o cliente usou para se conectar ao balanceador de carga ou proxy.
X-Forwarded-ForIP da conexão do cliente.
Para identificar o endereço IP de origem de um cliente.
Exemplo de configuração do NGINX
Esta configuração do NGINX foi testada no NGINX 1.14.
|
Esta configuração do NGINX é apenas um exemplo e pode não se adequar ao seu ambiente. Para documentação completa, veja Balanceamento de Carga do NGINX - Balanceamento de Carga HTTP. |
-
Substitua
rancher-serverpelo endereço IP ou nome do host do nó que está executando o contêiner do Rancher. -
Substitua ambas as ocorrências de
FQDNpelo nome DNS do Rancher. -
Substitua
/certs/fullchain.peme/certs/privkey.pempelo local do certificado do servidor e da chave do certificado do servidor, respectivamente.
worker_processes 4;
worker_rlimit_nofile 40000;
events {
worker_connections 8192;
}
http {
upstream rancher {
server rancher-server:80;
}
map $http_upgrade $connection_upgrade {
default Upgrade;
'' close;
}
server {
listen 443 ssl http2;
server_name FQDN;
ssl_certificate /certs/fullchain.pem;
ssl_certificate_key /certs/privkey.pem;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://rancher;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
proxy_read_timeout 900s;
proxy_buffering off;
}
}
server {
listen 80;
server_name FQDN;
return 301 https://$server_name$request_uri;
}
}
O Que Mais?
-
Recomendado: Revise o xref:[backup] e a xref:[restauração] de um único nó. Embora você não tenha dados que precise fazer backup agora, recomendamos criar backups após o uso regular do Rancher.
-
Crie um cluster Kubernetes: Provisionando Clusters Kubernetes.
Perguntas Frequentes e Solução de Problemas
Para ajuda na solução de problemas de certificados, veja esta seção.
Opções Avançadas
Auditoria de API
Se você deseja registrar todas as transações com a API do Rancher, ative o recurso Auditoria de API adicionando as flags abaixo ao seu comando de instalação.
-e AUDIT_LEVEL=1 \ -e AUDIT_LOG_ENABLED=true \ -e AUDIT_LOG_PATH=/var/log/auditlog/rancher-api-audit.log \ -e AUDIT_LOG_MAXAGE=20 \ -e AUDIT_LOG_MAXBACKUP=20 \ -e AUDIT_LOG_MAXSIZE=100 \
Air Gap
Se você está visitando esta página para completar uma Instalação Air Gap, deve adicionar a URL do seu registro privado à tag do servidor ao executar o comando de instalação na opção que você escolher. Adicione <REGISTRY.DOMAIN.COM:PORT> com a URL do seu registro privado na frente de rancher/rancher:latest.
Exemplo:
<REGISTRY.DOMAIN.COM:PORT>/rancher/rancher:latest
Dados Persistentes
O Rancher usa etcd como um datastore. Quando o Rancher é instalado com Docker, o etcd embutido está sendo usado. Os dados persistentes estão no seguinte caminho no contêiner: /var/lib/rancher.
Você pode montar um volume do host neste local para preservar os dados no host em que está sendo executado:
docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ -v /opt/rancher:/var/lib/rancher \ --privileged \ rancher/rancher:latest
Esta operação requer acesso privilegiado.
Esta configuração do NGINX na camada 7 foi testada na versão 1.13 (mainline) e 1.14 (stable) do NGINX.
|
Esta configuração do NGINX é apenas um exemplo e pode não se adequar ao seu ambiente. Para a documentação completa, veja Balanceamento de Carga NGINX - Balanceador de Carga TCP e UDP. |
upstream rancher {
server rancher-server:80;
}
map $http_upgrade $connection_upgrade {
default Upgrade;
'' close;
}
server {
listen 443 ssl http2;
server_name rancher.yourdomain.com;
ssl_certificate /etc/your_certificate_directory/fullchain.pem;
ssl_certificate_key /etc/your_certificate_directory/privkey.pem;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://rancher;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
proxy_read_timeout 900s;
proxy_buffering off;
}
}
server {
listen 80;
server_name rancher.yourdomain.com;
return 301 https://$server_name$request_uri;
}