带有 AGIC 和应用程序网关的 AKS
AKS with AGIC and Application Gateway
我有一个启用了附加 AGIC 的 AKS 集群(将在不久的将来尝试将其转换为基于 Helm 的 AGIC)。目前我在这个集群上有一个应用程序,入口设置为应用程序网关。目前这在端口 80 上完美运行。
如果我想启用 SSL,是否只需要在 App Gateway 添加证书,然后在部署中引用它? (示例取自 https://thewindowsupdate.com/2021/10/19/what-does-it-mean-for-the-application-gateway-ingress-controller-agic-to-assume-full-ownership/
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: aspnetapp
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/appgw-ssl-certificate: <name of your certificated added to Application Gateway>
appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: aspnetapp
servicePort: 80
虽然上面设置了服务端口为80,但是App GW会自动申请TLS吗?上面的服务端口应该是80还是443?还是因为设置了 SSL 重定向就没关系了?还有这个自动加密哪些方面?
- 外部 -> 应用 GW ?
- 应用网关 -> 入口?
另外,App GW 的外部是否也需要另一个证书?还是我只需要一个证书?
AGIC 将创建:
- 2 个侦听器:端口 80 上的 HTTP 和端口 443 上的 HTTPS。HTTPS 侦听器将使用来自
appgw.ingress.kubernetes.io/appgw-ssl-certificate
的 SSL 证书进行配置
- 2条路由规则:一条将http监听流量重定向到https监听。 https 侦听器将配置为以 AKS 上的后端为目标。
默认情况下,AGIC 将执行 TLS 终止,因此应用程序网关和 aks 集群之间的流量将使用 HTTP(而非 HTTPS)协议。配置的端口将是您服务的 targetPort
中配置的端口。
另外请注意,您之前应该已经看到此警告:
extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
您应该更新 AGIC 以使用 latest version 并更改您的清单以使用 networking.k8s.io/v1
Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: aspnetapp
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/ssl-redirect: "true"
appgw.ingress.kubernetes.io/appgw-ssl-certificate: "<name of your certificated added to Application Gateway>"
spec:
rules:
...
我有一个启用了附加 AGIC 的 AKS 集群(将在不久的将来尝试将其转换为基于 Helm 的 AGIC)。目前我在这个集群上有一个应用程序,入口设置为应用程序网关。目前这在端口 80 上完美运行。
如果我想启用 SSL,是否只需要在 App Gateway 添加证书,然后在部署中引用它? (示例取自 https://thewindowsupdate.com/2021/10/19/what-does-it-mean-for-the-application-gateway-ingress-controller-agic-to-assume-full-ownership/
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: aspnetapp
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/appgw-ssl-certificate: <name of your certificated added to Application Gateway>
appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: aspnetapp
servicePort: 80
虽然上面设置了服务端口为80,但是App GW会自动申请TLS吗?上面的服务端口应该是80还是443?还是因为设置了 SSL 重定向就没关系了?还有这个自动加密哪些方面?
- 外部 -> 应用 GW ?
- 应用网关 -> 入口?
另外,App GW 的外部是否也需要另一个证书?还是我只需要一个证书?
AGIC 将创建:
- 2 个侦听器:端口 80 上的 HTTP 和端口 443 上的 HTTPS。HTTPS 侦听器将使用来自
appgw.ingress.kubernetes.io/appgw-ssl-certificate
的 SSL 证书进行配置
- 2条路由规则:一条将http监听流量重定向到https监听。 https 侦听器将配置为以 AKS 上的后端为目标。
默认情况下,AGIC 将执行 TLS 终止,因此应用程序网关和 aks 集群之间的流量将使用 HTTP(而非 HTTPS)协议。配置的端口将是您服务的 targetPort
中配置的端口。
另外请注意,您之前应该已经看到此警告:
extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
您应该更新 AGIC 以使用 latest version 并更改您的清单以使用 networking.k8s.io/v1
Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: aspnetapp
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/ssl-redirect: "true"
appgw.ingress.kubernetes.io/appgw-ssl-certificate: "<name of your certificated added to Application Gateway>"
spec:
rules:
...