Как развернуть несколько наборов демонов-амбассадоров в одном пространстве имен — Kuberntes

У меня возникла проблема с послом (посланником). Ambassador не поддерживает одновременно HTTP и HTTPS. Так что в качестве обходного пути мне нужно развернуть два набора послов (один для HTTP, а другой для HTTPS). Я развернул две группы послов.

NAME                       READY   STATUS    RESTARTS   AGE
pod/ambassador-k7nlr       2/2     Running   0          55m
pod/ambassador-t2dbm       2/2     Running   0          55m
pod/ambassador-tls-7h6td   2/2     Running   0          107s

NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/ambassador-admin       NodePort    10.233.58.170   <none>        8877:30857/TCP   18d
service/ambassador-admin-tls   NodePort    10.233.33.29    <none>        8878:32339/TCP   28m
service/ambassador-monitor     ClusterIP   None            <none>        9102/TCP         18d

NAME                            DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                      AGE
daemonset.apps/ambassador       2         2         2       2            2           node-role.kubernetes.io/node=      58m
daemonset.apps/ambassador-tls   1         1         1       1            1           node-role.kubernetes.io/node=tls   107s

Ниже два набора модулей, которые я хотел использовать для http

pod/ambassador-k7nlr       2/2     Running   0          55m
pod/ambassador-t2dbm       2/2     Running   0          55m

А этот для https

pod/ambassador-tls-7h6td   2/2     Running   0          107s

ниже моя служебная аннотация

getambassador.io/config: |
  ---
  apiVersion: ambassador/v0
  kind: Module
  name: tls
  config:
    server:
      secret: dashboard-certs
  ---
  apiVersion: ambassador/v0
  kind:  Mapping
  name:  dashboard_test_mapping
  host:  dashboard.example.com
  service: https://dashboard.test.svc.cluster.local
  prefix: /

Здесь apiVersion: ambassador/v0 относится к обоим наборам послов, поэтому любые изменения, которые я внес в аннотацию службы, будут отражены в обоих наборах послов.

Я хотел установить эту аннотацию службы для определенного демона посла (HTTPS).

Какие-либо предложения ??

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
0
751
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать AMBASSADOR_ID для этого, например:

getambassador.io/config: |
  ---
  ambassador_id: ambassador-1
  apiVersion: ambassador/v0
  kind: Module
  name: tls
  config:
    server:
      secret: dashboard-certs
  ---
  ambassador_id: ambassador-1
  apiVersion: ambassador/v0
  kind:  Mapping
  name:  dashboard_test_mapping
  host:  dashboard.example.com
  service: https://dashboard.test.svc.cluster.local
  prefix: /

а затем укажите этот идентификатор в переменных env DaemonSet:

env:
- name: AMBASSADOR_ID
  value: ambassador-1

Обратитесь к документации: https://www.getambassador.io/reference/running/#ambassador_id

Другие вопросы по теме