Теперь я могу подключиться к elasti c search из моего приложения springboot. Как-то springboot не может подключить его, используя http://elasticsearch: 9200 .
Вместо этого я передаю ip и порт открытого elasti c search service (эквивалент порта 9200 для minikube service elasticsearch --url ) (ip узла: открытый Nodeport 9200) на каждый запрос springboot, который подключается к elasti c search service и теперь я могу подключить его.
Я знаю, что это не идеальное решение, и не знаю, почему он не может разрешить servicename в ip . Но, по крайней мере, я могу продолжить.
Это будет полезно, если кто-то может предложить способы исправить / диагностировать проблему
******* ОБНОВЛЕНИЕ ******
Наконец-то springboot может подключаться к поиску elasti c, используя http://elasticsearch: 9200 . Я не знаю, какое из внесенных мной изменений исправило это. Я изменил свой elasticsearch с Deployment на Statefulset , как показано в следующем yaml, но это изменение не было сделано для устранения этой проблемы.
Еще одно изменение, которое я сделал, - в этикетке. Я изменил его с "run": "elasticsearch" на "app": "elastcisearch" , но я не знаю, помогло ли это в этом. (Я собираюсь прочитать другие изменения ярлыков и посмотреть, имеет ли это какой-либо эффект). Пожалуйста, посмотрите последний файл elasticsearch.yaml (более подробное описание файла можно увидеть на Minikube - Невозможно получить какие-либо результаты от поиска elasti c, если он использует существующие индексы )
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch
spec:
serviceName: "elasticsearch"
replicas: 1
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
initContainers:
- name: set-permissions
image: registry.hub.docker.com/library/busybox:latest
command: ['sh', '-c', 'mkdir -p /usr/share/elasticsearch/data && chown 1000:1000 /usr/share/elasticsearch/data' ]
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:6.6.1
env:
- name: discovery.type
value: single-node
ports:
- containerPort: 9200
name: client
- containerPort: 9300
name: nodes
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
volumes:
- name: data
hostPath:
path: /indexdata
---
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
labels:
service: elasticsearch
spec:
ports:
- port: 9200
name: client
- port: 9300
name: nodes
type: NodePort
selector:
app: elasticsearch