Mengaktifkan klien non-SNI

Topik ini menjelaskan cara mengaktifkan klien non-SNI untuk digunakan dengan Apigee Hybrid.

Cara mengonfigurasi klien non-SNI

Bagian ini menjelaskan cara mengaktifkan dukungan untuk klien non-SNI (Server Name Indication) di Apigee Hybrid. Klien non-SNI menggunakan port 443 dan diperlukan jika Anda ingin mengintegrasikan instance runtime hybrid dengan Cloud Load Balancing Google atau untuk klien yang tidak mendukung SNI.
  1. Buat definisi resource kustom (CRD) ApigeeRoute. Pastikan enableNonSniClient disetel ke 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

    Dengan:

    • route_name adalah nama yang Anda berikan ke resource kustom (CR).
    • credential_name adalah nama Secret Kubernetes yang di-deploy ke cluster yang berisi kredensial TLS untuk virtualhost Anda. Anda dapat menemukan nama kredensial dengan Perintah kubectl berikut:
      kubectl -n apigee get ApigeeRoutes -o=yaml | grep credentialName
    • hostnames harus ditetapkan ke karakter pengganti "*".
  2. Buka file penggantian dan lakukan perubahan yang dijelaskan pada langkah berikutnya.
  3. Untuk setiap grup lingkungan, tambahkan nama ApigeeRoute ke properti additionalGateways. Contoh:
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["route_name"]
  4. Simpan file CRD. Contoh: ApigeeRoute.yaml
  5. Terapkan CRD ke cluster:
    kubectl apply -f ApigeeRoute.yaml -n apigee
  6. Terapkan perubahan ke virtualhosts. Jika telah menetapkan variabel lingkungan $ENV_GROUP di shell, Anda dapat menggunakannya dalam perintah berikut:
    helm upgrade $ENV_GROUP apigee-virtualhost/ \
      --namespace apigee \
      --atomic \
      --set envgroup=$ENV_GROUP \
      -f OVERRIDES_FILE.yaml
    

Catatan penggunaan

  • Apa yang terjadi jika cluster memiliki lebih dari satu organisasi?

    Karena ingress berada di tingkat cluster untuk port tertentu (443), dan hanya boleh ada satu pasangan kunci/sertifikat untuk CRD ApigeeRoute, semua org. harus menggunakan pasangan kunci/sertifikat yang sama.

  • Apa yang terjadi jika cluster memiliki lebih dari satu grup lingkungan? Apakah akan berfungsi jika host virtual berbagi pasangan kunci/sertifikat yang sama?

    Semua nama host di semua grup lingkungan harus menggunakan pasangan kunci/sertifikat yang sama.

  • Mengapa kita membuat ApigeeRoute, bukan Gateway?

    ApigeeRoute dapat divalidasi oleh Apigee; namun, Gateway (CRD Istio) tidak dapat divalidasi. Secara teknis, Gateway pun dapat berfungsi, tetapi kita dapat mencegah potensi kesalahan konfigurasi (melalui webhook validasi).

  • Bagaimana cara mengonfigurasi klien non-SNI untuk Apigee?

    Jika instance Apigee Anda diekspos melalui Google Load Balancer, Load Balancer akan mendukung klien non-SNI seperti yang dijelaskan dalam dokumentasi Load Balancing. Jika tidak, jika Anda telah mengekspos instance Apigee melalui endpoint PSC internal atau VPC, secara default instance Apigee mendukung klien non-SNI.