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: injeksi manual dan otomatis. 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
Deploy layanan "hello" sederhana dan verifikasi deployment:
Deploy contoh:
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Verifikasi bahwa layanan sedang berjalan. Anda mungkin perlu menunggu beberapa saat sampai pod berputar hingga status berjalan:
kubectl get pods --namespace=default
Contoh output:
NAME READY STATUS RESTARTS AGE helloworld-569d6565f9-lwrrv 1/1 Running 0 17m
Menghapus deployment layanan pengujian. Anda akan menginstalnya lagi nanti, setelah mengaktifkan injeksi file bantuan:
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
Menggunakan injeksi sespan manual
Dari dua opsi injeksi file bantuan, injeksi file bantuan manual adalah pendekatan yang lebih sederhana dan lebih mudah,
serta dapat dilakukan dengan satu perintah kubectl
.
Mengonfigurasi Edge Microgateway
Perintah berikut mengonfigurasi Edge Microgateway untuk organisasi Apigee Anda
dan men-deploy proxy edgemicro-auth
.
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 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!
Memasukkan Edge Microgateway sebagai file bantuan
Untuk memasukkan Edge Microgateway secara manual ke pod layanan sebagai proxy file bantuan, jalankan perintah ini:
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 dalam perintahedgemicro configure
.your_env
- Lingkungan yang Anda tentukan dalam perintahedgemicro configure
.your_key
- Kunci yang ditampilkan dari perintahedgemicro configure
.your_secret
- Rahasia yang ditampilkan dari perintahedgemicro configure
.config_file_path
- Jalur ke file konfigurasi Edge Micro yang ditampilkan dari perintahedgemicro configure
.service_deployment_file
- Jalur ke file deployment layanan yang podnya akan mendapatkan layanan bantuan 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
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
Sekarang, Anda siap menguji deployment file bantuan Edge Microgateway. Buka Menguji proxy untuk mengetahui langkah-langkah mendetail.
Menggunakan injeksi file bantuan otomatis
Pada langkah-langkah berikut, Anda akan mengonfigurasi injeksi file bantuan otomatis untuk cluster Kubernetes. Dengan penyiapan ini, Edge Microgateway dapat dimasukkan sebagai sidecar proxy ke Kubernetes.
Pasang injektor sidecar
Instal ConfigMap yang memungkinkan injeksi file bantuan Edge Microgateway:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
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
Tambahkan paket CA ke file penginstalan webhook. Kubernetes api-server 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
Instal webhook injektor sidecar 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
Pastikan webhook injektor sidecar 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
Pastikan pod injeksi file bantuan sedang berjalan di cluster Anda. Namespace
edgemicro-system
adalah tempat layanan sistem diinstal, termasuk pengontrol Ingress, backend HTTP default, dan injektor sidecar: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 konfigurasi Edge Microgateway yang terkait dengan namespace Kubernetes. Kemudian, Anda akan melakukan injeksi konfigurasi ke cluster Kubernetes Anda.
Jalankan skrip interaktif berikut dan berikan parameter yang diminta. Perintah ini menghasilkan profil konfigurasi yang akan Anda gunakan di langkah berikutnya.
./install/kubernetes/webhook-edgemicro-patch.sh
Untuk informasi tentang parameter input, lihat Referensi.
Contoh input:
Namespace to deploy application [default]:
Tekan Enter.
Authenticate with OAuth Token ("n","Y") [N/y]
Masukkan n.
Apigee username [required]:
Masukkan nama pengguna (alamat email) Apigee Anda. Misalnya:
jdoe@google.com
.Apigee password [required]:
Masukkan sandi Apigee Anda.
Apigee organization [required]:
Masukkan nama organisasi Apigee Anda.
Apigee environment [required]:
Masukkan nama lingkungan untuk organisasi Anda. Misalnya "test".
Virtual Host [default]:
Tekan Enter.
Is this Private Cloud ("n","y") [N/y]:
Masukkan n jika Anda menggunakan Public Cloud.
Edgemicro Key. Press Enter to generate:
Tekan Enter.
Edgemicro Secret. Press Enter to generate:
Tekan Enter.
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. *****************************************************************************************
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 ********************************************************************************************************
Jalankan perintah yang diberikan di baris terakhir output. Perintah
kubectl
ini memasukkan profil konfigurasi Edge Microgateway yang dihasilkan ke dalam Kubernetes:kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
Lihat status injeksi webhook. Perhatikan bahwa saat 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
Jalankan perintah ini guna mengaktifkan injeksi webhook untuk webhook:
kubectl label namespace default edgemicro-injection=enabled
Lihat lagi status injeksi webhook. Perhatikan bahwa sekarang sudah 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 pod layanan.
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Pastikan Edge Microgateway dimasukkan ke dalam pod bersama dengan layanan pengujian:
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 menguji deployment sespan otomatis Edge Microgateway. Buka Menguji proxy untuk mengetahui langkah-langkah mendetail.
Menguji proxy
Dengan deployment file bantuan, proxy API untuk layanan dibuat secara otomatis untuk Anda. Anda tidak perlu membuat proxy "Edge Microgateway-aware".
Mendapatkan alamat IP Ingress
Dengan IP Eksternal untuk Ingress, Anda dapat memanggil layanan dari luar cluster.
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
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 menyetelnya untuk Anda:
export GATEWAY_IP=$(kubectl describe ing gateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
Pastikan variabel tersebut diekspor. Contoh:
echo $GATEWAY_IP
Contoh output:
35.238.249.62
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 sehingga Anda bisa mendapatkan kunci API yang valid. Saat Anda menambahkan kunci ke header 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
- Login ke Apigee Edge.
- Pilih Publish > API Products di menu navigasi samping.
- Klik + Produk API. Halaman Produk Muncul.
Isi halaman Produk sebagai berikut. Untuk kolom yang tidak disebutkan di bawah, Anda dapat menggunakan nilai default. Jangan Simpan hingga diperintahkan untuk melakukannya.
Nama hello-world-product
Nama Tampilan Edge Micro hello product
Lingkungan test
Di bagian Jalur, klik + Resource Kustom.
Tambahkan jalur
/
.Klik + Custom Resource lagi, lalu tambahkan jalur
/**
Di bagian API Proxy, klik + API Proxy dan tambahkan edgemicro-auth.
Simpan Produk API.
Membuat Aplikasi Developer
- Pilih Aplikasi di menu navigasi samping.
- Klik + Aplikasi. Halaman Detail Aplikasi Developer akan muncul.
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 dari menu dropdown. Di bagian Credentials, klik + Product, lalu pilih
hello-world-product
yang baru saja Anda buat.Klik Simpan.
Anda kembali ke halaman yang mencantumkan semua aplikasi Developer.
Pilih aplikasi yang baru saja dibuat,
hello-world-app
.Klik Tampilkan di samping Kunci Konsumen.
Salin nilai Kunci Konsumen. Nilai ini adalah kunci API yang akan Anda gunakan untuk membuat panggilan API yang aman ke layanan
helloworld
.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.
Memanggil API
Setelah perubahan konfigurasi ditarik ke dalam microgateway, Anda dapat melakukan pengujian berikut.
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.
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
Contoh:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP
Output:
Hello world
Respons "Hello world" ditampilkan oleh layanan helloworld yang di-deploy ke pod. Panggilan ke layanan tersebut diteruskan melalui Edge Microgateway terlebih dahulu, tempat autentikasi dilakukan. Jika Anda melihat respons "Hello world", berarti Anda telah berhasil mengonfigurasi Edge Microgateway untuk berfungsi sebagai proxy sidecar di pod layanan helloworld.
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.