Как открыть сервис в Kubernetes
Я пытаюсь предоставить службу в простом кластере кубернетов, состоящем из одного рабочего и одного мастера. В частности, я использую описанный ниже дескриптор:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-deployment
labels:
app: mongodb
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: mongo
ports:
- containerPort: 27017
---
apiVersion: v1
kind: Service
metadata:
name: mongodb-service
spec:
selector:
app: mongodb
ports:
- protocol: TCP
port: 27017
targetPort: 27017
Затем я пытаюсь использовать этот сервис из другого модуля:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo-express
labels:
app: mongo-express
spec:
replicas: 1
selector:
matchLabels:
app: mongo-express
template:
metadata:
labels:
app: mongo-express
spec:
containers:
- name: mongo-express
image: mongo-express
ports:
- containerPort: 8081
env:
- name: ME_CONFIG_MONGODB_SERVER
value: mongodb-service
Однако то, что я получаю в другом модуле mongo-express, - это то, что mongodb-service не может быть решена. Фактически, если я разверну модуль и попробую простой wget, это будет результат:
$ wget http://mongodb-service/ -O-
--2021-06-23 13:31:08-- http://mongodb-service/
Resolving mongodb-service (mongodb-service)... failed: Name or service not known.
wget: unable to resolve host address 'mongodb-service'
Вместо этого nslookup mongodb-service работает нормально:
$ nslookup mongodb-service
Server: 10.96.0.10
Address: 10.96.0.10#53
Однако, если я попробую использовать netcat, я получу следующее:
$nc mongodb-service 27017
nc: getaddrinfo for host "mongodb-service" port 27017: Name or service not known
Похоже, что именно getaddrinfo дает сбой.
Как я мог отладить проблему?
1 ответ
Зайдите внутрь капсулы и попробуйте следующее:
nslookup mongodb-service.default.svc.cluster.local
Он предоставит вам clusterIP службы, а затем попытается
wget
с этим IP вместо DNS службы.
wget http://10.100.142.166 -O-
Причина использования IP через DNS: https://stackoverflow.com/questions/53921281/kubernetes-1-13-coredns-cluster-curl-service