[ad_1]
O serviço Managed Kubernetes da DigitalOcean simplifica o provisionamento e a manutenção de clusters Kubernetes. A plataforma fornece uma base pronta para uso para cargas de trabalho em contêiner com suporte de um clique para aplicativos complementares comuns.
Neste artigo, mostraremos como usar um desses plug-ins para configurar um NGINX Ingress Controller em seu cluster. O Ingress fornece um mecanismo para rotear o tráfego externo para seus serviços com base em regras como nome do host, caminho e cabeçalhos. O NGINX Ingress é um dos controladores de entrada mais populares; usa o servidor web NGINX como um proxy reverso direcionando o tráfego de entrada para o serviço Kubernetes correto.
Iniciando
Você deve criar um cluster Kubernetes em sua conta DigitalOcean antes de seguir este tutorial. Também presumiremos que você esteja familiarizado com os conceitos básicos de uso do Kubernetes, Kubectl e o DigitalOcean Cloud Dashboard.
Comece fazendo login no painel da DigitalOcean, clicando no link “Kubernetes” na barra lateral esquerda e selecionando seu pool na página exibida. Em seguida, clique na guia “Mercado” para ver a lista de aplicativos de 1 clique disponíveis.
O que são aplicativos de 1 clique?
Os aplicativos Kubernetes 1-Click da DigitalOcean fornecem instalações pré-configuradas para aplicativos clusterizados populares. Os aplicativos são testados pela DigitalOcean, para que funcionem com todas as versões disponíveis do Kubernetes.
Os aplicativos disponíveis usam a tabela oficial do Helm de seu provedor. Os gráficos são estendidos com configurações padrão fornecidas pela DigitalOcean em um repositório GitHub de código aberto. O Painel de Controle da DigitalOcean permite que você instale os gráficos disponíveis com um único clique, fornecendo uma maneira fácil de começar com os utilitários essenciais. Você não precisa instalar manualmente o Helm ou configurar repositórios de gráficos.
Instalando o NGINX Ingress com o aplicativo de 1 clique
Agora você pode usar essa técnica para adicionar o NGINX Ingress ao seu cluster. Encontre o aplicativo no mercado rolando para baixo na lista ou usando a barra de pesquisa. Clique no botão azul “Instalar” no cartão do aplicativo e aceite a mensagem de confirmação.
O procedimento de instalação pode levar vários minutos para ser concluído. O progresso será exibido na interface do usuário da web. Um novo balanceador de carga será adicionado automaticamente à sua conta durante o processo de configuração do aplicativo. Esse balanceador de carga será cobrado na taxa padrão e deve ser usado como um ponto de entrada externo para seu cluster.
Seu Ingress Controller estará pronto para uso após a conclusão da instalação. Como o aplicativo de 1 clique é baseado em um gráfico de leme, você pode verificar se o aplicativo foi adicionado listando os lançamentos de leme em seu grupo:
$ helm list --all-namespaces NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION ingress-nginx ingress-nginx 1 2022-05-30 14:46:37.591626084 +0000 UTC deployed ingress-nginx-4.1.0-beta.1 1.2.0-beta.1
a ingress-nginx
lançamento foi adicionado pela DigitalOcean. É mostrado como deployed
para que você possa começar a criar recursos do Ingress para rotear o tráfego para seus serviços.
Usando seu driver de login
Você pode testar seu controlador de entrada criando recursos simples de entrada, serviço e implantação do Kubernetes:
apiVersion: apps/v1 kind: Deployment metadata: name: demo-deployment spec: replicas: 1 selector: matchLabels: app: demo-app template: metadata: labels: app: demo-app spec: containers: - name: demo-container image: httpd:latest ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: demo-service spec: selector: app: demo-app ports: - port: 80 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: demo-ingress spec: ingressClassName: nginx rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: demo-service port: number: 80
Aplique este manifesto ao seu cluster usando o Kubectl:
$ kubectl apply -f app.yaml
a spec.ingressClassName: nginx
O campo no recurso de login significa que ele será registrado com o driver de login NGINX recém-instalado. Cada implementação de driver tem seu próprio nome de classe para que você possa usar vários drivers em um cluster.
Em seguida, configure um registro DNS para example.com
que aponta para o endereço IP externo do seu balanceador de carga da DigitalOcean. Você pode encontrar isso navegando até Networking > Load Balancers no painel de controle online ou executando o seguinte comando Kubectl:
$ kubectl get service ingress-nginx-controller --namespace=ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ingress-nginx-controller LoadBalancer XXX.XXX.XXX.XXX 1.2.3.4 80:30547/TCP,443:32027/TCP 1d
visitando example.com
ele deve exibir a página web padrão do Apache assim que a alteração de DNS entrar em vigor. Seu controlador de entrada recebe a solicitação do balanceador de carga. Usa seus recursos do Ingress para selecionar um serviço adequado, que faz solicitações example.com
para encerrar seus contêineres Apache.
Agora você pode seguir a documentação do Kubernetes para criar recursos do Ingress que expressam as regras de roteamento de serviço necessárias para seus aplicativos reais.
Adicionar HTTPS
Os endpoints em clusters de produção devem ser protegidos com TLS. Você pode configurar certificados HTTPS automatizados adicionando o Cert-Manager ao seu cluster, juntamente com o NGINX Ingress Controller.
O Cert-Manager está disponível como um aplicativo complementar de 1 clique no DigitalOcean Marketplace. Você pode repetir o procedimento usado acima: vá para a página de visão geral do seu cluster no painel de controle, clique na guia “Mercado” e localize e instale o aplicativo.
Após a conclusão da instalação, crie um emissor de certificado que será usado para solicitar certificados da Let’s Encrypt:
apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-staging spec: acme: server: https://acme-staging-v02.api.letsencrypt.org/directory email: [email protected] privateKeySecretRef: name: letsencrypt-staging solvers: - http01: ingress: class: nginx
Mudar o spec.acme.email
para seu próprio endereço de e-mail para que a Let’s Encrypt possa contatá-lo com notificações sobre seus certificados. Em seguida, aplique o manifesto ao seu cluster:
$ kubectl apply -f issuer.yml
Agora você pode atualizar seu recurso Ingress com suporte a HTTPS:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: demo-ingress annotations: kubernetes.io/ingress.class: ingress cert-manager.io/cluster-issuer: letsencrypt-staging spec: ingressClassName: nginx rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: demo-service port: number: 80 tls: - hosts: - example.com
O novo spec.tls
O campo especifica que um certificado deve ser adquirido para o example.com
domínio. a letsencrypt-staging
será utilizado o emissor do certificado, conforme definido pelo cert-manager.io/cluster-issuer
anotação.
O exemplo mostrado acima usa o endpoint de teste Let’s Encrypt, que é recomendado à medida que você testa sua implementação. Você pode alternar para o uso de certificados reais criando um segundo emissor que tenha como alvo seus endpoints de produção. Copie o manifesto do emissor acima, substitua letsencrypt-staging
com letsencrypt-production
e mude o spec.acme.server
URL para https://acme-v02.api.letsencrypt.org/directory
. Você pode atualizar seu recurso Ingress cert-manager.io/cluster-issuer
anotação para referenciar seu novo letsencrypt-production
editor.
Gerencie sua instalação de login do NGINX
Infelizmente, os aplicativos de 1 clique da DigitalOcean apenas simplificam a experiência de instalação. Você está por conta própria quando se trata de gerenciar e atualizar seus aplicativos. Como os aplicativos são simplesmente gráficos Helm pré-configurados, isso não é tão oneroso quanto parece.
Você pode usar sua instalação local do Helm CLI para atualizar para novas versões do NGINX Ingress:
$ helm upgrade ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx --values values.yml
você deve baixar o values.yml
primeiro arquivar do repositório do DigitalOcean Marketplace. Isso garantirá que a nova versão seja configurada com as configurações existentes. Você também pode usar este procedimento para personalizar seu controlador Ingress com suas próprias configurações após a instalação inicial. Modifique o values.yml
arquivo e, em seguida, execute o helm upgrade
domínio.
Remova a entrada NGINX do seu cluster
Você pode remover completamente o NGINX Ingress do seu cluster desinstalando a versão Helm do aplicativo e removendo o namespace que foi criado:
$ helm uninstall ingress-nginx --namespace ingress-nginx $ kubectl delete namespace ingress-nginx
O balanceador de carga deve se limpar automaticamente. Você pode removê-lo manualmente da página Networking > Load Balancers no painel da DigitalOcean, se necessário. Clique no botão “Mais” ao lado do balanceador de carga e escolha “Destruir” no menu suspenso. Você não poderá recuperar o endereço IP que lhe foi atribuído.
Instalando o NGINX Ingress com o Docl
Você pode instalar aplicativos de 1 clique com o cliente de linha de comando Doctl da DigitalOcean. Comece recuperando a lista de seus clusters do Kubernetes:
$ doctl kubernetes cluster list ID Name Region Version Auto Upgrade Status Node Pools 946407f3-abcd-123a-456b-6a0ec60f93bf demo-k8s lon1 1.22.8-do.1 false running demo-k8s-1
Em seguida, execute o seguinte comando para adicionar o NGINX Ingress ao seu cluster. Substituir <cluster-id>
com o ID mostrado acima.
$ doctl kubernetes 1-click install <cluster-id> --1-clicks ingress-nginx
Use esta alternativa se você também quiser instalar o Cert-Manager:
$ doctl kubernetes 1-click install <cluster-id> --1-clicks ingress-nginx,cert-manager
Além de usar o Doctl, você também pode interagir diretamente com a API da DigitalOcean para adicionar novos aplicativos programaticamente ao seu cluster.
Resumo
Você pode adicionar rapidamente o NGINX Ingress Controller a um cluster DigitalOcean Kubernetes usando o aplicativo 1-Click disponível no Marketplace. Isso implanta uma versão pré-configurada do gráfico NGINX Ingress Helm com uma configuração pronta para uso.
Embora isso acelere o provisionamento inicial, você ainda precisa executar manualmente os comandos do Helm para gerenciar e atualizar sua instalação. O aplicativo 1-Click visa encontrar um equilíbrio entre facilidade de uso e personalização, garantindo que você não fique limitado a um conjunto específico de parâmetros.
[ad_2]