Men-deploy Edge Microgateway sebagai proxy bantuan

Anda sedang melihat dokumentasi Apigee Edge.
Buka Dokumentasi Apigee X.
info

Pengantar

Topik ini menjelaskan cara menjalankan Edge Microgateway di cluster Kubernetes sebagai proxy file bantuan. Anda memiliki dua opsi untuk deployment file bantuan: manual dan otomatis tanpa injeksi. Topik ini menjelaskan kedua opsi tersebut.

Untuk mengetahui informasi selengkapnya, lihat Pengantar Edge Microgateway di Kubernetes.

Sebelum memulai

Selesaikan langkah-langkah yang dijelaskan dalam Prasyarat.

Men-deploy layanan pengujian

Men-deploy "hello" sederhana dan memverifikasi deployment tersebut:

  1. Deploy contoh:

    kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
  2. Pastikan layanan berjalan. Anda mungkin perlu menunggu beberapa saat sampai pod akan berputar ke status berjalan:

    kubectl get pods --namespace=default

    Contoh output:

    NAME                          READY     STATUS    RESTARTS   AGE
    helloworld-569d6565f9-lwrrv   1/1       Running   0          17m
    
  3. Hapus deployment layanan pengujian. Anda akan menginstalnya kembali nanti, setelah mengaktifkan injeksi file bantuan:

     kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default

Menggunakan injeksi file bantuan manual

Dari dua opsi injeksi file bantuan, injeksi file bantuan manual lebih sederhana dan mudah , dan dapat dilakukan dengan satu perintah kubectl.

Mengonfigurasi Edge Microgateway

Perintah berikut mengonfigurasi Edge Microgateway untuk organisasi Apigee Anda dan men-deploy proxy edgemicro-auth.

  1. Jalankan perintah berikut:

    edgemicro configure -o [org] -e [env] -u [username]

    Dengan keterangan:

    • org: Nama organisasi Edge Anda (Anda harus menjadi administrator org).

    • env: Lingkungan dalam organisasi Anda (seperti pengujian atau produksi).

    • username: Alamat email yang terkait dengan akun Apigee Anda.

    Contoh

    edgemicro configure -o myorg -e test -u jdoe@example.com

    Output (contoh ditunjukkan di bawah) disimpan ke file:

    $HOME/.edgemicro/org_name-env_name-config.yaml
    .

    current nodejs version is v6.9.1
    current edgemicro version is 2.5.25
    password:
    file doesn't exist, setting up
    Give me a minute or two... this can take a while...
    App edgemicro-auth deployed.
    checking org for existing KVM
    KVM already exists in your org
    configuring host edgemicroservices.apigee.net for region us-west1
    
    saving configuration information to: /Users/jdoe/.edgemicro/myorg-test-config.yaml
    
    vault info:
     -----BEGIN CERTIFICATE-----
    MIICpDCCAYwCCQCV9eBcO9a5WzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls
    b2NhbGhvc3QwHhcNMagwODA5MDAzMDEzWhcNMTgwODEwMDAzMDEzWjAUMRIwEAYD
    VQQDDBlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDh
    nAHT7JHX/WvWHRFb8FLm53SPIDld5LyPOUfINdEyhSIEeXoOUKg4EPweJPVSC9Vm
    Hw4ZMtEqWJM/XsQWvLe8ylRJa5wgmzmFCqAsuzs9+rmc9KvJqjpOh2uRTUf7KKfT
    iXL2UEseprcI5g8zNyqKyEf/ecWIwz3AkkPAZebVTsrdDfIDHvkyhhvlAHZAB9kn
    GtqP3N8kOlv4KQto9Gr7GYUGUIDugt7gM1F611+RBS+fYRi32GUAq/UQDkhYL8cp
    oIJiF7UYkk2+9t9CdOCDuIUCvJioHJQd0xvDpkC9f6LvwjwnCwku+4F2Q63+av5I
    mJoZJQPvW5aP53Qkk+kHAgMBAAEwDKYJKoZIhvcNAQELBQADggEBALyUBolXUFN8
    1bf268nR+gS8MOFDTxO1bUz+bKuT/g3K1PuNUJTueT+0L1H2OiZUzazAqwn2sqzN
    lQuvLg6LjxjlNkqTJGiJvGDcYVq45dv7UyxAZxhqxTxhlQ+Yu5R9pbQnzujezHpH
    6gtCoCkSt/QqiJ3YsmsVu5is+HpIJepMt0CyMh5tK9j87hl46QhHklaVfQ3ycMVm
    /wNPR/pjizg1FDUeq4nj/7DBVbMf9net/BDaZLeSW1HJ1vcsCXIcSZfQd4QymGFn
    8ADrND7ydVjwO/s23soPDTy0g4yLIZvky2tpT8d7YahNqSv2n7sXsLxruzcyCoQ4
    w+e3Z3F7IKI=
    -----END CERTIFICATE-----
    
    The following credentials are required to start edge micro
      key: 1a3b2754c7f20614817b86e09895825ecc252d34df6c4be21ae24356f09e6eb4
      secret: 16ad2431de73f07f57a6d44048f08d93b63f783bf1f2ac4221182aa7289c7cef
    
    edgemicro configuration complete!
    

Memasukkan Edge Microgateway sebagai file bantuan

Untuk memasukkan Edge Microgateway secara manual ke dalam pod layanan sebagai proxy file bantuan, jalankan perintah berikut:

kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -svc=service_deployment_file)

dalam hal ini:

  • your_org - Organisasi Apigee yang Anda tentukan di perintah edgemicro configure.
  • your_env - Lingkungan yang Anda tentukan di perintah edgemicro configure.
  • your_key - Kunci yang ditampilkan dari perintah edgemicro configure.
  • your_secret - Rahasia yang ditampilkan dari perintah edgemicro configure.
  • config_file_path - Jalur ke file konfigurasi Edge Micro yang ditampilkan dari perintah edgemicro configure.
  • service_deployment_file - Jalur ke file deployment layanan yang podnya akan mendapatkan layanan bantuan file pendamping. Contoh: samples/helloworld/helloworld.yaml.

Contoh:

kubectl apply -f <(edgemicroctl -org=myorg -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/jdoe/.edgemicro/myorg-test-config.yaml -svc=samples/helloworld/helloworld.yaml)

Menguji konfigurasi

  1. Periksa deployment layanan:

    kubectl get services -n default

    Contoh output:

    NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    helloworld   NodePort    10.15.254.163   <none>        8081:32401/TCP   56s
    kubernetes   ClusterIP   10.15.240.1     <none>        443/TCP          41m
    
  2. Sekarang, Anda siap untuk menguji deployment sidecar Edge Microgateway. Buka Uji proxy untuk mengetahui langkah-langkah mendetail.

Menggunakan injeksi file bantuan otomatis

Pada langkah berikut, Anda akan mengonfigurasi injeksi file bantuan otomatis untuk Kubernetes. Penyiapan ini memungkinkan Edge Microgateway dimasukkan sebagai file bantuan menggunakan proxy ke Kubernetes.

Memasang injektor file bantuan

  1. Menginstal ConfigMap yang memungkinkan injeksi Edge Microgateway:

    kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
  2. Jalankan skrip berikut untuk menginstal layanan webhook. Layanan webhook diperlukan untuk injeksi file bantuan otomatis:

    ./install/kubernetes/webhook-create-signed-cert.sh \
        --service edgemicro-sidecar-injector \
        --namespace edgemicro-system \
        --secret sidecar-injector-certs
    
  3. Tambahkan paket CA ke file penginstalan webhook. Kubernetes server-api menggunakan file ini untuk memanggil webhook:

    cat install/kubernetes/edgemicro-sidecar-injector.yaml | \
         ./install/kubernetes/webhook-patch-ca-bundle.sh > \
         install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
    
  4. Instal webhook injektor file samping Edge Microgateway:

    kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
    

    Contoh output:

    service "edgemicro-sidecar-injector" created
    serviceaccount "edgemicro-sidecar-injector-service-account" created
    deployment "edgemicro-sidecar-injector" created
    mutatingwebhookconfiguration "edgemicro-sidecar-injector" created
    
  5. Pastikan webhook injektor file samping Edge Microgateway berjalan:

    kubectl -n edgemicro-system get deployment -ledgemicro=sidecar-injector
    

    Contoh output:

    NAME                         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    edgemicro-sidecar-injector   1         1         1            1           12m
    
  6. Pastikan pod injeksi file bantuan berjalan di cluster Anda. Namespace edgemicro-system adalah tempat layanan sistem diinstal, termasuk Pengontrol masuk, backend HTTP default, dan injektor file bantuan:

    kubectl get pods -n edgemicro-system

    Contoh output:

    NAME                                            READY     STATUS    RESTARTS   AGE
    default-http-backend-55c6c69b88-gfnfd           1/1       Running   0          1h
    edgemicro-ingress-controller-64444469bf-jhn8b   1/1       Running   3          1h
    edgemicro-sidecar-injector-7d95698fbf-cq84q     1/1       Running   0          3m
    

Mengonfigurasi dan memasukkan Edge Microgateway

Pada langkah berikutnya, Anda akan menjalankan skrip interaktif untuk membuat Edge Microgateway yang terkait dengan namespace Kubernetes. Kemudian, Anda akan menginjeksikan ke cluster Kubernetes Anda.

  1. Jalankan skrip interaktif berikut dan berikan parameter yang diminta. Tujuan menghasilkan profil konfigurasi yang akan Anda gunakan pada langkah berikutnya.

    ./install/kubernetes/webhook-edgemicro-patch.sh

    Untuk informasi tentang parameter input, lihat Referensi.

    Contoh input:

    1. Namespace to deploy application [default]:

      Tekan Enter.

    2. Authenticate with OAuth Token ("n","Y") [N/y]

      Masukkan n.

    3. Apigee username [required]:

      Masukkan nama pengguna (alamat email) Apigee Anda. Misalnya: jdoe@google.com.

    4. Apigee password [required]:

      Masukkan sandi Apigee.

    5. Apigee organization [required]:

      Masukkan nama organisasi Apigee Anda.

    6. Apigee environment [required]:

      Masukkan nama lingkungan untuk organisasi Anda. Misalnya "test".

    7. Virtual Host [default]:

      Tekan Enter.

    8. Is this Private Cloud ("n","y") [N/y]:

      Masukkan n jika Anda menggunakan Public Cloud.

    9. Edgemicro Key. Press Enter to generate:

      Tekan Enter.

    10. Edgemicro Secret. Press Enter to generate:

      Tekan Enter.

    11. Edgemicro org-env-config.yaml. Press Enter to generate:

      Tekan Enter.

      Contoh output:

      current nodejs version is v6.9.1
      current edgemicro version is 2.5.25
      config initialized to /Users/jdoe/.edgemicro/default.yaml
      Configure for Cloud
      ******************************************************************************************
      Config file is Generated in /Users/jdoe/Work/GITHUB/microgateway_2.5.25_Darwin_x86_64/config directory.
      
      Please make changes as desired.
      *****************************************************************************************
      
    12. Do you agree to proceed("n","y") [N/y]:

      Masukkan y.

      Contoh output:

      Configuring Microgateway with
      
      key:daacf75dd660d160b801c9117fb1ec0935896615479e39dbbae88be81a2d84
      secret:a60fd57c1db9f3a06648173fb541cb9c59188d3b6037a76f490ebf7a6584b0
      config:~/.edgemicro/jdoe-test-config.yaml
      
      ********************************************************************************************************
      kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
      ********************************************************************************************************
      
  2. Jalankan perintah yang diberikan di baris terakhir output. Perintah kubectl ini memasukkan profil konfigurasi Edge Microgateway yang dihasilkan ke Kubernetes:

    kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
  3. Lihat status injeksi webhook. Perhatikan bahwa saat ini fitur ini tidak diaktifkan:

    kubectl get namespace -L edgemicro-injection

    Contoh output:

    NAME               STATUS    AGE       EDGEMICRO-INJECTION
    default            Active    1d
    edgemicro-system   Active    1d
    kube-public        Active    1d
    kube-system        Active    1d
    
  4. Jalankan perintah ini untuk mengaktifkan injeksi webhook untuk webhook:

    kubectl label namespace default edgemicro-injection=enabled
  5. Lihat lagi status injeksi webhook. Perhatikan bahwa sekarang fitur ini diaktifkan:

    kubectl get namespace -L edgemicro-injection

    Contoh output:

    NAME               STATUS    AGE       EDGEMICRO-INJECTION
    default            Active    1d        enabled
    edgemicro-system   Active    1d
    kube-public        Active    1d
    kube-system        Active    1d
    

Men-deploy layanan pengujian

Sekarang, deploy ulang layanan pengujian. Edge Microgateway akan otomatis dimasukkan ke dalam pod layanan.

kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default

Memastikan bahwa Edge Microgateway dimasukkan ke dalam pod bersama dengan pengujian layanan:

kubectl get pods --namespace=default --watch

Contoh output:

NAME                          READY     STATUS            RESTARTS   AGE
helloworld-6987878fc4-pkw8h   0/2       PodInitializing   0          12s
helloworld-6987878fc4-pkw8h   2/2       Running           0         26s

Saat status berubah menjadi Running, tekan ctrl-c untuk keluar dari perintah.

Sekarang, Anda siap untuk menguji deployment sidecar otomatis dari Edge Microgateway. Buka Uji proxy untuk mengetahui langkah-langkah mendetail.

Menguji proxy

Dengan deployment file bantuan, proxy API untuk layanan Anda dibuat secara otomatis. Anda tidak perlu membuat konfigurasi "Edge Microgateway-aware" {i>proxy<i}.

Mendapatkan alamat IP Ingress

Dengan IP Eksternal untuk Ingress, Anda dapat memanggil layanan dari luar cluster.

  1. Dapatkan alamat IP eksternal dari pengontrol Ingress:

    kubectl get ing -o wide

    Contoh output:

    NAME      HOSTS     ADDRESS        PORTS     AGE
    gateway   *         35.238.13.54   80        1m
    
  2. Salin nilai EXTERNAL-IP untuk Ingress dan ekspor ke variabel. Anda dapat menetapkan variabel secara manual:

    export GATEWAY_IP=external_ip

    Contoh:

    export GATEWAY_IP=35.238.249.62

    Atau, gunakan perintah ini untuk menetapkannya untuk Anda:

    export GATEWAY_IP=$(kubectl describe ing gateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
  3. Pastikan variabel diekspor. Contoh:

    echo $GATEWAY_IP

    Contoh output:

    35.238.249.62
    
  4. Hubungi layanan:

    curl $GATEWAY_IP

    Output:

    {"error":"missing_authorization","error_description":"Missing Authorization header"}
    

    Selanjutnya, Anda akan mengatasi error otorisasi yang tidak ada dengan mengonfigurasi produk API dan aplikasi developer di Edge agar Anda bisa mendapatkan kunci API yang valid. Saat Anda menambahkan kunci ke otorisasi untuk panggilan API, panggilan akan berhasil, dan Anda tidak akan melihat error ini.

Membuat komponen di Apigee Edge

Selanjutnya, buat produk API dan aplikasi developer di Apigee Edge.

Membuat produk API

  1. Login ke Apigee Edge.
  2. Pilih Publikasikan > Produk API di menu navigasi samping.
  3. Klik + Produk API. Halaman Produk Muncul.
  4. Isi halaman Produk sebagai berikut. Untuk {i>field<i} yang tidak disebutkan di bawah ini, Anda dapat menggunakan nilai default. Jangan Simpan hingga diperintahkan untuk melakukannya.

    Nama hello-world-product
    Display Name Edge Micro hello product
    Lingkungan test

  5. Di bagian Path, klik + Custom Resource.

  6. Tambahkan jalur /.

  7. Klik + Custom Resource lagi dan tambahkan jalur /**

  8. Di bagian Proxy API, klik + Proxy API dan tambahkan edgemicro-auth.

  9. Simpan Produk API.

Membuat Aplikasi Developer

  1. Pilih Aplikasi di menu navigasi samping.
  2. Klik + App. Halaman Detail Aplikasi Developer akan muncul.
  3. Isi halaman Aplikasi Developer sebagai berikut. Jangan Simpan hingga diperintahkan untuk melakukannya.

    Nama hello-world-app
    Display Name Edge Micro hello app
    Developer Pilih developer dari menu dropdown.
  4. Di bagian Credentials, klik + Product lalu pilih hello-world-product yang baru saja Anda buat.

  5. Klik Simpan.

  6. Anda akan kembali ke halaman yang mencantumkan semua aplikasi Developer.

  7. Pilih aplikasi yang baru saja Anda buat, hello-world-app.

  8. Klik Show di samping Consumer Key.

  9. Salin nilai Kunci Konsumen. Nilai ini adalah Kunci API yang akan Anda gunakan untuk melakukan panggilan API yang aman ke layanan helloworld.

  10. Tunggu beberapa menit. Perlu waktu beberapa menit untuk menerapkan perubahan yang Anda buat di Apigee Edge untuk disinkronkan dengan instance Edge Microgateway yang di-deploy di .

Memanggil API

Setelah perubahan konfigurasi ditarik ke dalam {i>microgateway<i}, Anda bisa melakukan pengujian berikut.

  1. Memanggil API tanpa kunci API. Anda akan mendapatkan pesan error, seperti yang ditunjukkan di bawah ini:

    curl $GATEWAY_IP

    Output yang diharapkan:

    {"error":"missing_authorization","error_description":"Missing Authorization
    header"}
    

    Agar panggilan API berhasil, Anda memerlukan kunci API.

  2. Dapatkan kunci Konsumen dari aplikasi Developer yang Anda buat. Nilai ini adalah Kunci API yang Anda perlukan untuk memanggil proxy pengujian:

    curl -H 'x-api-key:your-edge-api-key'  $GATEWAY_IP

    Contoh:

    curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP

    Output:

    Hello world
    

    "Halo dunia" ditampilkan oleh layanan helloworld yang di-deploy ke pod tersebut. Panggilan ke layanan tersebut diteruskan melalui Edge Microgateway terlebih dahulu, di mana otentikasi dilakukan. Jika Anda melihat banner "Hello world" (Halo Dunia) maka Anda telah berhasil mengonfigurasi Edge Microgateway untuk berfungsi sebagai proxy file bantuan dalam pod layanan helloworld.

Apa langkah selanjutnya?

Lihat bagian Tugas untuk mengetahui informasinya tentang menambahkan plugin kustom, menskalakan deployment, membuat perubahan konfigurasi, dan tugas-tugas lain yang mungkin ingin Anda lakukan.