Minikube Kubernetes:两个吊舱和服务

时间:2018-06-06 17:08:06

标签: kubernetes microservices minikube

我正在使用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

2 个答案:

答案 0 :(得分:1)

如果您希望让基于DNS的服务发现与服务器通信,请按照以下步骤操作:

  1. 通过minikube addons enable kube-dns命令启用kube-dns插件。这将在您的kubernetes集群中启用服务发现。
  2. 确保使用minikube addons list命令启用kube-dns插件。
  3. 在客户端应用程序代码中,将服务器URL端点更改为以下内容:http://lucky-server:8888。 "幸运服务器"是Kubernetes服务器服务yaml定义的 metadata.name 属性。
  4. 除了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