Kubernetes: Criando um serviço e expondo-o ao mundo externo com o NodePort via Linha de Comando

Vamos criar um serviço e expor ele ao mundo externo com o NodePort via Linha de Comando

Este exemplo continua o que foi realizado em Kubernetes: Deploy de uma aplicação via Linha de comando

= Procedimento =

Arquivo de deployment webserver-svc.yaml
1) Crie o arquivo webserver-svc.yaml e adicione o conteúdo:

apiVersion:  v1 kind:         Service metadata: name:      web-service labels: run:     web-service spec: type:      NodePort ports: - port:    80 protocol: TCP selector: app:     nginx

Salve e feche o arquivo.

2) Execute o comando kubectl para fazer o deploy das informações no arquivo

kubectl create -f webserver-svc.yaml service "web-service" created

Verificando o que foi criado

 * Services

kubectl get services NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE kubernetes   ClusterIP   10.96.0.1              443/TCP        6d20h web-service  NodePort    10.100.253.18          80:31240/TCP   14s

O webservice foi criado no IP 10.100.253.18, e ao receber requisições na porta 31240 encaminha para a porta 80. O Pod a ser utilizado é realizado da instrução select.

Para o K8s é indiferente a ordem para criar o deployment ou o serviço.

Vamos pegar mais detalhes:

kubectl describe svc web-service Name:                    web-service Namespace:               default Labels:                  run=web-service Annotations: Selector:                app=nginx Type:                    NodePort IP:                      10.100.253.18 Port:                     80/TCP TargetPort:              80/TCP NodePort:                 31240/TCP Endpoints:               172.17.0.3:80,172.17.0.5:80,172.17.0.6:80 Session Affinity:        None External Traffic Policy: Cluster Events:

O valor em Endpoints informa os ips dos Pods.

Abrindo o serviço no navegador
Neste exemplo estamos utilizando o minikube, vamos pegar o ip

minikube ip 192.168.99.100

Abra o navegador e acesse o endereço

http://192.168.99.100:31240/

Você poderá ver a "Nginx welcome page".

Outra maneira para acessar o serviço é executar o comando:

minikube service web-service

= Ver também =


 * Mais Artigos sobre Kubernetes
 * Docker: Trabalhando com Containers
 * Artigos sobre Cloud
 * Mais Artigos sobre Cloud / WebDev / Tecnologias