App Service, Functions, dan Logic Apps pada Azure Arc (Pratinjau)

Anda dapat menjalankan App Service, Functions, dan Logic Apps pada kluster Kubernetes yang didukung Azure Arc. Kluster Kubernetes dapat menjadi tidak lokal atau dihosting di pihak cloud ketiga. Pendekatan ini mendukung pengembang aplikasi untuk memanfaatkan fitur App Service. Pada saat yang sama, ini memungkinkan administrator TI mereka menjaga kepatuhan perusahaan dengan menghosting aplikasi App Service pada infrastruktur internal. Ini juga memungkinkan operator IT lain melindungi investasi mereka sebelumnya di penyedia cloud lainnya dengan menjalankan App Service pada kluster Kubernetes yang ada.

Catatan

Untuk mempelajari cara menyiapkan kluster Kubernetes untuk App Service, Functions, dan Logic Apps, lihat Membuat lingkungan App Service Kubernetes (Pratinjau).

Dalam kebanyakan kasus, pengembang aplikasi tidak perlu tahu apa-apa selain cara menyebarkan ke wilayah Azure yang benar yang mewakili lingkungan Kubernetes yang disebarkan. Bagi operator yang menyediakan lingkungan dan memelihara infrastruktur Kubernetes yang mendasarinya, Anda perlu mengetahui sumber daya Azure berikut:

Batasan pratinjau publik

Batasan publik berikut berlaku untuk lingkungan App Service Kubernetes. Daftar batasan ini diperbarui saat perubahan dan fitur tersedia.

Pembatasan Detail
Wilayah Azure yang didukung US Timur, Eropa Barat
Persyaratan jaringan kluster Harus mendukung LoadBalancer jenis layanan
Persyaratan penyimpanan kluster Harus memiliki kelas penyimpanan yang terlampir ke kluster yang tersedia untuk digunakan oleh ekstensi guna mendukung penyebaran dan pembangunan aplikasi berbasis kode jika berlaku
Fitur: Penjaringan Tidak tersedia (mengandalkan jaringan kluster)
Fitur: Identitas terkelola Tidak tersedia
Fitur: Referensi Key Vault Tidak tersedia (tergantung pada identitas terkelola)
Fitur: Tarik gambar dari ACR dengan identitas terkelola Tidak tersedia (tergantung pada identitas terkelola)
Fitur: Pengeditan di portal untuk Functions dan Logic Apps Tidak tersedia
Fitur: Daftar portal Fungsi atau kunci Tidak tersedia jika kluster tidak dapat dijangkau secara publik
Fitur: Penerbitan FTP Tidak tersedia
Log Log Analytics harus dikonfigurasi dengan ekstensi kluster; bukan per situs

Pod yang dibuat dengan ekstensi App Service

Saat ekstensi App Service dipasang pada kluster Kubernetes yang didukung Azure Arc, Anda akan melihat beberapa pod yang dibuat di namespace layanan rilis yang telah ditentukan. Pod ini memungkinkan kluster Kubernetes menjadi ekstensi penyedia sumber daya Microsoft.Web di Azure dan mendukung manajemen dan pengoperasian aplikasi. Secara umum, Anda dapat memilih untuk menginstal ekstensi KEDA untuk penskalaan berbasis peristiwa.

Tabel berikut menjelaskan peran masing-masing Pod yang dibuat secara default:

Pod Deskripsi
<extensionName>-k8se-app-controller Pod operator inti yang membuat sumber daya pada kluster dan mempertahankan kondisi komponen.
<extensionName>-k8se-envoy Lapisan proxy ujung-depan untuk semua permintaan data-plane. Ini merutekan lalu lintas masuk ke aplikasi yang benar.
<extensionName>-k8se-activator Tujuan perutean alternatif untuk membantu aplikasi yang telah diskalakan ke nol, sementara sistem mendapatkan instan pertama yang tersedia.
<extensionName>-k8se-build-service Mendukung operasi penyebaran dan melayani Fitur alat lanjutan.
<extensionName>-k8se-http-scaler Memantau volume permintaan masuk untuk memberikan informasi penskalaan ke KEDA.
<extensionName>-k8se-img-cacher Tarik tempat penampung dan gambar aplikasi ke dalam tembolokan lokal pada node yang.
<extensionName>-k8se-log-processor Kumpulkan log dari aplikasi dan komponen lain lalu kirimkan ke Log Analytics.
placeholder-azure-functions-* Digunakan untuk mempercepat awal dingin untuk Azure Functions.

Lingkungan App Service Kubernetes

Sumber daya lingkungan App Service Kubernetes diperlukan sebelum aplikasi dapat dibuat. Ini memungkinkan konfigurasi umum untuk aplikasi di lokasi kustom, seperti akhiran DNS default.

Hanya satu sumber daya lingkungan Kubernetes yang dapat dibuat di lokasi khusus. Dalam kebanyakan kasus, pengembang yang membuat dan menerapkan aplikasi tidak perlu mengetahui sumber daya secara langsung. Itu dapat langsung disimpulkan dari ID lokasi khusus yang disediakan. Namun, saat menentukan templat Azure Resource Manager, sumber daya paket apa pun perlu merujuk ID sumber daya lingkungan secara langsung. Nilai lokasi kustom dari paket dan lingkungan yang ditentukan harus cocok.

FAQ untuk App Service, Functions, dan Logic Apps di Azure Arc (Pratinjau)

Berapa harganya?

App Service di Azure Arc gratis selama pratinjau publik.

Apakah aplikasi Windows dan Linux didukung?

Hanya aplikasi berbasis Linux yang didukung, baik kode maupun kontainer kustom. Aplikasi Windows tidak didukung.

Tumpukan aplikasi bawaan mana yang didukung?

Semua tumpukan Linux bawaan yang didukung.

Apakah semua jenis penyebaran aplikasi didukung?

Penyebaran FTP tidak didukung. Saat ini az webapp up juga tidak didukung. Metode penerapan lainnya didukung, termasuk Git, ZIP, CI/CD, Visual Studio, dan Visual Studio Code.

Fitur App Service mana yang didukung?

Selama periode pratinjau, fitur App Service tertentu sedang divalidasi. Saat didukung, opsi navigasi kiri mereka di portal Azure akan diaktifkan. Fitur yang belum didukung tetap berwarna abu-abu.

Apakah semua fitur jaringan didukung?

Nomor. Fitur jaringan seperti koneksi hibrid atau integrasi Virtual Network, tidak didukung. Dukungan pembatasan akses ditambahkan pada April 2022. Jaringan harus ditangani secara langsung dalam aturan jaringan di kluster Kubernetes itu sendiri.

Apakah identitas terkelola didukung?

Nomor. Aplikasi tidak dapat ditetapkan sebagai identitas terkelola saat berjalan di Azure Arc. Jika aplikasi Anda memerlukan identitas untuk bekerja dengan sumber daya Azure lain, pertimbangkan untuk menggunakan perwakilan layanan aplikasi.

Apakah ada batas penskalaan?

Semua aplikasi yang digunakan dengan Azure App Service di Kubernetes dengan Azure Arc dapat menskalakan dalam batas-batas kluster Kubernetes yang mendasarinya. Jika Kubernetes Cluster yang mendasari kehabisan sumber daya komputasi yang tersedia (CPU dan memori terutama), maka aplikasi hanya akan dapat menskalakan ke jumlah instans aplikasi yang Kubernetes dapat jadwalkan dengan sumber daya yang tersedia.

Log apa yang dikumpulkan?

Log untuk komponen sistem dan aplikasi Anda ditulis ke output standar. Kedua jenis log dapat dikumpulkan untuk analisis menggunakan alat Kubernetes standar. Anda juga dapat mengonfigurasi ekstensi kluster App Service dengan ruang kerja Log Analytics, dan mengirimkan semua log ke ruang kerja tersebut.

Secara default, log dari komponen sistem dikirim ke tim Azure. Log aplikasi tidak dikirim. Anda dapat mencegah log ini ditransfer oleh pengaturan logProcessor.enabled=false sebagai pengaturan konfigurasi ekstensi. Pengaturan konfigurasi ini juga akan menonaktifkan penerusan aplikasi ke ruang kerja Log Analytics Anda. Menonaktifkan prosesor log dapat memengaruhi waktu yang diperlukan untuk setiap kasus dukungan, dan Anda akan diminta untuk mengumpulkan log dari output standar melalui beberapa cara lain.

Apa yang harus saya lakukan jika melihat kesalahan pendaftaran penyedia?

Saat membuat sumber daya lingkungan Kubernetes, beberapa langganan mungkin melihat kesalahan "Tidak ditemukan penyedia sumber daya terdaftar". Detail kesalahan mungkin termasuk sekumpulan lokasi dan versi api yang dianggap valid. Jika ini terjadi, mungkin langganan perlu didaftarkan ulang ke penyedia Microsoft.Web, operasi yang tidak berdampak pada aplikasi atau API yang ada. Untuk mendaftar ulang, gunakan Azure CLI untuk menjalankan az provider register --namespace Microsoft.Web --wait. Kemudian coba kembali perintah lingkungan Kubernetes.

Dapatkah saya menerapkan ekstensi layanan Aplikasi pada klaster berbasis ARM64?

Kluster berbasis ARM64 saat ini tidak didukung.

Distribusi Kubernetes mana yang dapat saya sebarkan ekstensinya?

Ekstensi ini telah divalidasi pada AKS, AKS di Azure Stack HCI, Google Kubernetes Engine, Amazon Elastic Kubernetes Service, dan Kubernetes Cluster API.

Catatan Rilis Ekstensi

Ekstensi layanan aplikasi v 0.9.0 (Mei 2021)

  • Rilis pratinjau publik awal dari ekstensi layanan Aplikasi.
  • Dukungan untuk penyebaran berbasis kode dan kontainer dari Aplikasi Web, Fungsi, dan Logika.
  • Dukungan runtime aplikasi web - .NET 3.1 dan 5.0; Node JS 12 dan 14; Python 3.6, 3.7, dan 3.8; PHP 7.3 dan 7.4; Ruby 2.5, 2.5.5, 2.6, dan 2.6.2; Java SE 8u232, 8u242, 8u252, 11.05, 11.06 dan 11.07; Tomcat 8.5, 8.5.41, 8.5.53, 8.5.57, 9.0, 9.0.20, 9.0.33, dan 9.0.37.

Ekstensi layanan aplikasi v 0.10.0 (November 2021)

  • Persyaratan yang dihapus untuk Alamat IP Statik yang telah ditetapkan sebelumnya yang diperlukan untuk penugasan ke titik akhir Envoy
  • Tingkatkan Keda ke v2.4.0
  • Tingkatkan Envoy ke v1.19.0
  • Tingkatkan runtime Azure Function ke v3.3.1
  • Atur jumlah replika default Pengontrol Aplikasi dan Pengontrol Envoy ke 2 untuk menambah stabilitas lebih lanjut

Jika ekstensi Anda berada di versi stabil dan auto-upgrade-minor-version diatur ke true, ekstensi akan ditingkatkan secara otomatis. Untuk meningkatkan ekstensi secara manual ke versi terbaru, Anda dapat menjalankan perintah:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.10.0

Ekstensi layanan aplikasi v 0.11.0 (Desember 2021)

  • Application Insights yang Ditambahkan dukungan untuk Aplikasi Web Java dan .NET
  • Menambahkan dukungan untuk Aplikasi Web .NET 6.0
  • Hapus .NET Core 2.0
  • Mengatasi masalah yang menyebabkan operasi swap slot gagal
  • Mengatasi masalah yang dialami pelanggan selama pembuatan aplikasi web Ruby

Jika ekstensi Anda berada di versi stabil dan auto-upgrade-minor-version diatur ke true, ekstensi akan ditingkatkan secara otomatis. Untuk meningkatkan ekstensi secara manual ke versi terbaru, Anda dapat menjalankan perintah:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.0

Ekstensi layanan aplikasi v 0.11.1 (Desember 2021)

  • Rilis kecil untuk mengatasi masalah dengan pembaruan CRD

Jika ekstensi Anda berada di versi stabil dan auto-upgrade-minor-version diatur ke true, ekstensi akan ditingkatkan secara otomatis. Untuk meningkatkan ekstensi secara manual ke versi terbaru, Anda dapat menjalankan perintah:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.1

Ekstensi layanan aplikasi v 0.12.0 (Januari 2022)

  • Dukungan untuk proksi keluar
  • Dukungan untuk build paralel dalam layanan build
  • Meningkatkan Envoy ke v1.1.20.1
  • Mengatasi masalah dengan dukungan Application Insights untuk Aplikasi .NET

Jika ekstensi Anda berada di versi stabil dan auto-upgrade-minor-version diatur ke true, ekstensi akan ditingkatkan secara otomatis. Untuk meningkatkan ekstensi secara manual ke versi terbaru, Anda dapat menjalankan perintah:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.0

Ekstensi layanan aplikasi v 0.12.1 (Maret 2022)

  • Mengatasi masalah dengan dukungan proksi keluar untuk mengaktifkan masuk ke Ruang kerja Analitik Log

Jika ekstensi Anda berada di versi stabil dan auto-upgrade-minor-version diatur ke true, ekstensi akan ditingkatkan secara otomatis. Untuk meningkatkan ekstensi secara manual ke versi terbaru, Anda dapat menjalankan perintah:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.1

Ekstensi layanan aplikasi v 0.12.2 (Maret 2022)

  • Pembaruan untuk mengatasi kegagalan peningkatan saat memutakhirkan dari v 0.12.0 saat panjang nama ekstensi lebih dari 35 karakter

Jika ekstensi Anda berada di versi stabil dan auto-upgrade-minor-version diatur ke true, ekstensi akan ditingkatkan secara otomatis. Untuk meningkatkan ekstensi secara manual ke versi terbaru, Anda dapat menjalankan perintah:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.2

Ekstensi layanan aplikasi v 0.13.0 (April 2022)

  • Menambahkan dukungan untuk integrasi Application Insights tanpa kode untuk aplikasi Node JS
  • Menambahkan dukungan untuk Pembatasan Akses melalui CLI
  • Detail lebih lanjut yang disediakan saat ekstensi gagal diinstal, untuk membantu memecahkan masalah

Jika ekstensi Anda berada di versi stabil dan auto-upgrade-minor-version diatur ke true, ekstensi akan ditingkatkan secara otomatis. Untuk meningkatkan ekstensi secara manual ke versi terbaru, Anda dapat menjalankan perintah:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.0

Ekstensi layanan aplikasi v 0.13.1 (April 2022)

  • Pembaruan untuk mengatasi kegagalan peningkatan yang terlihat selama peningkatan otomatis kluster ke v 0.13.0

Jika ekstensi Anda berada di versi stabil dan auto-upgrade-minor-version diatur ke true, ekstensi akan ditingkatkan secara otomatis. Untuk meningkatkan ekstensi secara manual ke versi terbaru, Anda dapat menjalankan perintah:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.1

Ekstensi layanan aplikasi v 0.13.5 (Desember 2023)

  • Pembaruan untuk mendukung Kubernetes versi 1.26 ke atas
  • Perbarui Envoy ke 1.2.1
  • Memperbarui Keda ke v2.10.0
  • Memperbarui EasyAuth ke v1.6.20
  • Memperbarui gambar dasar untuk bahasa yang didukung

Jika ekstensi Anda berada di versi stabil dan auto-upgrade-minor-version diatur ke true, ekstensi akan ditingkatkan secara otomatis. Untuk meningkatkan ekstensi secara manual ke versi terbaru, Anda dapat menjalankan perintah:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.5

Langkah berikutnya

Membuat lingkungan App Service Kubernetes (Pratinjau)