Como implantar o nginx em um cluster Kubernetes

Como implantar o nginx em um cluster Kubernetes

Em nosso último artigo, discutimos como configurar e executar um cluster de Kubernetes, vamos discutir como podemos implantar Nginx serviço em nosso cluster.

Vou executar essa implantação em uma máquina virtual hospedada por um provedor de nuvem pública. Como é com muitos serviços de nuvem pública, muitos geralmente mantêm um esquema de IP público e privado para suas máquinas virtuais.

Ambiente de teste

Nó Mestre - Public IP: 104.197.170.99 e IP privado: 10.128.15.195 Nó do trabalhador 1 - IP público: 34.67.149.37 e IP privado: 10.128.15.196 Nó do trabalhador 2 - IP público: 35.232.161.178 e IP privado: 10.128.15.197 

Implantando nginx em um cluster de Kubernetes

Vamos executar esta implantação do nó mestre.

Vamos começar verificando o status do cluster. Todos os seus nós devem estar em um PREPARAR estado.

# kubectl Get nós 
Verifique o status do cluster de Kubernetes

Nós criamos uma implantação de Nginx usando o Nginx imagem.

# kubectl Crie implantação nginx --image = nginx 
Implantando nginx em Kubernetes

Agora você pode ver o estado de sua implantação.

# kubectl Obtenha implantações 
Verifique a implantação do Nginx em Kubernetes

Se você quiser ver mais detalhes sobre sua implantação, você pode executar o descrever comando. Por exemplo, é possível determinar quantas réplicas da implantação estão em execução. No nosso caso, esperamos ver uma réplica de 1 corrida (eu.e 1/1 réplicas).

# kubectl descreve a implantação nginx 
Verifique os detalhes da implantação do nginx

Agora sua implantação nginx está ativa, você pode querer expor o Nginx Serviço para um IP público acessível na Internet.

Expondo seu serviço nginx à rede pública

O Kubernetes oferece várias opções ao expor seu serviço com base em um recurso chamado Kubernetes de serviço de serviço e eles são:

  1. Clusterip - Esse tipo de serviço geralmente expõe o serviço em um IP interno, acessível apenas dentro do cluster, e possivelmente apenas dentro dos nodos de cluster.
  2. NodEport - Esta é a opção mais básica de expor seu serviço para ser acessível fora do seu cluster, em uma porta específica (chamada de NodEport) em todos os nó no cluster. Vamos ilustrar esta opção em breve.
  3. Balanceador de carga - Esta opção aproveita os serviços externos de balanceamento de carga oferecidos por vários provedores para permitir o acesso ao seu serviço. Esta é uma opção mais confiável ao pensar em alta disponibilidade para o seu serviço e tem mais recursos além do acesso padrão.
  4. ExternalName - Este serviço é redirecionado para os serviços fora do cluster. Como tal, o serviço é assim mapeado para um nome de DNS que possa ser hospedado do seu cluster. É importante observar que isso não usa proxy.

O tipo de serviço padrão é Clusterip.

Em nosso cenário, queremos usar o NodEport Service-Type Porque temos um endereço IP público e público e não precisamos de um balanceador de carga externo por enquanto. Com este tipo de serviço, Kubernetes atribuirá este serviço nas portas no 30000+ faixa.

# kubectl Crie serviço NodEport nginx - -tcp = 80: 80 
Crie serviço NodEport para expor o nginx

Execute o Obtenha SVC comando para ver um resumo do serviço e as portas expostas.

# KUBECTL Get SVC 
Verifique o serviço e a porta Nginx

Agora você pode verificar se o Nginx A página é acessível em todos os nós usando o comando curl.

# Curl Master-Node: 30386 # Curl Node-1: 30386 # Nó Curl 2: 30386 
Verifique a página nginx no cluster Kubernetes

Como você pode ver, o “BEM VINDO AO NGINX!”Página pode ser alcançada.

Atingindo endereços IP públicos efêmeros

Como você deve ter notado, Kubernetes Relatórios de que não tenho IP público ativo registrado, ou melhor, nenhum IP externo registrado.

# KUBECTL Get SVC 
Verifique o serviço e a porta Nginx

Vamos verificar se é realmente verdadeiro, que não tenho IP externo conectado às minhas interfaces usando o comando IP.

# ip a 
Verifique os endereços IP

Nenhum IP público como você pode ver.

Como mencionado anteriormente, atualmente estou executando essa implantação em um Máquina virtual oferecido por um provedor de nuvem pública. Portanto, embora não haja interface específica atribuída a um IP público, o provedor de VM emitiu um endereço IP externo efêmero.

Um endereço IP externo efêmero é um endereço IP temporário que permanece conectado à VM até que a instância virtual seja interrompida. Quando a instância virtual é reiniciada, um novo IP externo é atribuído. Basicamente, é uma maneira simples de provedores de serviços aproveitarem o IPS público ocioso.

O desafio aqui, além do fato de que seu IP público não é estático, é que o IP público efêmero é simplesmente uma extensão (ou proxy) do IP privado e, por esse motivo, o serviço será acessado apenas na porta 30386. Isso significa que o serviço será acessado no URL , aquilo é 104.197.170.99: 30386, que se você verificar seu navegador, poderá ver a página de boas -vindas.

Verifique a página nginx implantada em Kubernetes

Com isso, implantamos com sucesso Nginx Em nosso cluster Kubernetes de 3 nós.