Men-deploy Edge Microgateway sebagai layanan

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

Pengantar

Topik ini menjelaskan cara menjalankan Edge Microgateway di cluster Kubernetes sebagai layanan mandiri.

Untuk mengetahui informasi selengkapnya, lihat Ringkasan Mengintegrasikan Edge Microgateway dengan Kubernetes.

Sebelum memulai

Selesaikan langkah-langkah yang dijelaskan dalam Prasyarat.

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 docs -e test -u jdoe@example.com

    Output (contoh ditunjukkan di bawah ini) 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!
    

Men-deploy Edge Microgateway sebagai layanan

  1. Jalankan perintah berikut untuk men-deploy Edge Microgateway sebagai layanan di cluster Kubernetes Anda:

    kubectl apply -f <(edgemicroctl -org=org -env=env -key=edgemicro-key
    -sec=edgemicro-secret -conf=file path of org-env-config.yaml)

    dalam hal ini:

    • org - Organisasi Apigee yang Anda tentukan dalam perintah edgemicro configure.
    • env - Lingkungan yang Anda tentukan dalam perintah edgemicro configure.
    • edgemicro-key - Kunci yang ditampilkan dari perintah edgemicro configure.
    • edgemicro-secret - Rahasia yang ditampilkan dari perintah edgemicro configure.
    • file path of org-env-config.yaml - Jalur ke file konfigurasi Edge Micro yang ditampilkan dari perintah edgemicro configure.

    Contoh:

    kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=989cce9d41cac94e72626d906562a1d76a19445f8901b3508858bb064988eccb -sec=ec92b793178de7b7e88e346f55a951e3fdae05e700e3ddea7d63977826379784 -conf=/Users/jdoe/.edgemicro/jdoe-test-config.yaml)

    Contoh output:

    config/myorg-test-config.yaml)
    service "edge-microgateway" created
    deployment "edge-microgateway" created
    secret "mgwsecret" created
    
  2. Salin dan tempel kode berikut ke terminal Anda. Kode ini menyiapkan pengontrol Ingress untuk mengizinkan akses eksternal ke layanan edge-microgateway. Anda mungkin perlu menekan Enter setelah menempelkan perintah ke terminal:

    cat <<EOF | kubectl apply -f -
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: edge-microgateway-ingress
      annotations:
        kubernetes.io/ingress.class: "nginx"
    spec:
      rules:
      - http:
          paths:
          - path: /
            backend:
              serviceName: edge-microgateway
              servicePort: 8000
    EOF
    

    Jika berhasil, Anda akan melihat output ini:

    ingress "edge-microgateway-ingress" created
    

    Pengontrol Ingress kini dikonfigurasi untuk mengizinkan akses eksternal ke layanan edge-microgateway.

Men-deploy layanan pengujian

Langkah-langkah berikut men-deploy layanan pengujian sederhana ke cluster Anda. Pengontrol Ingress tidak mengizinkan layanan dipanggil dari luar cluster. Kemudian, Anda akan mengonfigurasi Edge Microgateway untuk memanggil layanan sebagai targetnya. Pengontrol Ingress mengizinkan akses luar ke layanan edge-microgateway.

  1. Deploy contoh layanan helloworld. Karena Ingress tidak mengetahui tentang layanan ini, layanan tidak dapat dipanggil dari luar cluster.

    kubectl apply -f samples/helloworld/helloworld-service.yaml

    Contoh output:

    service "helloworld" created deployment "helloworld" created
    
  2. Verifikasi bahwa deployment berhasil. Perlu diperhatikan bahwa tidak ada IP eksternal untuk layanan helloworld. Pada langkah-langkah berikut, Anda akan mengonfigurasi Edge Microgateway untuk mengakses IP internal layanan.

    kubectl get services -n default

    Contoh output:

    NAME                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    edge-microgateway   NodePort    10.35.247.222   <none>        8000:32000/TCP   12m
    helloworld          NodePort    10.35.245.103   <none>        8081:30294/TCP   47s
    kubernetes          ClusterIP   10.35.240.1     <none>        443/TCP          47m
    

Mengonfigurasi Edge Microgateway untuk menjadi proxy untuk layanan

Dapatkan IP internal untuk layanan helloworld, lalu tambahkan sebagai target proxy "microgateway-aware". Membuat proxy "microgateway-aware" adalah persyaratan Edge Microgateway standar.

Lihat juga Yang perlu Anda ketahui tentang proxy berbasis Microgateway.

Mendapatkan IP internal untuk layanan pengujian

  1. Dapatkan IP Cluster internal dan port untuk layanan helloworld:

    kubectl get services helloworld

    Contoh output:

    NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    helloworld   NodePort   10.55.254.255   <none>        8081:30329/TCP   3m
    
  2. Salin nilai CLUSTER-IP dan PORT. Misalnya, dalam contoh di atas, nilai ini adalah: 10.55.254.255 dan 8081. Nilai-nilai untuk sistem Anda akan berbeda.

Membuat proxy yang mendukung microgateway di Edge

  1. Login ke UI Edge.
  2. Pilih organisasi yang sama dengan yang Anda tentukan sebelumnya saat mengonfigurasi Edge Microgateway.
  3. Pilih Develop > API Proxies di menu navigasi samping.
  4. Klik + Proxy. Wizard Build a Proxy akan terbuka.
  5. Di halaman wizard pertama, pilih Reverse proxy (paling umum).
  6. Klik Next.
  7. Pada halaman Detail wizard, konfigurasikan sebagai berikut. Pastikan untuk mengisi wizard persis seperti yang ditunjukkan. Pastikan nama proxy memiliki awalan edgemicro_.

    1. Nama Proxy: edgemicro_hello
    2. Jalur Dasar Proxy: /hello

    3. API yang sudah ada: http://<cluster_ip>:<port>

      Misalnya: http://10.55.254.255:8081

  8. Klik Next.

  9. Di halaman Security di wizard, pilih Pass through (none).

  10. Klik Next.

  11. Di halaman Virtual Hosts wizard, terima defaultnya.

  12. Klik Next.

  13. Di halaman Build pada wizard, tinjau setelan proxy Anda. Pastikan lingkungan pengujian dipilih.

  14. Klik Build and Deploy.

Membuat Developer

Anda dapat menggunakan developer yang sudah ada untuk pengujian, atau membuat developer baru sebagai berikut:

  1. Pilih Publikasikan > Developer di menu navigasi samping.
  2. Klik + Developer.
  3. Isi dialog untuk membuat developer baru. Anda dapat menggunakan nama/email developer apa pun yang Anda inginkan.

Membuat Produk API

Buat Produk API seperti yang dijelaskan di bawah. Anda akan menambahkan dua proxy ke Produk: edgemicro-auth dan edgemicro_hello.

Anda dapat membaca opsi konfigurasi Produk lebih lanjut di Yang perlu Anda ketahui tentang konfigurasi Produk API.

  1. Pilih Publish > API Products di menu navigasi samping.
  2. Klik + Produk API. Halaman Detail Produk akan muncul.
  3. Isi halaman Detail Produk sebagai berikut. Jangan klik Simpan hingga diperintahkan untuk melakukannya.

    Nama hello-world-product
    Nama Tampilan Edge Micro hello product
    Lingkungan test
    Akses Public
    Jenis Persetujuan Kunci Automatic
  4. Di paruh bawah halaman, klik + Resource Kustom.

  5. Tetapkan resource ke / (satu garis miring).

  6. Pilih + Custom Resource lagi, lalu tambahkan jalur /**.

  7. Di bagian bawah halaman, klik + API Proxy.

  8. Pilih proxy dengan nama edgemicro-auth.

  9. Klik + API Proxy lagi.

  10. Pilih proxy microgateway-aware dengan nama edgemicro_hello.

  11. Klik Simpan.

Membuat Aplikasi Developer

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

    Nama hello-world-app
    Nama Tampilan Edge Micro hello app
    Developer Pilih developer pengujian yang Anda buat atau developer mana pun tidak masalah.
  4. Di bagian Credentials, klik + Product, lalu pilih produk yang Anda buat: hello-world-product.

  5. Klik Simpan.

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

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

  8. Klik Tampilkan di samping Kunci Konsumen.

  9. Salin nilai Kunci Konsumen. Nilai ini adalah kunci API yang akan Anda gunakan untuk membuat panggilan API yang aman ke /hello.

  10. Tunggu beberapa menit. Diperlukan waktu beberapa menit agar perubahan yang Anda buat di Apigee Edge disinkronkan dengan instance Edge Microgateway yang di-deploy di cluster.

Menguji proxy

Mendapatkan alamat IP Ingress

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

  1. Dapatkan alamat IP eksternal dari pengontrol Ingress:

    kubectl get ing -o wide

    Contoh output:

    NAME                        HOSTS     ADDRESS          PORTS     AGE
    edge-microgateway-ingress   *         35.238.249.62    80        37m
    
  2. Salin nilai ADDRESS 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 menyetelnya untuk Anda:

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

    echo $GATEWAY_IP

    Contoh output:

    35.238.249.62
    

Memanggil API

Setelah perubahan konfigurasi ditarik ke microgateway, Anda dapat mencoba memanggil API. Anda menggunakan IP pengontrol Ingress (yang disimpan dalam variabel GATEWAY_IP untuk memanggil API, karena IP ini memungkinkan Anda memanggil proxy dari luar cluster Kubernetes. Pemetaan dari Ingress ke Edge Microgateway dibuat saat Anda men-deploy Edge Microgateway ke cluster.

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

    curl $GATEWAY_IP:80/hello/

    Output yang diharapkan:

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

    Jika melihat pesan ini, Anda mungkin perlu menunggu sebentar lagi sampai sinkronisasi selesai:

    {"message":"no match found for /hello/","status":404}
    

    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 butuhkan untuk memanggil proxy pengujian:

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

    Contoh:

    curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP:80/hello/

    Output:

    Hello world
    

    Jika Anda melihat respons "Hello world", berarti Anda telah berhasil mengonfigurasi Edge Microgateway untuk memanggil layanan helloworld di dalam cluster Kubernetes.

Apa selanjutnya?

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