Ser capaz de se conectar facilmente aos seus serviços de Nuvem é um critério de grande importância para todos os desenvolvedores. Em Jelastic, cada node recém criado recebe uma série de hostnames gerados automaticamente, apontando para o endereço de IP interno/externo apropriado do servidor.
Dependendo de um tipo do node criado, o conjunto de hostnames para ele pode ser diferente. Com este artigo você aprenderá todas as formas possíveis de se referir a um node específico hospedado na Nuvem Jelastic, tanto do interior (ou seja, ao gerenciá-lo através do Jelstic SSH Gate) e fora da Nuvem. Além disso, como um complemento, consideraremos codinomes de hostnames específicos para contêineres do Docker e stacks gerenciadas por Jelastic dockerizadas para operar com eles através da rede de Plataforma interna.
Hostnames comuns
Cada contêiner na Plataforma pode ser acessado pelo seu endereço IP interno com os seguintes formatos de hostnames:
- node${nodeId}–${envName}.${platformUrl}
- node${nodeId}.${envName}.${platformUrl}
Aqui, os marcadores destacados devem ser substituídos pelos seguintes valores:
- ${nodeId} – um identificador de dígito exclusivo gerado automaticamente, atribuído a cada contêiner dentro de uma Plataforma
- ${envName} – nome do ambiente (não um codinome), especificado durante a sua criação;
- ${platformUrl} – nome de domínio da instalação Jelastic do provedor de serviços de hospedagem que você usa.
Ambos os formatos de domínio podem ser usados para se referir aos nodes tanto de dentro quanto de fora de uma Plataforma (isto é, permitindo estabelecer tanto conexões internas quanto externas).
Nota:
- A última série de referência – com um ponto final (“.”) como separador – é suportada para contêineres Docker a partir da versão 4.8 de Jelastic e para o resto dos modelos certificados – desde a versão 5.1.
- O domínio personalizado (se houver algum anexado) resolve o ponto de entrada do ambiente e não pode ser usado para estabelecer conexão com um contêiner específico.
Hostnames Suplementares para Tipos de Nodes Específicos
Algumas das stacks certificadas de Jelastic são provisionadas com prefixos de hostnames adicionais (isto é, onde o nome apropriado da pilha é usado em vez da série do node) para tornar seu gerenciamento mais conveniente.
Todas as séries de domínio alternativas, mostradas na tabela acima, podem ser utilizadas apenas como hostnames comuns (descritos na seção acima).
Hostnames curtos
Todos os contêineres Docker recém criados (desde a versão 4.8) e as stacks gerenciadas por Jelastic dockerizadas (desde a versão 5.1) são provisionados com uma regra DNS específica, que permite o uso do tipo de hostname simplificado adicional:
- node${nodeId} – codinome para se referir a um contêiner em confins de um único ambiente
Utilizando tais domínios curtos em arquivos de configuração de servidor, código-fonte de aplicativo e console SSH (dentro de comandos geralmente usados como ping, host, dig etc.) faz com que o funcionamento com stacks Dockerizadas através da rede interna da Plataforma seja muito mais conveniente. Além disso, essa abordagem permite migração de ambiente indolor para outra região de hardware, eliminando a necessidade de ajustar o código do seu aplicativo devido à localização do servidor alterada.
Hostnames para Contêineres Vinculados
Ao vincular duas camadas de ambiente baseadas no Docker, um conjunto de registros DNS dedicados é adicionado automaticamente ao banco de dados global de Jelastic. Isso permite referir-se aos nodes dentro de uma camada de destino a partir dos de origem (mas não vice-versa) ao trabalhar nos confins dessas duas camadas usando os seguintes codinomes de hostnames:
- ${linkAlias} – para se conectar a um node aleatório dentro da camada de destino; um node exato para responder é escolhido por meio do algoritmo Round-Robin para garantir a distribuição uniforme da carga;
- ${linkAlias}_${N} – para acessar um contêiner específico dentro de uma camada de destino
Aqui, os marcadores apropriados devem ser substituídos por:
- ${linkAlias} – nome do link que você especificou durante sua configuração (por exemplo, tomcat na imagem abaixo)
- ${N} – número de índice nominal (em um intervalo de 1 …N) de um contêiner particular dentro da camada de ligação de destino (por exemplo, tomcat_1, tomcat_2), etc; por isso, o contêiner principal é sempre considerado a 1ª instância, enquanto o resto dos nodess dentro de uma camada são atribuídos números de acordo com seus valores de nodeID, classificados na ordem crescente (começando com o índice _2, respectivamente)
Por exemplo, suponhamos que existam três contêineres em uma camada – com 123, 124 (mestre) e 125 IDs. De acordo com a implementação acima descrita, os codinomes serão atribuídos da seguinte forma:
- alias_1 – link para o contêiner 124 como um node mestre
- alias_2 – apontará para a instância 123, pois tem a ID mais baixa entre os contêineres restantes
- alias_3 – referência para o contêiner 125 como aquele com o próximo nodeID mais baixo
Dica: Ao anexar um domínio de ambiente (isto é, ${envName}.${PlatformUrl}) para qualquer um destes codinomes, os contêineres correspondentes podem ser acessados externamente, ou seja, de qualquer lugar da Internet.
Agora, como você conhece todos os detalhes de se referir aos nodes em seu ambiente Jelastic, você pode organizar conexões de forma rápida e conveniente entre as instâncias do aplicativo. Combine essa habilidade com muitos recursos da Plataforma Jelastic fornecidos e aproveite ao máximo sua hospedagem de aplicativos na Nuvem.
***
Tetiana Markova faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://blog.jelastic.com/2017/08/17/dns-hostnames-for-direct-container-connection/