如何配置 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
记得将正确的服务名称放入映射定义中的服务标签中。
关于缩进和正确语法的注意事项。
希望对您有所帮助。
我正在使用 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
记得将正确的服务名称放入映射定义中的服务标签中。
关于缩进和正确语法的注意事项。
希望对您有所帮助。