Kubernetes连接两种服务?

时间:2018-06-01 10:02:50

标签: python docker kubernetes angular5

我有两个服务auth和前端。如何在两者之间建立连接?

auth.yml

apiVersion: apps/v1
kind: Deployment
metadata:
   name: auth
spec:
  replicas: 1
  selector:
    matchLabels:
      app: auth
  template:
    metadata:
      labels:
        app: auth
        tier: backend
        track: dev
    spec:
      containers:
        - name: auth
          image:  auth:1
          ports:
            - name: auth
              containerPort: 8000
----------------------------------------------
apiVersion: v1
kind: Service
metadata:
  name: auth
spec:
  selector:
    app: auth
    tier: backend
  ports:
    - protocol: TCP
      port: 3000
      targetPort: auth
  type: LoadBalancer

上述服务可以正常使用外部IP和端口。

fe.yml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: fe
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: fe
      template:
        metadata:
          labels:
            app: fe
            tier: frontend
            track: dev
        spec:
          containers:
            - image: fe:1
              name: nginx
              ports:
                - name: fe
                  containerPort: 80
    ------------------------------------------------
    apiVersion: v1
    kind: Service
    metadata:
      name: fe
    spec:
      selector:
        app: fe
        tier: frontend
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
      type: LoadBalancer

我可以使用外部IP单独访问这两项服务。 我希望这两种服务相互交互。我尝试在前端使用基于名称的呼叫服务,例如 - http://auth:3000。 它似乎不起作用。

1 个答案:

答案 0 :(得分:0)

服务目标窗格(通过其标签),而不是其他服务。要从另一个服务中获取一个服务,这就是流程:

用户 - > auth(服务) - > auth(pods) - > fe(服务) - > fe(豆荚)。

因此,您在auth中的pod需要将流量转发到其他服务。

请注意,不需要2个Load Balancer类型的服务。通过第一项服务,数据可以从外部世界传输到您的群集。此时,建议使用ClusterIP类型服务。