Kubernetes: Criando um serviço e expondo-o ao mundo externo com o NodePort via Linha de Comando: Difference between revisions
(3 intermediate revisions by the same user not shown) | |||
Line 51: | Line 51: | ||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE | NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE | ||
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6d20h | kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6d20h | ||
web-service NodePort 10.100.253.18 <none> 80:31240/TCP 14s | 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'''. | 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'''. | ||
Line 79: | Line 79: | ||
O valor em '''Endpoints''' informa os ips dos Pods. | O valor em '''Endpoints''' informa os ips dos Pods. | ||
= Abrindo o serviço no navegador = | == Abrindo o serviço no navegador == | ||
== No Minikube == | === No Minikube === | ||
Neste exemplo estamos utilizando o minikube, vamos pegar o ip | Neste exemplo estamos utilizando o minikube, vamos pegar o ip | ||
Line 101: | Line 101: | ||
== Na IBM Cloud == | === Na IBM Cloud === | ||
Pegando o nome dos clusters | Pegando o nome dos clusters | ||
Line 107: | Line 107: | ||
'''ibmcloud ks 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 | '''ebasso-k8s-cluster''' brl8ua4f0d7u1d9g9lt0 normal 6 days ago 1 mil01 1.18.3_1514 default classic | ||
'''ibmcloud ks workers --cluster ebasso-k8s-cluster''' | '''ibmcloud ks workers --cluster ebasso-k8s-cluster''' | ||
ID IP Público IP Particular Tipo Estado Status Zona Versão | 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 | 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