Halaman ini menjelaskan cara men-deploy kode backend API dan Extensible Service Proxy (ESP) ke Google Kubernetes Engine dan Compute Engine.
Meskipun langkah-langkah deployment bervariasi bergantung pada platform yang menghosting API Anda, selalu ada langkah saat Anda memberikan nama layanan dan opsi yang mengonfigurasi ESP untuk menggunakan konfigurasi layanan Cloud Endpoints terbaru yang di-deploy. Dengan informasi ini, ESP dapat memperoleh konfigurasi Endpoint API Anda, yang memungkinkan ESP mem-proxy permintaan dan respons sehingga Cloud Endpoints dapat mengelola API Anda.
Prasyarat
Sebagai titik awal, halaman ini mengasumsikan bahwa Anda telah:
Mempersiapkan deployment
Compute Engine
Agar Endpoint dapat mengelola API, Anda harus menginstal dan mengonfigurasi ESP serta kode server backend untuk API Anda. Anda perlu menginstal Docker di instance VM Compute Engine agar dapat menjalankan image Docker ESP yang tersedia secara gratis di Container Registry.
Sebelum men-deploy:
Sebelum Anda dapat men-deploy API dan ESP ke Compute Engine, selesaikan langkah-langkah berikut:
- Buat, konfigurasikan, dan mulai instance VM Anda.
- Instal Docker Enterprise Edition (EE) atau Docker Community Edition (CE) di instance VM Anda.
- Buat penampung Docker untuk kode server backend Anda.
- Kirim container ke Artifact Registry} atau registry lain.
Pastikan Anda berhasil:
- Menghubungkan ke instance VM.
- Jalankan image Docker untuk memulai server backend di instance VM. Lihat Referensi run Docker.
- Kirim permintaan ke API Anda.
GKE
Saat Anda membuat cluster di konsol Google Cloud, secara default, cakupan OAuth yang diberikan ke akun layanan cluster mencakup cakupan yang diperlukan Endpoints:
- Service Control: Aktif
- Pengelolaan Layanan: Hanya Baca
Saat membuat cluster menggunakan perintah gcloud container clusters create
atau menggunakan file konfigurasi pihak ketiga, pastikan Anda menentukan cakupan berikut:
"https://www.googleapis.com/auth/servicecontrol"
"https://www.googleapis.com/auth/service.management.readonly"
Untuk mengetahui informasi selengkapnya, lihat Apa yang dimaksud dengan cakupan akses?.
Sebelum men-deploy:
Dengan menambahkan bagian kecil ke file manifes Deployment, Anda dapat menjalankan image Docker ESP di cluster container bersama dengan aplikasi dalam container. Sebelum Anda dapat men-deploy API dengan ESP ke GKE, selesaikan langkah-langkah berikut:
Deploy aplikasi dalam container ke cluster container. Langkah-langkah umum seperti yang dijelaskan dalam dokumentasi GKE adalah:
- Memaketkan aplikasi Anda ke dalam image Docker.
- Upload image ke registry.
- Buat cluster container.
- Deploy aplikasi Anda ke cluster.
- Mengekspos aplikasi Anda ke internet.
Pastikan Anda berhasil:
- Mulai server API Anda.
- Kirim permintaan ke API Anda.
Men-deploy API dan ESP
Compute Engine
Untuk men-deploy API dengan ESP ke Compute Engine dengan Docker:
Hubungkan ke instance VM Anda. Ganti
INSTANCE_NAME
dengan nama instance VM Anda:gcloud compute ssh INSTANCE_NAME
Buat jaringan penampung Anda sendiri yang disebut
esp_net
:sudo docker network create --driver bridge esp_net
Jalankan instance image kode server backend Anda dan hubungkan ke jaringan penampung
esp_net
:sudo docker run \ --detach \ --name=YOUR_API_CONTAINER_NAME \ --net=esp_net \ gcr.io/YOUR_PROJECT_ID/YOUR_IMAGE:1
- Ganti
YOUR_API_CONTAINER_NAME
dengan nama container Anda. - Ganti
YOUR_PROJECT_ID
dengan project ID Google Cloud yang Anda gunakan saat mendorong image. - Ganti
YOUR_IMAGE
dengan nama gambar Anda.
- Ganti
Dapatkan nama layanan API Anda. Ini adalah nama yang Anda tentukan di kolom
name
dalam file YAML konfigurasi layanan Anda.Jalankan instance image Docker ESP:
sudo docker run \ --detach \ --name=esp \ --publish=80:9000 \ --net=esp_net \ gcr.io/endpoints-release/endpoints-runtime:1 \ --service=SERVICE_NAME \ --rollout_strategy=managed \ --http2_port=9000 \ --backend=grpc://YOUR_API_CONTAINER_NAME:8000
- Ganti
SERVICE_NAME
dengan nama layanan Anda. - Ganti
YOUR_API_CONTAINER_NAME
dengan nama penampung API Anda.
Opsi
--rollout_strategy=managed
mengonfigurasi ESP untuk menggunakan konfigurasi layanan terbaru yang di-deploy. Saat Anda menentukan opsi ini, hingga 5 menit setelah Anda men-deploy konfigurasi layanan baru, ESP akan mendeteksi perubahan dan otomatis mulai menggunakannya. Sebaiknya tentukan opsi ini, bukan ID konfigurasi tertentu yang akan digunakan ESP.- Ganti
Jika Anda perlu mengonfigurasi ESP untuk menggunakan ID konfigurasi tertentu:
Sertakan opsi
--version
dan tetapkan ke ID konfigurasi tertentu.Hapus opsi
--rollout_strategy=managed
atau tetapkan--rollout_strategy
kefixed
. Opsifixed
mengonfigurasi ESP untuk menggunakan konfigurasi layanan yang Anda tentukan di--version
.Jalankan perintah
docker run
lagi.
Jika Anda menentukan opsi --rollout_strategy=managed
dan --version
,
ESP akan dimulai dengan konfigurasi yang Anda tentukan di
--version
, tetapi kemudian berjalan dalam mode terkelola dan mendapatkan konfigurasi
terbaru.
Sebaiknya jangan terus mengonfigurasi ESP untuk menggunakan ID konfigurasi tertentu terlalu lama karena jika Anda men-deploy konfigurasi layanan yang diperbarui, Anda harus memulai ulang ESP untuk menggunakan konfigurasi baru.
Untuk menghapus ID konfigurasi tertentu:
Di flag ESP untuk
docker run
, hapus opsi--version
.Tambahkan opsi
--rollout_strategy=managed
.Untuk memulai ulang ESP, jalankan perintah
docker run
.
Lihat opsi startup ESP untuk mengetahui daftar lengkap opsi yang dapat Anda tentukan saat memulai ESP.
GKE
Untuk men-deploy ESP ke GKE:
Dapatkan nama layanan API Anda.
Buka file manifes Deployment (disebut sebagai
deployment.yaml
) dan tambahkan kode berikut ke bagiancontainers
:containers: - name: esp image: gcr.io/endpoints-release/endpoints-runtime:1 args: [ "--http2_port=9000", "--service=SERVICE_NAME", "--rollout_strategy=managed", "--backend=grpc://127.0.0.1:8000" ] ports: - containerPort: 9000
Ganti
SERVICE_NAME
dengan nama layanan API Anda.Mulai layanan Kubernetes menggunakan perintah
kubectl create
:kubectl create -f deployment.yaml
Jika Anda perlu mengonfigurasi ESP untuk menggunakan ID konfigurasi tertentu:
Dalam file manifes Deployment, tambahkan opsi
--version
dan tetapkan ke ID konfigurasi tertentu.Hapus
--rollout_strategy=managed
atau tetapkan--rollout_strategy
kefixed
. Opsifixed
mengonfigurasi ESP untuk menggunakan konfigurasi layanan yang Anda tentukan di--version
.Mulai layanan Kubernetes:
kubectl create -f deployment.yaml
Jika Anda menentukan --rollout_strategy=managed
dan
opsi --version
, ESP akan dimulai dengan konfigurasi yang Anda
tentukan di --version
, tetapi kemudian berjalan dalam mode terkelola dan mendapatkan
konfigurasi terbaru.
Sebaiknya jangan terus mengonfigurasi ESP untuk menggunakan ID konfigurasi tertentu terlalu lama karena jika Anda men-deploy konfigurasi layanan yang diperbarui, Anda harus memulai ulang ESP untuk menggunakan konfigurasi baru.
Untuk menghapus ID konfigurasi tertentu:
Dalam file manifes Deployment, hapus opsi
--version
.Tambahkan
--rollout_strategy=managed
.Mulai layanan Kubernetes:
kubectl create -f deployment.yaml
Lihat opsi startup ESP untuk mengetahui daftar lengkap opsi yang dapat Anda tentukan saat memulai ESP.
Melacak aktivitas API
Setelah men-deploy ESP dan backend API, Anda dapat menggunakan alat seperti curl
atau Postman untuk mengirim permintaan ke API. Jika Anda tidak mendapatkan respons yang berhasil, lihat Memecahkan masalah error respons
Setelah mengirim beberapa permintaan, Anda dapat:
Untuk melihat grafik aktivitas API Anda, buka Endpoints > Services. Mungkin perlu waktu beberapa saat agar permintaan ditampilkan dalam grafik.
Lihat log permintaan untuk API Anda di halaman Cloud Logging.