Kubernetes: Criando um serviço e expondo-o ao mundo externo com o NodePort via Linha de Comando: Difference between revisions
Line 116: | Line 116: | ||
kube-brl8ua4f0d7u1d9g9lt0-ebassok8scl-default-00000015 '''159.122.179.120''' 10.144.185.225 free normal Ready mil01 1.18.4_1517 | 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 <nowiki>http://159.122.179.120:31240</nowiki> | Abra o navegador e acesse o endereço: | ||
<nowiki>http://159.122.179.120:31240</nowiki> | |||
= Ver também = | = Ver também = |
Latest revision as of 22:16, 23 June 2020
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 <none> 443/TCP 6d20h web-service NodePort 10.100.253.18 <none> 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: <none> Selector: app=nginx Type: NodePort IP: 10.100.253.18 Port: <unset> 80/TCP TargetPort: 80/TCP NodePort: <unset> 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: <none>
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