【问题标题】:Ambassador Edge Stack Questions大使边缘堆栈问题
【发布时间】:2021-01-04 06:28:05
【问题描述】:

我没有收到健康的上游错误。访问大使时。 Pods/Services 和 Loadbalancer 似乎都很好而且很健康。大使在 aks 之上。

目前,我在 Kubernetes 集群中运行了多个服务,并且每个服务都使用自己的前缀进行映射。是否可以将多个 k8s 服务指向同一个映射,这样我就没有太多前缀?我所有的 k8s 服务都将使用同一个大使前缀?

默认情况下,大使会带我通过 https,这会导致证书问题,尽管我将在不久的将来引入 https,我只是想证明这个概念,那么如何禁用 HTTPS 并只做 HTTP 大使?

【问题讨论】:

    标签: kubernetes azure-aks ambassador


    【解决方案1】:
    1. 上游没有健康通常意味着,无论出于何种原因,Ambassador 都找不到映射中列出的服务。当我看到这个时,我通常做的第一件事是运行kubectl exec -it -n ambassador {my_ambassador_pod_name} -- sh 并尝试curl -v my-service,其中“my-service”是您尝试访问的服务的 Kube DNS 名称。根据响应,它可以为您提供一些提示,说明为什么大使没有看到该服务。

    2. 映射与服务以一对一的方式工作。但是,如果您的目标是避免使用前缀,Ambassador 可以通过其他方式匹配来创建路由。我见过的一种常见方法是使用基于主机的路由 (https://www.getambassador.io/docs/latest/topics/using/headers/host/) 并为单个或逻辑服务集创建子域。

    3. AES 默认重定向到 HTTPS,但可以通过应用具有不安全路由行为的主机来覆盖此行为。我常用的一个很简单的就是这个:

    ---
    apiVersion: getambassador.io/v2
    kind: Host
    metadata:
      name: wildcard
      namespace: ambassador
    spec:
      hostname: "*"
      acmeProvider:
        authority: none
      requestPolicy:
        insecure:
          action: Route
      selector:
        matchLabels:
          hostname: wildcard
    

    【讨论】:

      猜你喜欢
      • 2020-08-17
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 2021-06-29
      • 2021-04-13
      相关资源
      最近更新 更多