如何配置 Ambassador 以能够映射到容器上的多个端口

How to configure Ambassador to be able to map to multiple ports on a container

我正在使用 Ambassador 作为我的 kubernetes 设置的入口控制器。我需要连接到容器上的多个端口,例如,我有一个 RethinkDB 容器,我需要为它的 web-ui 连接到端口 8085,为 RDB-API 连接到端口 28015 和端口 29015用于将节点添加到 Rethinkdb 和集群。

我尝试了不同的配置,但没有用。我尝试的配置: 1- 此配置适用于最新的映射,这意味着如果我将 8085 映射替换为 29015 并将其放在末尾,我就可以访问 web-ui 但不能访问其他部分等等。

getambassador.io/config: |
  ---
  apiVersion: ambassador/v1
  kind: Mapping
  name: rethinkdb_mapping
  prefix: /rethinkdb:28015/
  service: rethinkdb:28015
  labels:
    ambassador:
      - request_label:
        - rethinkdb:28015
  ---
  apiVersion: ambassador/v1
  kind: Mapping
  name: rethinkdb_mapping
  - prefix: /rethinkdb:8085/
    service: rethinkdb:8085
  labels:
    ambassador:
      - request_label:
        - rethinkdb:8085
  ---
  apiVersion: ambassador/v1
  kind: Mapping
  name: rethinkdb_mapping
  prefix: /rethinkdb:29015/
  service: rethinkdb:29015
  labels:
    ambassador:
      - request_label:
        - rethinkdb:29015

2- 这个根本没用

getambassador.io/config: |
  ---
  apiVersion: ambassador/v1
  kind: Mapping
  name: rethinkdb_mapping
  - prefix: /rethinkdb:8085/
    service: rethinkdb:8085
 - prefix: /rethinkdb:29015/
   service: rethinkdb:29015
 - prefix: /rethinkdb:28015/
   service: rethinkdb:28015

我应该如何配置 Ambassador 才能访问容器的所有端口?

尝试使用不同的映射名称,如下例所示:

apiVersion: v1
kind: Service
metadata:
  name: rethinkdb
  annotations:
    getambassador.io/config: |
      ---
      apiVersion: ambassador/v1
      kind: Mapping
      name: rethinkdb_mapping
      prefix: /rethinkdb:28015/
      service: rethinkdb:28015
      labels:
        ambassador:
          - request_label:
            - rethinkdb:28015
      ---
      apiVersion: ambassador/v1
      kind: Mapping
      name: rethinkdb_mapping1
      prefix: /rethinkdb:8085/
      service: rethinkdb:8085
      labels:
        ambassador:
          - request_label:
            - rethinkdb:8085
      ---
      apiVersion: ambassador/v1
      kind: Mapping
      name: rethinkdb_mapping2
      prefix: /rethinkdb:29015/
      service: rethinkdb:29015
      labels:
        ambassador:
          - request_label:
            - rethinkdb:29015
spec:
  type: ClusterIP
  clusterIP: None

记得将正确的服务名称放入映射定义中的服务标签中。

关于缩进和正确语法的注意事项。

希望对您有所帮助。