0

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

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

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

4

1 回答 1

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

  2. 映射与服务以 1-1 的方式工作。但是,如果您的目标是避免使用前缀,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-09-17T11:57:43.680 回答