我正在使用Minikube运行一个简单的弹簧微服务项目。我有两个项目:lucky-word-client(在端口8080上)和lucky-word-server(在端口8888上)。但我无法与服务器通信客户端。事实上,如果幸运字客户端与幸运字服务器通信,则结果为“Evviva”,否则该字为“默认”。当我在终端上运行时:minikube service lucky-client输出为Default,而不是Evviva。我想通过DNS与服务器通信客户端。我看到了导游:https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/但没有成功。我如何修改服务或pod以在客户端和服务器之间建立链接?
这是幸运字客户端的容器:
apiVersion: v1
kind: Pod
metadata:
name: lucky-client
namespace: default
spec:
containers:
- image: lucky-client-img
imagePullPolicy: IfNotPresent
name: lucky-client
这是幸运字服务器的容器:
apiVersion: v1
kind: Pod
metadata:
name: lucky-server
namespace: default
spec:
containers:
- image: lucky-server-img
imagePullPolicy: IfNotPresent
name: lucky-server
这是一项服务,幸运字客户端与lucky-word-server进行通信:
kind: Service
apiVersion: v1
metadata:
name: lucky-client
spec:
selector:
app: lucky-client
ports:
- protocol: TCP
targetPort: 8080
port: 80
type: NodePort
答案 0 :(得分:1)
如果您希望让基于DNS的服务发现与服务器通信,请按照以下步骤操作:
minikube addons enable kube-dns
命令启用kube-dns插件。这将在您的kubernetes集群中启用服务发现。minikube addons list
命令启用kube-dns插件。http://lucky-server:8888
。 "幸运服务器"是Kubernetes服务器服务yaml定义的 metadata.name 属性。lucky-server
之外,您可以在服务器URL中使用完全限定名称lucky-server.default.svc.cluster.local
,因为您要在默认命名空间中部署服务。 答案 1 :(得分:0)
您需要为您的幸运服务器提供服务:
kind: Service
apiVersion: v1
metadata:
name: lucky-server
spec:
selector:
app: lucky-server
ports:
- protocol: TCP
targetPort: 8888
port: 80
type: NodePort