Share via


SSL-kiszervezés az Application Gateway for Containers használatával – Átjáró API

Ez a dokumentum segít beállítani egy példaalkalmazást, amely az alábbi erőforrásokat használja a Gateway API-ból. A lépések a következők:

  • Hozzon létre egy átjáróerőforrást egy HTTPS-figyelővel.
  • Hozzon létre egy HTTPRoute-t , amely egy háttérszolgáltatásra hivatkozik.

Háttér

Az Application Gateway for Containers lehetővé teszi az SSL-kiszervezést a jobb háttérteljesítmény érdekében. Lásd a következő példaforgatókönyvet:

Ábra az SSL-kiszervezésről az Application Gateway for Containers használatával.

Előfeltételek

  1. Ha a BYO telepítési stratégiáját követi, győződjön meg arról, hogy beállítja az Application Gateway for Containers-erőforrásokat és az ALB-vezérlőt

  2. Ha az ALB által felügyelt üzembehelyezési stratégiát követi, győződjön meg arról, hogy az ALB-vezérlőt és az Application Gateway for Containers-erőforrásokat az ApplicationLoadBalancer egyéni erőforráson keresztül építi ki.

  3. Minta HTTPS-alkalmazás üzembe helyezése: Alkalmazza a következő deployment.yaml fájlt a fürtre, hogy létrehozhasson egy minta webalkalmazást a TLS/SSL-kiszervezés bemutatásához.

    kubectl apply -f https://trafficcontrollerdocs.blob.core.windows.net/examples/https-scenario/ssl-termination/deployment.yaml
    

    Ez a parancs a következőt hozza létre a fürtön:

    • nevű névtér test-infra
    • egy szolgáltatás neve echo a test-infra névtérben
    • egy üzembe helyezés neve echo a test-infra névtérben
    • egy titkos kód, amely a test-infra névtérben van meghívva listener-tls-secret

A szükséges Átjáró API-erőforrások üzembe helyezése

  1. Átjáró létrehozása

    kubectl apply -f - <<EOF
    apiVersion: gateway.networking.k8s.io/v1
    kind: Gateway
    metadata:
      name: gateway-01
      namespace: test-infra
      annotations:
        alb.networking.azure.io/alb-namespace: alb-test-infra
        alb.networking.azure.io/alb-name: alb-test
    spec:
      gatewayClassName: azure-alb-external
      listeners:
      - name: https-listener
        port: 443
        protocol: HTTPS
        allowedRoutes:
          namespaces:
            from: Same
        tls:
          mode: Terminate
          certificateRefs:
          - kind : Secret
            group: ""
            name: listener-tls-secret
    EOF
    

Feljegyzés

Amikor az ALB-vezérlő létrehozza az Application Gateway for Containers-erőforrásokat az ARM-ben, a következő elnevezési konvenciót fogja használni egy előtérbeli erőforráshoz:< 8 véletlenszerűen létrehozott karakter>

Ha módosítani szeretné az Azure-ban létrehozott előtér nevét, fontolja meg a saját üzembehelyezési stratégia követését.

Az átjáró-erőforrás létrehozásakor győződjön meg arról, hogy az állapot érvényes, a figyelő programozott, és egy cím van hozzárendelve az átjáróhoz.

kubectl get gateway gateway-01 -n test-infra -o yaml

Példa a sikeres átjárólétrehozás kimenetére.

status:
  addresses:
  - type: Hostname
    value: xxxx.yyyy.alb.azure.com
  conditions:
  - lastTransitionTime: "2023-06-19T21:04:55Z"
    message: Valid Gateway
    observedGeneration: 1
    reason: Accepted
    status: "True"
    type: Accepted
  - lastTransitionTime: "2023-06-19T21:04:55Z"
    message: Application Gateway For Containers resource has been successfully updated.
    observedGeneration: 1
    reason: Programmed
    status: "True"
    type: Programmed
  listeners:
  - attachedRoutes: 0
    conditions:
    - lastTransitionTime: "2023-06-19T21:04:55Z"
      message: ""
      observedGeneration: 1
      reason: ResolvedRefs
      status: "True"
      type: ResolvedRefs
    - lastTransitionTime: "2023-06-19T21:04:55Z"
      message: Listener is accepted
      observedGeneration: 1
      reason: Accepted
      status: "True"
      type: Accepted
    - lastTransitionTime: "2023-06-19T21:04:55Z"
      message: Application Gateway For Containers resource has been successfully updated.
      observedGeneration: 1
      reason: Programmed
      status: "True"
      type: Programmed
    name: https-listener
    supportedKinds:
    - group: gateway.networking.k8s.io
      kind: HTTPRoute

Az átjáró létrehozása után hozzon létre egy HTTPRoute-erőforrást.

kubectl apply -f - <<EOF
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: https-route
  namespace: test-infra
spec:
  parentRefs:
  - name: gateway-01
  rules:
  - backendRefs:
    - name: echo
      port: 80
EOF

A HTTPRoute-erőforrás létrehozása után győződjön meg arról, hogy az útvonal elfogadott , és az Application Gateway for Containers erőforrás be van programozva.

kubectl get httproute https-route -n test-infra -o yaml

Ellenőrizze, hogy az Application Gateway for Containers erőforrás sikeresen frissült-e.

status:
  parents:
  - conditions:
    - lastTransitionTime: "2023-06-19T22:18:23Z"
      message: ""
      observedGeneration: 1
      reason: ResolvedRefs
      status: "True"
      type: ResolvedRefs
    - lastTransitionTime: "2023-06-19T22:18:23Z"
      message: Route is Accepted
      observedGeneration: 1
      reason: Accepted
      status: "True"
      type: Accepted
    - lastTransitionTime: "2023-06-19T22:18:23Z"
      message: Application Gateway For Containers resource has been successfully updated.
      observedGeneration: 1
      reason: Programmed
      status: "True"
      type: Programmed
    controllerName: alb.networking.azure.io/alb-controller
    parentRef:
      group: gateway.networking.k8s.io
      kind: Gateway
      name: gateway-01
      namespace: test-infra

Az alkalmazáshoz való hozzáférés tesztelése

Most már készen állunk arra, hogy némi forgalmat küldjünk a mintaalkalmazásunknak az előtérhez rendelt teljes tartománynéven keresztül. Az FQDN lekéréséhez használja az alábbi parancsot.

fqdn=$(kubectl get gateway gateway-01 -n test-infra -o jsonpath='{.status.addresses[0].value}')

Ennek az FQDN-nek a httpRoute-on konfigurált módon kell visszaadnia a háttérrendszer válaszait.

curl --insecure https://$fqdn/

Gratulálunk, telepítette az ALB-vezérlőt, telepített egy háttéralkalmazást, és átirányította a forgalmat az alkalmazáshoz az Application Gateway for Containers bejövő forgalmán keresztül.