Criando um Serviço
Agora que temos um pod em execução, vamos criar um Service para expô-lo. No Kubernetes, um Service é uma abstração que define um conjunto lógico de Pods e uma política para acessá-los. Pense nisso como uma maneira de expor sua aplicação à rede, seja dentro do cluster ou externamente.
Crie um arquivo chamado nginx-service.yaml em seu diretório de projeto:
nano ~/project/nginx-service.yaml
Adicione o seguinte conteúdo ao arquivo:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
Vamos detalhar este arquivo YAML:
selector: Isso determina para quais Pods o Service enviará tráfego. Neste caso, ele selecionará quaisquer Pods com o rótulo app: nginx.
ports: Isso especifica quais portas o Service deve usar.
type: NodePort: Isso significa que o Service estará acessível em uma porta em cada nó do seu cluster.
Salve o arquivo e saia do editor.
Agora, crie o service executando:
kubectl apply -f nginx-service.yaml
Para verificar o status do seu service, use:
kubectl get services
Você deve ver uma saída semelhante a esta:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 1h
nginx-service NodePort 10.110.126.65 <none> 80:30080/TCP 30s
A linha nginx-service mostra que seu service foi criado. O 80:30080/TCP em PORT(S) significa que a porta 80 dentro do cluster está mapeada para a porta 30080 no nó.
Para obter informações mais detalhadas sobre o service, use:
kubectl describe service nginx-service
Este comando fornece informações sobre o tipo, endereços IP, portas e endpoints do service. Os endpoints são os endereços IP dos Pods para os quais o Service está enviando tráfego.