Panduan migrasi gateway yang dihost sendiri

BERLAKU UNTUK: Pengembang | Premium

Artikel ini menjelaskan cara memigrasikan penyebaran gateway yang dihost sendiri yang ada ke gateway v2 yang dihost sendiri.

Penting

Dukungan untuk gateway yang dihost sendiri Azure API Management versi 0 dan gambar kontainer versi 1 berakhir pada 1 Oktober 2023, bersama dengan Api Konfigurasi v1 yang sesuai. Pelajari lebih lanjut dalam dokumentasi penghentian kami

Apa yang baru?

Saat kami berusaha untuk mempermudah pelanggan untuk menyebarkan gateway yang dihost sendiri, kami telah memperkenalkan API konfigurasi baru yang menghapus dependensi pada Azure Storage, kecuali Anda menggunakan Pemeriksa API atau kuota.

API konfigurasi baru memungkinkan pelanggan untuk lebih mudah mengadopsi, menyebarkan, dan mengoperasikan gateway yang dihost sendiri di infrastruktur yang ada.

Kami telah memperkenalkan tag gambar kontainer baru untuk memungkinkan pelanggan memilih cara terbaik untuk mencoba gateway kami dan menyebarkannya dalam produksi.

Untuk membantu pelanggan menjalankan gateway kami dalam produksi, kami telah memperluas panduan produksi kami untuk mencakup cara menskalakan gateway secara otomatis, dan menyebarkannya untuk ketersediaan tinggi di kluster Kubernetes Anda.

Pelajari selengkapnya tentang konektivitas gateway kami, persyaratan infrastruktur baru kami, dan apa yang terjadi jika konektivitas hilang dalam artikel ini.

Prasyarat

Sebelum dapat bermigrasi ke gateway v2 yang dihost sendiri, Anda perlu memastikan infrastruktur Anda memenuhi persyaratan.

Migrasi ke gateway v2 yang dihost sendiri

Migrasi dari gateway v2 yang dihost sendiri memerlukan beberapa langkah kecil untuk dilakukan:

  1. Menggunakan gambar kontainer baru
  2. Menggunakan API konfigurasi baru
  3. Memenuhi persyaratan keamanan minimal

Gambar Kontainer

Ubah tag gambar dalam skrip penyebaran Anda untuk menggunakan 2.0.0 atau di atasnya.

Atau, pilih salah satu tag gambar kontainer kami yang lain.

Anda dapat menemukan daftar lengkap tag yang tersedia di sini atau menemukan kami di Docker Hub.

Menggunakan API konfigurasi baru

Untuk bermigrasi ke gateway v2 yang dihost sendiri, pelanggan perlu menggunakan API Konfigurasi v2 baru kami.

Saat ini, Azure API Management menyediakan API Konfigurasi berikut untuk gateway yang dihost sendiri:

Konfigurasi Layanan URL Didukung Persyaratan
v2 {name}.configuration.azure-api.net Ya Tautan
v1 {name}.management.azure-api.net/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.ApiManagement/service/{name}?api-version=2021-01-01-preview No Tautan

Pelanggan harus menggunakan API Konfigurasi v2 baru dengan mengubah skrip penyebaran mereka untuk menggunakan URL baru dan memenuhi persyaratan infrastruktur.

Penting

  • Nama host DNS harus dapat diperbaiki ke alamat IP dan alamat IP yang sesuai harus dapat dijangkau. Ini mungkin memerlukan konfigurasi tambahan jika Anda menggunakan DNS privat, VNET internal, atau persyaratan infrastruktur lainnya.

Keamanan

Suite cipher TLS yang tersedia

Saat diluncurkan, gateway yang dihost sendiri v2.0 hanya akan menggunakan subset suite cipher yang digunakan v1.x. Pada v2.0.4, kami telah membawa kembali semua cipher suite yang didukung v1.x.

Anda dapat mempelajari selengkapnya tentang cipher suite yang digunakan dalam artikel ini atau gunakan v2.1.1 untuk mengontrol cipher suite mana yang akan digunakan.

Memenuhi persyaratan keamanan minimal

Selama startup, gateway yang dihost sendiri akan menyiapkan sertifikat CA yang akan digunakan. Ini mengharuskan kontainer gateway berjalan dengan setidaknya ID pengguna 1001 dan tidak dapat menggunakan sistem file baca-saja.

Saat mengonfigurasi konteks keamanan untuk kontainer di Kubernetes, hal berikut diperlukan minimal:

securityContext:
  runAsNonRoot: true
  runAsUser: 1001
  readOnlyRootFilesystem: false

Namun, sejak 2.0.3 gateway yang dihost sendiri dapat berjalan sebagai non-root di Kubernetes yang memungkinkan pelanggan untuk menjalankan gateway dengan aman.

Berikut adalah contoh konteks keamanan untuk gateway yang dihost sendiri:

securityContext:
  allowPrivilegeEscalation: false
  runAsNonRoot: true
  runAsUser: 1001       # This is a built-in user, but you can use any user ie 1000 as well
  runAsGroup: 2000      # This is just an example
  privileged: false
  capabilities:
    drop:
    - all

Peringatan

Menjalankan gateway yang dihost sendiri dengan sistem file baca-saja (readOnlyRootFilesystem: true) tidak didukung.

Menilai dampak dengan Azure Advisor

Untuk mempermudah migrasi, kami telah memperkenalkan rekomendasi Azure Advisor baru:

  • Rekomendasi Gunakan gateway yang dihosting sendiri v2 - Mengidentifikasi instans API Management Azure tempat penggunaan gateway yang dihosting sendiri v0.x atau v1.x diidentifikasi.
  • Rekomendasi Gunakan API Konfigurasi v2 untuk gateway yang dihosting sendiri - Mengidentifikasi instans API Management Azure di mana penggunaan API Konfigurasi v1 untuk gateway yang dihosting sendiri telah diidentifikasi.

Kami sangat menyarankan pelanggan untuk menggunakan gambaran umum "Semua Rekomendasi" di Azure Advisor untuk menentukan apakah migrasi diperlukan. Gunakan opsi pemfilteran untuk melihat apakah salah satu rekomendasi di atas ada.

Menggunakan Azure Resource Graph untuk mengidentifikasi instans Azure API Management

Kueri Azure Resource Graph ini memberi Anda daftar instans Azure API Management yang terkena dampak:

AdvisorResources
| where type == 'microsoft.advisor/recommendations'
| where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence'
| extend
    recommendationTitle = properties.shortDescription.solution
| where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways'
| extend
    instanceName = properties.impactedValue,
    recommendationImpact = properties.impact,
    recommendationMetadata = properties.extendedProperties,
    lastUpdated = properties.lastUpdated
| project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, recommendationMetadata, lastUpdated
az graph query -q "AdvisorResources | where type == 'microsoft.advisor/recommendations' | where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence' | extend recommendationTitle = properties.shortDescription.solution | where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways' | extend instanceName = properties.impactedValue, recommendationImpact = properties.impact, recommendationMetadata = properties.extendedProperties, lastUpdated = properties.lastUpdated | project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, lastUpdated"

Pembatasan yang diketahui

Berikut adalah daftar batasan yang diketahui untuk gateway v2 yang dihost sendiri:

  • API Konfigurasi v2 tidak mendukung nama domain kustom

Langkah berikutnya