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 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 organisasi).

    • env: Lingkungan di 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 ditampilkan 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!
    

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 - Secret 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 dari luar ke layanan edge-microgateway.

  1. Men-deploy layanan helloworld contoh. Karena Ingress tidak mengetahui 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. Perhatikan 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 membuat proxy layanan

Dapatkan IP internal untuk layanan helloworld, dan tambahkan sebagai target proxy "yang mengetahui microgateway". Membuat proxy "yang mendukung microgateway" adalah persyaratan Edge Microgateway standar.

Lihat juga Yang perlu Anda ketahui tentang proxy yang mendukung Microgateway.

Mendapatkan IP internal untuk layanan pengujian

  1. Dapatkan IP dan port Cluster internal 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 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 (most common).
  6. Klik Berikutnya.
  7. Di halaman Detail wizard, konfigurasi sebagai berikut. Pastikan untuk mengisi wizard persis seperti yang ditampilkan. Pastikan nama proxy memiliki awalan edgemicro_.

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

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

      Misalnya: http://10.55.254.255:8081

  8. Klik Berikutnya.

  9. Di halaman Keamanan pada wizard, pilih Teruskan (tidak ada).

  10. Klik Berikutnya.

  11. Di halaman Virtual Hosts pada wizard, setujui setelan default.

  12. Klik Berikutnya.

  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 ada untuk pengujian, atau membuat developer baru sebagai berikut:

  1. Pilih Publikasi > 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 lebih lanjut Opsi konfigurasi produk di Yang perlu Anda ketahui tentang konfigurasi Produk API.

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

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

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

  6. Pilih + Resource Kustom lagi dan tambahkan jalur /**.

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

  8. Pilih proxy bernama edgemicro-auth.

  9. Klik + API Proxy lagi.

  10. Pilih proxy yang mendukung microgateway bernama edgemicro_hello.

  11. Klik Simpan.

Membuat Aplikasi Developer

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

    Nama hello-world-app
    Display Name Edge Micro hello app
    Developer Pilih developer pengujian yang Anda buat atau developer mana pun.
  4. Di bagian Kredensial, klik + Produk dan 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 Anda buat, 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 melakukan panggilan API yang aman ke /hello.

  10. Tunggu beberapa menit. Perlu 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 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:

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

    echo $GATEWAY_IP

    Contoh output:

    35.238.249.62
    

Memanggil API

Setelah perubahan konfigurasi ditarik ke dalam microgateway, Anda dapat mencoba memanggil API. Anda menggunakan IP pengontrol Ingress (yang Anda simpan 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. Panggil API tanpa kunci API. Anda akan mendapatkan pesan error, seperti yang ditunjukkan di bawah:

    curl $GATEWAY_IP:80/hello/

    Output yang diharapkan:

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

    Jika melihat pesan ini, Anda mungkin perlu menunggu sedikit lebih lama hingga sinkronisasi selesai:

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

    Untuk membuat panggilan API yang 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: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 langkah selanjutnya?

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