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

= Via linha de comando (CLI) =

Executar os comandos:

kubectl expose web-service --port=80 --type=NodePort

= Via arquivo =

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.

No Minikube
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

Na IBM Cloud
Pegando o nome dos clusters

ibmcloud ks clusters ID                    Estado   Criado       Trabalhadores   Local   Versão        Nome do Grupo de Recursos   Provedor ebasso-k8s-cluster  brl8ua4f0d7u1d9g9lt0   normal   6 days ago   1               mil01   1.18.3_1514   default                     classic

ibmcloud ks workers --cluster ebasso-k8s-cluster ID                                                      IP Público        IP Particular    Tipo   Estado   Status   Zona    Versão kube-brl8ua4f0d7u1d9g9lt0-ebassok8scl-default-00000015  159.122.179.120   10.144.185.225   free   normal   Ready    mil01   1.18.4_1517

Abra o navegador e acesse o endereço:

http://159.122.179.120:31240

= Ver também =


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