Abilita client non SNI e HTTP

Questo argomento spiega come abilitare i client non SNI, i client HTTP e una combinazione di entrambi per l'uso con Apigee hybrid.

Come configurare un client non SNI

Questa sezione spiega come attivare il supporto per i client non SNI (Server Name Indication) in Apigee Hybrid. Un client non SNI utilizza la porta 443 ed è necessario se vuoi integrare le istanze di runtime ibride con Cloud Load Balancing di Google o per i client che non supportano SNI.
  1. Creare una definizione di risorsa personalizzata (CRD) ApigeeRoute. Assicurati che enableNonSniClient sia impostato su true:
    apiVersion: apigee.cloud.google.com/v1alpha1
    kind: ApigeeRoute
    metadata:
      name: route_name
      namespace: apigee
    spec:
      hostnames:
      - "*"
      ports:
      - number: 443
        protocol: HTTPS
        tls:
          credentialName: credential_name
          mode: SIMPLE
          #optional
          minProtocolVersion: TLS_AUTO
      selector:
        app: apigee-ingressgateway
      enableNonSniClient: true

    Dove:

    • route_name è il nome che assegni alla risorsa personalizzata (RP).
    • credential_name è il nome di un secret Kubernetes di cui è stato eseguito il deployment nel cluster che contiene le credenziali TLS per il tuo virtualhost. Puoi trovare il nome delle credenziali con il seguente comando kubectl:
      kubectl -n apigee get ApigeeRoutes -o=yaml | grep credentialName
    • hostnames deve essere impostato sul carattere jolly "*".
  2. Apri il file delle sostituzioni e apporta la modifica descritta nel passaggio successivo.
  3. Per ogni gruppo di ambienti, aggiungi il nome ApigeeRoute alla proprietà additionalGateways. Ad esempio:
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["route_name"]
  4. Salva il file CRD. Ad esempio: ApigeeRoute.yaml
  5. Applica il CRD al cluster:
    kubectl apply -f ApigeeRoute.yaml -n apigee
  6. Applica la modifica a virtualhosts:

    Helm

    helm upgrade ENV_GROUP apigee-virtualhost/ \
      --namespace apigee \
      --atomic \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE.yaml
    

    apigeectl

    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --settings virtualhosts --env $ENVIRONMENT

Note sull'utilizzo

  • Cosa succede se il cluster ha più di un'organizzazione?

    Poiché l'ingresso è a livello di cluster per una determinata porta (443) e può esserci solo una coppia di chiavi/certificati per il CRD ApigeeRoute, tutte le organizzazioni devono condividere la stessa coppia di chiavi/certificati.

  • Cosa succede se il cluster ha più di un gruppo di ambienti? Funziona se gli host virtuali condividono la stessa coppia chiave/certificato?

    Tutti gli host name di tutti i gruppi di ambienti devono utilizzare la stessa coppia chiave/certificato.

  • Perché stiamo creando un ApigeeRoute invece di un gateway?

    ApigeeRoutes può essere convalidato da Apigee, ma non lo è Gateway (il CRD Istio). Tecnicamente, anche Gateway può funzionare, ma possiamo evitare potenziali errori di configurazione (tramite un webhook di convalida).

Abilita client HTTP

Questa sezione spiega il supporto per i client HTTP da utilizzare con Apigee hybrid.

  1. Crea una definizione di risorsa personalizzata (CRD) ApigeeRoute. Ad esempio:
    apiVersion: apigee.cloud.google.com/v1alpha1
    kind: ApigeeRoute
    metadata:
      name: route_name
      namespace: apigee
    spec:
      hostnames:
      - "*"
      ports:
      - number: 80
        protocol: HTTP
      selector:
        app: istio-ingressgateway
      enableNonSniClient: true

    Dove:

    • route_name è il nome che assegni alla CRD.
    • hostnames deve essere impostato sul carattere jolly "*".
  2. Apri il file delle sostituzioni e apporta la modifica descritta nel passaggio successivo.
  3. Per ogni gruppo di ambienti, aggiungi il nome ApigeeRoute alla proprietà additionalGateways. Ad esempio:
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["route_name"]
  4. Salva il file CRD. Ad esempio: ApigeeRoute.yaml
  5. Applica il CRD al cluster:
    kubectl apply -f ApigeeRoute.yaml -n apigee
  6. Applica la modifica a virtualhosts:

    Helm

    helm upgrade ENV_GROUP apigee-virtualhost/ \
      --namespace apigee \
      --atomic \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE.yaml
    

    apigeectl

    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --settings virtualhosts --env $ENVIRONMENT

Abilita il supporto sia per client non SNI che per client HTTP

Questa sezione spiega come abilitare entrambi i client non SNI (porta 443) e HTTP (porta 80) per l'uso con Apigee hybrid.

  1. Crea una definizione di risorsa personalizzata (CRD) ApigeeRoute. Ad esempio:
    apiVersion: apigee.cloud.google.com/v1alpha1
    kind: ApigeeRoute
    metadata:
      name: route_name
      namespace: apigee
    spec:
      hostnames:
      - "*"
      ports:
      - number: 443
        protocol: HTTPS
        tls:
          credentialName: credential_name
          mode: SIMPLE
          #optional
          minProtocolVersion: TLS_AUTO
      - number: 80
        protocol: HTTP
      selector:
        app: istio-ingressgateway
      enableNonSniClient: true

    Dove:

    • route_name è il nome che assegni alla risorsa CRD.
    • hostname deve essere impostato sul carattere jolly "*".
    • credential_name è il nome di un secret Kubernetes di cui è stato eseguito il deployment nel cluster che contiene le credenziali TLS per il tuo virtualhost. Puoi trovare il nome delle credenziali con il seguente comando kubectl:
      kubectl -n apigee get ApigeeRoutes -o=yaml | grep credentialName
  2. Apri il file delle sostituzioni e apporta la modifica descritta nel passaggio successivo.
  3. Per ogni gruppo di ambienti, aggiungi il nome ApigeeRoute alla proprietà additionalGateways. Ad esempio:
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["route_name"]
  4. Salva il file CRD. Ad esempio: ApigeeRoute.yaml
  5. Applica il CRD al cluster:
    kubectl apply -f ApigeeRoute.yaml -n apigee
  6. Applica la modifica a virtualhosts:

    Helm

    helm upgrade ENV_GROUP apigee-virtualhost/ \
      --namespace apigee \
      --atomic \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE.yaml
    

    apigeectl

    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --settings virtualhosts --env $ENVIRONMENT