No Kubernetes, se você quiser expor uma porta para o mundo externo, poderá usar o serviço com o tipo NodePort ou LoadBalancer.
O Type LoadBalancer é normalmente usado em provedores de nuvem, já que eles fornecem balanceadores de carga externos para o Kubernetes.
Portanto, no seu caso, o NodePort é a maneira mais fácil de expor a porta. Aqui está um exemplo de serviço YAML:
kind: Service
apiVersion: v1
metadata:
name: mongodb-service
spec:
type: NodePort
selector:
app: mongodb
ports:
- port: 27017
nodePort: 32463
name: MongoPort
Na linha port: 27017
, especificamos sua porta do MongoDB, ela também é geralmente especificada em Deployment for MongoDB.
Na linha nodePort: 32463
, especificamos a porta externa. Lá, qualquer porta do intervalo 30000-32767 pode ser postada. Ou pode ser ignorado durante a criação, nesse caso, o Kubernetes atribui o número da porta automaticamente, e você pode encontrá-lo usando os comandos kubectl describe service mongodb-service
ou kubectl get service mongodb-service -o yaml
.
Depois disso, você pode usar qualquer cliente, por exemplo RoboMongo, para chegar até você MongoDB. Você precisa usar o endereço IP de qualquer nó e a porta da linha nodePort
, não da linha port
.
Por exemplo, se você tiver um cluster com três nós com endereços IP externos 12.13.14.151, 12.13.14.152, 12.13.14.153, poderá usar qualquer um dos 12.13.14.151:32463
, 12.13.14.152:32463
, 12.13.14.153:32463
em sua conexão RoboMongo configurações.
Para mais informações sobre Serviços, você pode verificar o seguinte link: