![Desenvolvedores: sua API foi projetada para invasores?](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706104804_Desenvolvedores-sua-API-foi-projetada-para-invasores-150x150.png)
Desenvolvedores: sua API foi projetada para invasores?
24 de janeiro de 2024![Por que uma caixa de papelão é o maior inimigo do Edge Kubernetes](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706105511_Por-que-uma-caixa-de-papelao-e-o-maior-inimigo-150x150.jpg)
Por que uma caixa de papelão é o maior inimigo do Edge Kubernetes
24 de janeiro de 2024Esta é a segunda de uma série de duas partes. Leia a Parte 1.
Nos últimos meses, nossa equipe tem trabalhado no dimensionamento do controlador SaaS do Rafay. Como parte crucial disso, embarcamos na configuração de ambientes Istio multicluster. Durante este processo, encontramos e enfrentamos com sucesso os desafios mencionados anteriormente. Esses desafios abrangiam o gerenciamento da complexidade da configuração, garantindo configurações consistentes entre clusters, estabelecendo conectividade de rede segura e lidando com complexidades de descoberta de serviços, monitoramento e solução de problemas.
Para superar esses desafios, adotamos abordagens de infraestrutura como código (IaC) para gerenciamento de configuração e desenvolvemos uma ferramenta de automação de interface de linha de comando (CLI) para garantir implantações multicluster Istio consistentes e simplificadas. A CLI segue o modelo “multiprimário em redes diferentes” descrito na documentação do Istio. A topologia que usamos em nossas implantações multicluster do Istio se parece com a imagem abaixo.
A CLI usa uma configuração simples. Abaixo está um exemplo do formato de configuração:
$ cat examples/mesh.yaml apiVersion: ristioctl.k8smgmt.io/v3 kind: Certificate metadata: name: ristioctl-certs spec: validityHours: 2190 password: false sanSuffix: istio.io # Subject Alternative Name Suffix meshID: uswestmesh --- apiVersion: ristioctl.k8smgmt.io/v3 kind: Cluster metadata: name: cluster1 spec: kubeconfigFile: "kubeconfig-istio-demo.yaml" context: cluster1 meshID: uswestmesh version: "1.18.0" installHelloWorld: true #deploy sample HelloWorld application --- apiVersion: ristioctl.k8smgmt.io/v3 kind: Cluster metadata: name: cluster2 spec: kubeconfigFile: "kubeconfig-istio-demo.yaml" context: cluster2 meshID: uswestmesh version: "1.18.0" installHelloWorld: true #deploy sample HelloWorld application
(Nota: O exemplo acima é uma representação genérica.)
Nesta configuração, a CLI está configurada para funcionar com dois clusters Kubernetes: cluster1 e cluster2. Cada cluster é definido com seus respectivos detalhes, incluindo o arquivo kubeconfig do Kubernetes, o contexto e a versão do Istio a ser instalada. A CLI usa essa configuração para estabelecer conectividade entre serviços nos clusters e criar a malha de serviço multicluster.
A plataforma de operações Kubernetes da Rafay Systems ajuda as empresas a operar infraestruturas de aplicativos modernas em nuvens públicas, data centers e Edge, usando qualquer distribuição K8s. Com Rafay, as empresas têm automação, segurança, visibilidade e governança de sua infraestrutura Kubernetes.
Saber mais
As últimas novidades de Rafay
$(document).ready(function() { $.ajax({ método: ‘POST’, url: ‘/no-cache/sponsors-rss-block/’, headers: { ‘Cache-Control’: ‘no- cache, no-store, must-revalidate’, ‘Pragma’: ‘no-cache’, ‘Expires’: ‘0’ }, dados: { patrocinadorSlug: ‘rafay’, numItems: 3 }, sucesso: função (dados) { if (data.startsWith(‘ERROR’)) { console.log(data); $(‘.sponsor-note-rss’).hide(); } else { $(‘.sponsor-note-rss-items -rafay’).html(dados); } } }); });
Explicação da configuração:
Certificado: A CLI estabelece confiança entre todos os clusters na malha usando esta configuração. Ele irá gerar e implantar certificados distintos para cada cluster. Todos os certificados de cluster são emitidos pela mesma autoridade de certificação (CA) raiz. Internamente, a CLI usa a ferramenta step-ca.
Explicação:
- apiVersion: A versão da API que está sendo utilizada, neste caso é ristioctl.k8smgmt.io/v3.
- kind: O tipo de recurso, que neste caso é Certificado.
- metadados: metadados associados ao recurso, como o nome do recurso.
- especificação: esta seção contém as especificações ou configurações do recurso.
- validHours: Especifica o período de validade do certificado em horas.
- senha: Indica se uma senha é necessária.
- sanSuffix: Sufixo do Nome Alternativo do Assunto (SAN) para o certificado.
- meshID: Identificador da malha de serviço multicluster.
Conjunto: Esses são recursos de cluster usados para definir clusters Kubernetes individuais que farão parte da malha de serviço multicluster. Cada recurso de cluster representa um cluster Kubernetes diferente.
Explicação:
- kubeconfigFile: especifica o caminho para o arquivo kubeconfig do respectivo cluster, que contém detalhes de autenticação e informações do cluster.
- contexto: o contexto do Kubernetes associado ao cluster, que define um conjunto nomeado de parâmetros de acesso.
- meshID: identifica a malha de serviço multicluster à qual esses clusters estarão conectados.
- version: especifica a versão do Istio a ser implantada nos clusters.
- installHelloWorld: indica se um aplicativo HelloWorld de amostra deve ser implementado em cada cluster.
No geral, esta configuração descreve as configurações necessárias para configurar uma malha de serviço multicluster usando a ferramenta CLI ristioctl. Inclui a especificação de um certificado e clusters Kubernetes que farão parte da malha de serviço. A ferramenta CLI ristioctl usará essa configuração para implantar o Istio e outras configurações necessárias para criar uma malha unificada e escalonável nesses clusters. As etapas abaixo descrevem as tarefas que a ferramenta CLI realiza internamente para configurar uma malha de serviço multicluster. Vamos explicar melhor cada etapa:
- Configure a confiança em todos os clusters na malha: A ferramenta CLI estabelece confiança entre os clusters Kubernetes que participam da malha de serviço multicluster. Essa confiança permite comunicação e autenticação seguras entre serviços em clusters diferentes. Isso envolve a geração e distribuição de certificados e chaves para autenticação mútua TLS (Transport Layer Security).
- Implante o Istio nos clusters: A CLI implanta o Istio em cada cluster Kubernetes dentro da malha.
- Implante o gateway leste-oeste nos clusters: O gateway leste-oeste é um componente do Istio responsável por lidar com o tráfego dentro da malha de serviço, especificamente o tráfego que flui entre serviços em diferentes clusters (tráfego leste-oeste). A CLI implanta o gateway leste-oeste em cada cluster para permitir a comunicação entre clusters.
- Exponha serviços nos clusters: A CLI garante que os serviços executados em cada cluster sejam adequadamente expostos e acessíveis aos outros clusters na malha de serviço multicluster.
- Provisione descoberta de serviço entre clusters usando canal seguro baseado em Rafay ZTKA: Rafay ZTKA (Zero Trust Kubectl Access) é uma tecnologia de canal seguro que permite a comunicação entre servidores Kube API entre clusters.
Ao automatizar essas etapas, a CLI simplifica a configuração de uma malha de serviço multicluster, reduzindo a complexidade operacional para os usuários e garantindo uma malha unificada e escalável em clusters em diferentes ambientes. Essa abordagem melhora a conectividade, a segurança e a observabilidade, permitindo que as organizações adotem facilmente uma estratégia multicloud ou de nuvem híbrida.
Para usá-lo:
ristioctl apply -f examples/mesh.yaml
A CLI é de código aberto. Você pode encontrar mais detalhes em https://github.com/RafaySystems/rafay-istio-multicluster/blob/main/README.md.
Usamos Rafay Zero Trust Kubectl Access (ZTKA) para evitar a exposição do servidor Kubernetes Cluster Kube API a uma rede diferente para melhorar a segurança. Para implementar isso, você precisa incorporar o ZTKA kubeconfig de Rafay na configuração. A topologia resultante será semelhante à seguinte:
Conclusão
A conectividade de serviços multicluster é crucial para diversas necessidades organizacionais. Embora o Istio forneça conectividade multicluster, configurá-lo pode ser complexo e complicado. Portanto, desenvolvemos uma ferramenta para simplificar o processo de configuração. Garantir a conectividade de rede segura entre clusters é fundamental para proteger os dados no ambiente multicluster. Com nossa ferramenta, as organizações podem agilizar a configuração da malha de serviço multicluster e estabelecer uma infraestrutura segura e escalável para oferecer suporte eficaz aos seus aplicativos distribuídos.
A postagem Configurando Multicluster Service Mesh com Rafay CLI apareceu pela primeira vez em The New Stack.