Spinnaker上的Kubernetes - Interservice通信

时间:2017-10-05 16:12:16

标签: kubernetes spinnaker

我在Kubernetes集群上运行了一个示例应用程序。两个微服务,一个是mongodb容器,另一个是java springboot容器。

springboot容器通过服务与mongodb容器交互,并将数据存储到mongodb容器中。

规格如下。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: empappdepl
  labels:
    name: empapp
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: empapp
    spec:
      containers:
        -
          resources:
            limits:
              cpu: 0.5
          image: 11.168.xx.xx:5000/employee:latest
          imagePullPolicy: IfNotPresent
          name: wsemp
          ports:
            - containerPort: 8080
              name: wsemp
          command: ["java","-Dspring.data.mongodb.uri=mongodb://mongoservice/microservices", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
      imagePullSecrets:
       - name: myregistrykey
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: empwhatever
  name: empservice
spec:
  ports:
   - port: 8080
     nodePort: 30062
  type: NodePort
  selector:
    name: empapp

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: mongodbdepl
  labels:
    name: mongodb
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: mongodb
    spec:
      containers:
      - resources:
          limits:
            cpu: 1
        image: mongo
        imagePullPolicy: IfNotPresent
        name: mongodb
        ports:
          - containerPort: 27017
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: mongowhatever
  name: mongoservice
spec:
  ports:
   - port: 27017
     targetPort: 27017
     protocol: TCP
  type: NodePort
  selector:
    name: mongodb

我想知道如何在大三角帆中完成这种沟通,因为它创建了自己的标签和选择器。

谢谢,

1 个答案:

答案 0 :(得分:0)

这就是它需要做的事情。

为应用程序创建的每个负载均衡器都是该服务。因此,对于mongodb应用程序,在使用nodeport设置创建loadbalancer之后,获取服务的名称,例如:mongodb-dev。还需要创建mongodb的服务器组。

然后在创建员工服务器组时,您需要在该容器的单独行中逐个指定命令,如此处所述

https://github.com/spinnaker/spinnaker/issues/2021#issuecomment-334885467

 "java","-Dspring.data.mongodb.uri=mongodb://name-of-mongodb-service/microservices", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"

现在,当员工和mongodb pod启动时,它可以获得其映射并能够正常通信。