|
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. |
Instalar/Fazer upgrade SUSE Rancher Prime em um Cluster Kubernetes
Nesta seção, você aprenderá como implantar o Rancher em um cluster Kubernetes usando a CLI do Helm.
Pré-requisitos
Kubernetes Cluster
Configure o cluster Kubernetes local do servidor Rancher.
O Rancher pode ser instalado em qualquer cluster Kubernetes. Este cluster pode usar Kubernetes upstream, ou pode usar uma das distribuições Kubernetes do Rancher, ou pode ser um cluster Kubernetes gerenciado de um provedor como o Amazon EKS.
Para ajuda na configuração de um cluster Kubernetes, fornecemos estes tutoriais:
-
K3s: Para o tutorial de instalação de um cluster Kubernetes K3s, consulte esta página. Para ajuda na configuração da infraestrutura para um cluster K3s de alta disponibilidade, consulte esta página.
-
RKE2: Para o tutorial de instalação de um cluster Kubernetes RKE2, consulte esta página. Para ajuda na configuração da infraestrutura para um cluster RKE2 de alta disponibilidade, consulte esta página.
-
Amazon EKS: Para detalhes sobre como instalar o Rancher no Amazon EKS, incluindo como instalar um controlador de Ingress para que o servidor Rancher possa ser acessado, consulte esta página.
-
AKS: Para detalhes sobre como instalar o Rancher com o Azure Kubernetes Service, incluindo como instalar um controlador de Ingress para que o servidor Rancher possa ser acessado, consulte esta página.
-
GKE: Para detalhes sobre como instalar o Rancher com o Google Kubernetes Engine, incluindo como instalar um controlador de Ingress para que o servidor Rancher possa ser acessado, consulte esta página. O GKE possui dois modos de operação ao criar um cluster Kubernetes, modo Autopilot e modo Padrão. A configuração do cluster para o modo Autopilot tem restrições na edição do namespace kube-system. No entanto, o Rancher precisa criar recursos no namespace kube-system durante a instalação. Como resultado, você não poderá instalar o Rancher em um cluster GKE criado no modo Autopilot.
Controlador de Ingress
A interface do usuário e a API do Rancher são expostas através de um Ingress. Isso significa que o cluster Kubernetes em que você instala o Rancher deve conter um controlador de Ingress.
Para instalações RKE2 e K3s, você não precisa instalar o controlador de Ingress manualmente, pois um é instalado por padrão.
Para distribuições que não incluem um Controlador de Ingress por padrão, como um cluster Kubernetes hospedado, como EKS, GKE ou AKS, você deve implantar um controlador de Ingress primeiro. Observe que o Helm chart do Rancher não define um ingressClassName no ingress por padrão. Por causa disso, você deve configurar o controlador de Ingress para também monitorar Ingress sem um ingressClassName.
Exemplos estão incluídos nos tutoriais Amazon EKS, AKS e GKE acima.
Ferramentas CLI
As seguintes ferramentas de linha de comando são necessárias para configurar o cluster Kubernetes. Por favor, certifique-se de que essas ferramentas estão instaladas e disponíveis em seu $PATH.
-
kubectl - ferramenta de linha de comando do Kubernetes.
-
helm - gerenciamento de pacotes para Kubernetes. Consulte os requisitos de versão do Helm para escolher uma versão do Helm para instalar o Rancher. Consulte as instruções fornecidas pelo projeto Helm para sua plataforma específica.
Instale o Helm Chart do Rancher
O Rancher é instalado usando o gerenciador de pacotes Helm para Kubernetes. Os charts do Helm fornecem uma sintaxe de template para documentos de manifesto YAML do Kubernetes. Com o Helm, podemos criar implantações configuráveis em vez de apenas usar arquivos estáticos.
Para sistemas sem acesso direto à internet, veja Air Gap: Kubernetes install.
Para escolher uma versão do Rancher para instalar, consulte xref:[Escolhendo uma Versão do Rancher.]
Para escolher uma versão do Helm para instalar o Rancher, consulte os requisitos de versão do Helm
|
As instruções de instalação assumem que você está usando o Helm 3. |
Para configurar o Rancher,
-
Instale o cert-manager (a menos que você esteja trazendo seus próprios certificados ou que o TLS será encerrado em um balanceador de carga)
-
Instale o Rancher com o Helm e a opção de certificado escolhida
1. Adicione o Repositório do Helm Chart
Use o comando helm repo add para adicionar o repositório do Helm Chart que contém charts para instalar o Rancher Prime.
helm repo add rancher-prime <helm-chart-repo-url>
|
To learn more about the Rancher Prime Helm chart repository URL, see our Prime-only documentation. Authentication is required. Use your SUSE Customer Center (SCC) credentials to log in. |
2. Crie um namespace para Rancher
Precisamos definir um namespace do Kubernetes onde os recursos criados pelo Chart devem ser instalados. Isso deve sempre ser cattle-system:
kubectl create namespace cattle-system
3. Escolha sua configuração SSL
O servidor de gerenciamento do Rancher é projetado para ser seguro por padrão e requer configuração SSL/TLS.
|
Se você deseja terminar SSL/TLS externamente, veja Terminação TLS em um Balanceador de Carga Externo. Como descrito nessa página, essa opção possui requisitos adicionais para verificação TLS. |
Existem três opções recomendadas para a origem do certificado usado para a terminação TLS no servidor Rancher:
-
Certificado TLS gerado pelo Rancher: Nesse caso, você precisará instalar
cert-managerno cluster. O Rancher utilizacert-managerpara emitir e manter seus certificados. O Rancher gerará um certificado CA próprio e assinará um certificado usando essa CA.cert-manageré então responsável por gerenciar esse certificado. Nenhuma ação extra é necessária quandoagent-tls-modeestá definido como estrito. Mais informações podem ser encontradas sobre essa configuração em Aplicação de TLS do Agente. -
Let’s Encrypt: A opção Let’s Encrypt também utiliza
cert-manager. No entanto, neste caso, o cert-manager é combinado com um Issuer especial para o Let’s Encrypt que realiza todas as ações (incluindo solicitação e validação) necessárias para obter um certificado emitido pelo Let’s Encrypt. Esta configuração utiliza validação HTTP (HTTP-01), portanto, o balanceador de carga deve ter um registro DNS público e ser acessível pela internet. Ao definiragent-tls-modecomostrict, você também deve especificar--privateCA=truee fazer o upload do CA do Let’s Encrypt conforme descrito em Adicionando Segredos TLS. Mais informações podem ser encontradas sobre esta configuração em Aplicação de TLS do Agente. -
Traga seu Próprio Certificado: Esta opção permite que você traga seu próprio certificado assinado por uma CA pública ou privada. O Rancher usará esse certificado para proteger o tráfego websocket e HTTPS. Neste caso, você deve fazer o upload deste certificado (e da chave associada) como arquivos codificados em PEM com os nomes
tls.crtetls.key. Se você estiver usando uma CA privada, também deve fazer o upload desse certificado. Isso se deve ao fato de que essa CA privada pode não ser confiável pelos seus nós. O Rancher pegará esse certificado CA e gerará um checksum a partir dele, que os vários componentes do Rancher usarão para validar sua conexão com o Rancher. Seagent-tls-modeestiver definido comostrict, o CA deve ser enviado, para que os clusters downstream possam se conectar com sucesso. Mais informações podem ser encontradas sobre essa configuração em Aplicação de TLS do Agente.
| Configuração | Opção do Helm Chart | Requer cert-manager |
|---|---|---|
Certificados Gerados pelo Rancher (Padrão) |
|
|
Let’s Encrypt |
|
|
Certificados de Arquivos |
|
não |
4. Instalar cert-manager
Você deve pular esta etapa se estiver trazendo seus próprios arquivos de certificado (opção
ingress.tls.source=secret), ou se usar terminação TLS em um balanceador de carga externo.
Esta etapa é necessária apenas para usar certificados emitidos pela CA gerada pelo Rancher (ingress.tls.source=rancher) ou para solicitar certificados emitidos pelo Let’s Encrypt (ingress.tls.source=letsEncrypt).
Clique para expandir
|
Importante:
Mudanças recentes no cert-manager exigem fazer upgrade. Se você estiver atualizando o Rancher e usando uma versão do cert-manager anterior à v0.11.0, consulte nossa documentação de upgrade. |
Estas instruções são adaptadas da documentação oficial do cert-manager.
|
Para ver opções sobre como personalizar a instalação do cert-manager (incluindo para casos em que seu cluster usa PodSecurityPolicies), consulte a documentação do cert-manager. |
# If you have installed the CRDs manually, instead of setting `installCRDs` or `crds.enabled` to `true` in your Helm install command, you should upgrade your CRD resources before upgrading the Helm chart: kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<VERSION>/cert-manager.crds.yaml # Add the Jetstack Helm repository helm repo add jetstack https://charts.jetstack.io # Update your local Helm chart repository cache helm repo update # Install the cert-manager Helm chart helm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --set crds.enabled=true
Uma vez que você tenha instalado o cert-manager, pode verificar se ele está implantado corretamente verificando o namespace do cert-manager em busca de pods em execução:
kubectl get pods --namespace cert-manager NAME READY STATUS RESTARTS AGE cert-manager-5c6866597-zw7kh 1/1 Running 0 2m cert-manager-cainjector-577f6d9fd7-tr77l 1/1 Running 0 2m cert-manager-webhook-787858fcdb-nlzsq 1/1 Running 0 2m
5. Instale o Rancher com Helm e a opção de certificado escolhida.
O comando exato para instalar o Rancher difere dependendo da configuração do certificado.
No entanto, independentemente da configuração do certificado, o nome da instalação do Rancher no namespace cattle-system deve sempre ser rancher.
|
Teste e Desenvolvimento:
Este comando final para instalar o Rancher requer um nome de domínio que redirecione o tráfego para o Rancher. Se você estiver usando a CLI do Helm para configurar um protótipo, pode usar um nome de domínio falso ao passar a opção |
-
Certificados gerados pelo Rancher
-
Let’s Encrypt
-
Certificados de Arquivos
O padrão é que o Rancher gere um CA e use cert-manager para emitir o certificado para acesso à interface do servidor Rancher.
Como rancher é a opção padrão para ingress.tls.source, não estamos especificando ingress.tls.source ao executar o comando helm install.
-
Defina o
hostnamepara o nome DNS que você apontou para o seu balanceador de carga. -
Defina o
bootstrapPasswordpara algo único para o usuárioadmin. -
Para instalar uma versão específica do Rancher, use a flag
--version, exemplo:--version 2.7.0
helm install rancher rancher-prime/rancher \ --namespace cattle-system \ --set hostname=rancher.my.org \ --set bootstrapPassword=admin
Aguarde o Rancher ser implantado:
kubectl -n cattle-system rollout status deploy/rancher Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available... deployment "rancher" successfully rolled out
Esta opção usa cert-manager para solicitar e renovar automaticamente certificados Let’s Encrypt. Este é um serviço gratuito que fornece um certificado válido, pois o Let’s Encrypt é uma CA confiável.
|
Você precisa ter a porta 80 aberta, pois o desafio HTTP-01 só pode ser realizado na porta 80. |
No seguinte comando,
-
hostnameestá definido como o registro DNS público, -
Defina o
bootstrapPasswordpara algo único para o usuárioadmin. -
ingress.tls.sourceestá definido comoletsEncrypt -
letsEncrypt.emailestá definido como o endereço de e-mail usado para comunicação sobre seu certificado (por exemplo, avisos de expiração) -
Defina
letsEncrypt.ingress.classcomo o que seu controlador de entrada é, por exemplo,traefik,nginx,haproxy, etc.
|
Quando |
helm install rancher rancher-prime/rancher \ --namespace cattle-system \ --set hostname=rancher.my.org \ --set bootstrapPassword=admin \ --set ingress.tls.source=letsEncrypt \ --set letsEncrypt.email=me@example.org \ --set letsEncrypt.ingress.class=nginx
Aguarde o Rancher ser implantado:
kubectl -n cattle-system rollout status deploy/rancher Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available... deployment "rancher" successfully rolled out
Nesta opção, segredos do Kubernetes são criados a partir de seus próprios certificados para uso do Rancher.
Quando você executar este comando, a opção hostname deve corresponder ao Common Name ou a uma entrada Subject Alternative Names no certificado do servidor, ou o controlador de entrada falhará ao configurar corretamente.
Embora uma entrada no Subject Alternative Names seja tecnicamente necessária, ter um Common Name correspondente maximiza a compatibilidade com navegadores e aplicativos mais antigos.
|
Se você quiser verificar se seus certificados estão corretos, veja Como faço para verificar o Nome Comum e os Nomes Alternativos do Sujeito no meu certificado de servidor? |
-
Defina o
hostname. -
Defina o
bootstrapPasswordpara algo único para o usuárioadmin. -
Defina
ingress.tls.sourcecomosecret.
helm install rancher rancher-prime/rancher \ --namespace cattle-system \ --set hostname=rancher.my.org \ --set bootstrapPassword=admin \ --set ingress.tls.source=secret
Se você estiver usando um certificado assinado por uma CA Privada, adicione --set privateCA=true ao comando:
helm install rancher rancher-prime/rancher \ --namespace cattle-system \ --set hostname=rancher.my.org \ --set bootstrapPassword=admin \ --set ingress.tls.source=secret \ --set privateCA=true
Agora que o Rancher está implantado, veja Adicionando Segredos TLS para publicar os arquivos de certificados para que o Rancher e o Ingress controller possam usá-los.
A configuração do gráfico do Rancher tem muitas opções para personalizar a instalação de acordo com o seu ambiente específico. Aqui estão alguns cenários avançados comuns.
Veja as Opções do Gráfico para a lista completa de opções.
6. Verifique se o servidor Rancher foi implantado com sucesso
Após adicionar os segredos, verifique se o Rancher foi implantado com sucesso:
kubectl -n cattle-system rollout status deploy/rancher Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available... deployment "rancher" successfully rolled out
Se você ver o seguinte erro: error: deployment "rancher" exceeded its progress deadline, pode verificar o status da implantação executando o seguinte comando:
kubectl -n cattle-system get deploy rancher NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE rancher 3 3 3 3 3m
Deve mostrar a mesma contagem para DESIRED e AVAILABLE.
7. Salve suas opções
Certifique-se de salvar as opções --set que você usou. Você precisará usar as mesmas opções ao fazer upgrade do Rancher para novas versões com o Helm.
Finalizando
É isso. Você deve ter um servidor Rancher funcional.
Em um navegador da web, vá para o nome DNS que encaminha o tráfego para o seu balanceador de carga. Então você deve ser recebido pela colorida página de login.
Não funciona? Dê uma olhada na página Solução de Problemas