gpt4 book ai didi

spring-boot - Kubernetes-通过minikube中的Spring Boot应用程序连接Elasticsearch

转载 作者:行者123 更新时间:2023-12-02 11:55:25 25 4
gpt4 key购买 nike

我正在尝试使用minikube在本地运行kubernetes。这是我第一次尝试使用kubernetes。因此
我对它的所有方面都不熟悉。
我正在尝试部署连接到 flex 搜索服务器的Spring Boot应用程序。

springboot deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
labels:
app: myapp
spec:
replicas: 1
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp1:latest
imagePullPolicy: Never

flex 搜索服务器 deployment.yaml
    apiVersion: apps/v1
kind: Deployment
metadata:
name: elasticsearch
spec:
selector:
matchLabels:
run: elasticsearch
replicas: 1
template:
metadata:
labels:
run: elasticsearch
spec:
containers:
- image: docker.elastic.co/elasticsearch/elasticsearch:6.6.1
name: elasticsearch
imagePullPolicy: IfNotPresent
env:
- name: discovery.type
value: single-node
- name: cluster.name
value: elasticsearch
ports:
- containerPort: 9300
name: nodes
- containerPort: 9200
name: client

公开的 flex 搜索服务如下
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
labels:
service: elasticsearch
spec:
ports:
- name: client
port: 9200
protocol: TCP
targetPort: 9200
- name: nodes
port: 9300
protocol: TCP
targetPort: 9300
type: NodePort

selector:
run: elasticsearch

同样,我也公开了springboot应用程序的服务。
现在我想知道如何从springboot服务连接到 flex 搜索服务。

当springbbot和 flex 搜索正常部署在同一台机器上(不在kubernetes中)时,我使用as
RestClient.builder(new HttpHost("localhost", 9200))
.build();

在Kubernetes中从springboot连接到 flex 搜索的最佳方法是什么?

将 flex 搜索服务的ip保存在环境变量中,然后在springboot中使用它还是使用 flex 搜索服务的服务名称?

请指教

最佳答案

您应该能够使用以下方法从集群内部访问该服务:

http://servicename.servicenamespace:serviceport

群集内部的Kubernetes dns会将服务名称解析为主机名。如果它们在同一个命名空间中,则可能不需要serivcenamespace

给定上述yaml,并且如果您为Elasticsearch和myapp使用默认 namespace ,则myapp进程可以通过以下方式连接:

http://elasticsearch:9200

关于spring-boot - Kubernetes-通过minikube中的Spring Boot应用程序连接Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61689852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com