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 dikaitkan dengan akun Apigee Anda.

    Contoh

    edgemicro configure -o docs -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!
    

Men-deploy Edge Microgateway sebagai layanan

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

    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 di perintah edgemicro configure.
    • env - Lingkungan yang Anda tentukan di 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 mengatur pengontrol Ingress yang memungkinkan akses eksternal ke layanan edge-microgateway. Anda mungkin perlu menekan Enter setelah menempelkan perintah ke terminal Anda:

    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 sekarang dikonfigurasi untuk mengizinkan akses eksternal ke Layanan edge-microgateway.

Men-deploy layanan pengujian

Langkah-langkah berikut men-deploy layanan pengujian sederhana ke cluster Anda. Tujuan Pengontrol masuk tidak mengizinkan layanan dipanggil dari luar cluster. Nantinya, 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 terkait 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. Pastikan 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 menyediakan proxy layanan

Dapatkan IP internal untuk layanan helloworld, lalu tambahkan sebagai target dari "microgateway-aware" {i>proxy<i}. Membuat "microgateway-aware" proxy adalah persyaratan standar Edge Microgateway.

Lihat juga Yang perlu Anda ketahui tentang Microgateway-aware menggunakan proxy.

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 ini, di atas, nilai tersebut adalah: 10.55.254.255 dan 8081. Nilai untuk sistem file akan berbeda.

Membuat proxy berbasis microgateway di Edge

  1. Login ke UI Edge.
  2. Pilih organisasi yang sama dengan yang Anda tentukan sebelumnya saat dikonfigurasi Edge Microgateway.
  3. Pilih Develop > Proxy API di menu navigasi samping.
  4. Klik + Proxy. Wizard Buat Proxy akan terbuka.
  5. Di halaman wizard pertama, pilih Reverse proxy (paling umum).
  6. Klik Berikutnya.
  7. Di halaman Detail wizard, konfigurasikan sebagai berikut. Pastikan untuk mengisi {i>wizard<i} persis seperti yang ditunjukkan. 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 Security di wizard, pilih Pass through (none).

  10. Klik Berikutnya.

  11. Pada halaman Host Virtual wizard, terima setelan default.

  12. Klik Berikutnya.

  13. Pada halaman Build di wizard, tinjau setelan proxy Anda. Pastikan test dipilih.

  14. Klik Build and Deploy.

Membuat Developer

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

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

Membuat Produk API

Buat Produk API seperti yang dijelaskan di bawah ini. Anda akan menambahkan dua {i>proxy<i} ke Produk: edgemicro-auth dan edgemicro_hello.

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

  1. Pilih Publikasikan > Produk API di menu navigasi samping.
  2. Klik + Produk API. Halaman Detail Produk akan muncul.
  3. Isi halaman Detail Produk sebagai berikut. Jangan klik Simpan sampai diinstruksikan 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 / (garis miring tunggal).

  6. Pilih + Custom Resource 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 berbasis microgateway bernama edgemicro_hello.

  11. Klik Simpan.

Membuat Aplikasi Developer

  1. Pilih Publikasikan > 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 pengujian yang Anda buat atau developer mana pun tidak masalah.
  4. Di bagian Credentials, klik + Product lalu pilih produk yang ingin Anda dibuat: hello-world-product.

  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 /hello.

  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 .

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 menetapkannya untuk Anda:

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

    echo $GATEWAY_IP

    Contoh output:

    35.238.249.62
    

Memanggil API

Setelah perubahan konfigurasi ditarik ke dalam {i>microgateway<i}, Anda bisa coba panggil API. Anda menggunakan IP pengontrol Ingress (yang Anda simpan di variabel GATEWAY_IP untuk memanggil API karena IP ini memungkinkan Anda memanggil proxy dari luar cluster Kubernetes. Tujuan pemetaan dari Ingress ke Edge Microgateway telah 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 sedikit lebih lama hingga 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 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 banner "Hello world" (Halo Dunia) maka Anda telah berhasil mengonfigurasi Edge Microgateway untuk memanggil layanan helloworld di dalam Kubernetes .

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.