Kubernetes: Criando um serviço e expondo-o ao mundo externo com o NodePort via Linha de Comando: Difference between revisions
(Criou a página com "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çã...") |
|||
(8 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
= | = Via linha de comando (CLI) = | ||
Executar os comandos: | |||
kubectl expose web-service --port=80 --type=NodePort | |||
= Via arquivo = | |||
Line 35: | Line 43: | ||
service "web-service" created | service "web-service" created | ||
= Verificando o que foi criado = | |||
* Services | * Services | ||
Line 43: | 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'''. | |||
Para o K8s é indiferente a ordem para criar o deployment ou o serviço. | |||
Vamos pegar mais detalhes: | |||
'''kubectl describe svc web-service''' | |||
<nowiki>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> | |||
</nowiki> | |||
O valor em '''Endpoints''' informa os ips dos Pods. | |||
== Abrindo o serviço no navegador == | |||
=== 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 | |||
<nowiki>http://192.168.99.100:31240/</nowiki> | |||
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: | |||
<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