O que é a descoberta de serviços em Kubernetes?

O que é a descoberta de serviços em Kubernetes?
Os microsserviços são usados ​​em sistemas modernos para mantê -los escaláveis ​​e funcionais. Com suas ferramentas e funcionalidades, Kubernetes cria o cenário perfeito para os microsserviços colaborarem. A solução como um todo se torna muito mais flexível à medida que cada componente do aplicativo é implantado em um contêiner. A descoberta de serviços é o processo de localização de aplicativos e microsserviços em uma rede.

A técnica de encontrar automaticamente dispositivos e serviços em uma rede é conhecida como descoberta de serviços. O Serviço Discovery Protocol (SDP) é um padrão de rede para detectar redes e localizar recursos quando os usuários recebem recursos adequados, como uma impressora ou laptop habilitados para Bluetooth, a descoberta de serviços auxiliares na redução da configuração Hassles.

A descoberta de serviço é realizada em Kubernetes usando nomes de serviços criados automaticamente correspondentes ao endereço IP do serviço. Em Kubernetes, o modelo de serviços oferece o componente mais básico e crucial da descoberta de microsserviços. Reconhecer como um aplicativo opera em Kubernetes requer uma compreensão da descoberta de serviços. O serviço Kubernetes sincroniza e automatiza a conectividade entre os serviços, abordando problemas de contêiner em um design de microsserviços. Os serviços vinculam vagens à rede de maneira consistente entre os clusters.

O processo de determinar como ingressar no serviço é conhecido como Descoberta de Serviço. A descoberta de serviços do lado do servidor e do cliente são os principais tipos de descoberta de serviço. Os aplicativos do cliente podem usar abordagens de descoberta de serviço do lado do servidor para suportar através de um roteador ou balanceador de carga. A descoberta de serviços do lado do cliente permite que os aplicativos do cliente localizem serviços pesquisando ou solicitando um registro de serviço contendo instâncias de serviço e pontos de extremidade.

Instâncias de serviço podem ser registradas e suspensas temporariamente do Registro de Serviço em dois métodos diferentes. O padrão de auto-registro permite que as entidades de serviço se registrem independentemente no Registro de Serviço. O padrão de registro de terceiros envolve que outro componente do sistema execute o registro e o desregistro por conta do serviço. Um dos componentes que tornam a plataforma de contêineres capaz e adaptável é o Kubernetes Service Discovery. Através da padronização, tecnologias avançadas como serviço de malha de malha de renderização de kubernetes descoberta mais eficaz. Veremos alguns dos processos básicos de descoberta de serviços em Kubernetes neste tópico.

Vamos começar montando alguns serviços necessários para examinar como os conceitos de serviço de Kubernetes se executam em termos práticos. Vamos acessar o terminal do Ubuntu 20.04 LTS OS para falar sobre a descoberta de serviços em Kubernetes. Para isso, você pode usar a área de aplicativo ou uma chave de atalho que é “Ctrl+Alt+T”.

Para inicializar o Minikube, execute o comando listado abaixo.

$ minikube Iniciar

A edição atual do Minikube será exibida na saída desta instrução. Agora faremos um espaço para nome chamado "desenvolver" usando o comando CAT no shell.

$ cat << ENDL > desenvolver-namespace.yml

O conteúdo será adicionado diretamente ao terminal sem abri -lo a partir do arquivo.

Para gerar um espaço para nome no terminal, utilize o comando como:

$ kubectl Aplicar -F Develop -Namespace.yml

O espaço para nome foi criado efetivamente. Agora, novamente, criaremos outro espaço de nome chamado "Produção" usando o comando CAT no shell.

Para gerar um espaço para nome no terminal, execute o comando como:

$ kubectl Aplicar -F Produção -namespace.yml

Novamente, o espaço para nome foi criado efetivamente. Agora vamos implantar nossos aplicativos de amostra nos espaços para nome que criamos anteriormente. Para esse fim, criaremos uma implantação chamada "Hello" para o espaço de nome de desenvolvimento usando o comando CAT no shell.

$ cat << ENDL > Desenvolvimento de app-de-implantação.yml

O conteúdo será adicionado diretamente ao terminal sem abri -lo a partir do arquivo.

Para criar uma implantação para o espaço de nome de desenvolvimento, execute o comando como:

$ kubectl Aplicar -f App-de-implantação Desenvolvimento.yml

A implantação foi criada efetivamente. Novamente, criaremos outra implantação para um espaço para nome chamado "Produção" usando o comando CAT no shell.

$ cat << ENDL > Produção de app-de-implantação.yml

Para criar uma implantação para o espaço para nome da produção no terminal, utilize o comando como:

$ kubectl Aplicar -f App-de-implantação-produção.yml

A implantação foi criada com eficiência, como pode ser visto na saída exibida. Agora, para definir os pods e encontrar seu endereço IP, executaremos o comando abaixo da listada como:

$ KUBECTL Descreva pods-todos os namespaces

Os endereços IP para cada vagem na saída acima são internos e exclusivos para cada ocorrência. Cada vez que reimplavamos o aplicativo, ele recebia um novo endereço IP. Agora podemos testar se podemos ou não pingar uma vagem dentro do cluster. Crie um arquivo usando o comando CAT como.

$ cat << ENDL >> Jumpod.yml

Para criar um pod para o espaço para nome padrão no shell, execute o comando como:

Kubectl Aplicar -f Jumpod.yml

A vagem foi criada, como pode ser visto a partir da imagem acima mencionada. Ping o endereço IP de uma vagem temporária dentro do espaço de nome padrão usando o comando CAT no shell usando o comando kubectl exec.

$ KUBECTL EXEC -It Jumpod Ping 10.244.0.149

O sistema de nomes de domínio está entre os aspectos essenciais do serviço de Internet eficaz (DNS). Todo o conteúdo da Internet e os serviços da Web dependem do DNS, para que você possa resolver quaisquer problemas rapidamente. Uma ferramenta chamada nslookup é um método para fazer isso. O NSLOOKUP significa "Pesquisa de servidor de nomes", permite que você verifique as informações sobre um nome de domínio e descubra problemas. Podemos adquirir o FQDN do POD usando a ferramenta nslookup:

$ KUBECTL EXEC -It Jumpod NSLOOKUP 10.244.0.149

Agora, para verificar o endereço IP externo implantado, executaremos o comando abaixo:

$ KUBECTL GET Services-All-NamesPaces

Conclusão

Ao migrar para os microsserviços, a descoberta de serviços é provavelmente a peça de infraestrutura mais importante para implementar. Neste tutorial, vimos como é simples expor um aplicativo ao público utilizando serviços Kubernetes.