Menggunakan Bridge to Kubernetes dengan AKS
Catatan
Microsoft berencana untuk tidak lagi secara aktif mempertahankan proyek Bridge to Kubernetes. Selama beberapa bulan ke depan, kami akan mentransisikan proyek ke status arsip. Sementara itu, proyek masih tersedia untuk digunakan dan diunduh. Selama periode ini, kami berharap dapat menjelajahi dan merekomendasikan proyek komunitas yang memberikan manfaat serupa dengan Bridge ke Kubernetes untuk digunakan di masa mendatang. Jika Anda memiliki pertanyaan, silakan hubungi kami di papan masalah kami di GitHub.
Dalam tutorial ini, Anda menggunakan aplikasi web layanan mikro sampel AKS tertentu untuk mempelajari cara menggunakan Bridge ke Kubernetes untuk men-debug secara lokal dalam satu pod yang merupakan bagian dari kluster Azure Kubernetes Service (AKS).
Sebelum Anda mulai
Panduan ini menggunakan aplikasi sampel Aplikasi Todo untuk menunjukkan menghubungkan komputer pengembangan Anda ke kluster Kubernetes yang berjalan di AKS. Jika Anda sudah memiliki aplikasi sendiri yang berjalan pada kluster Kubernetes, lihat Mengembangkan dengan Kubernetes. Jika Anda menggunakan kluster lain, seperti MiniKube yang berjalan secara lokal, lihat Menggunakan Bridge to Kubernetes dengan sampel.
Prasyarat
- Langganan Azure. Jika Anda tidak memiliki langganan Azure, Anda dapat membuat akun gratis.
- Azure CLI terpasang.
- Visual Studio Code berjalan di macOS, Windows 10, atau Linux.
- Ekstensi Bridge to Kubernetes diinstal di Visual Studio Code.
Buatlah kluster Kubernetes
Buat kluster AKS di wilayah yang didukung. Perintah berikut membuat grup sumber daya yang disebut MyResourceGroup
dan kluster AKS yang disebut MyAKS
.
az group create \
--name MyResourceGroup \
--location eastus
az aks create \
--resource-group MyResourceGroup \
--name MyAKS \
--location eastus \
--node-count 3 \
--generate-ssh-keys
Menginstal aplikasi sampel
Mengunduh kode dan menginstal dependensi
git clone https://github.com/hsubramanianaks/b2k-samples
cd b2k-samples/todo-app
npm install stats-api\
Menyambungkan ke kluster Anda dan menyebarkan aplikasi
Pada komputer pengembangan, unduh dan konfigurasikan Kubernetes CLI untuk terhubung ke kluster Kubernetes menggunakan az aks get-credentials
.
az aks get-credentials --resource-group MyResourceGroup --name MyAKS
kubectl create namespace todo-app
kubectl config set-context --current --namespace=todo-app
kubectl apply -f deployment.yaml --namespace todo-app
Mencoba aplikasi
Pada terminal yang sama dengan yang Anda gunakan sebelumnya, jalankan perintah berikut dan salin IP untuk layanan front end di bawah kolom IP Eksternal.
kubectl get services
Untuk mencoba aplikasi, buka url: {your external IP from above command goes here}.nip.io
Debug layanan stats-api
Pada terminal yang sama dengan yang Anda gunakan sebelumnya, ketik perintah berikut untuk membuka stats-api di VS Code.
code ./stats-api
Pertama, tempatkan titik henti pada baris 17 dari server.js
.
Kemudian, pastikan todo-app
namespace dalam MyAKS
kluster diatur sebagai default (jika memiliki * di sampingnya). Jika tidak diatur sebagai default, klik kanan simpul todo-app , dan pilih Gunakan Namespace.
Selanjutnya, konfigurasikan bridge: buka Command Palette (CTRL+SHIFT+P atau Cmd+Shift+P pada Mac) dan ketik Bridge ke Kubernetes. Pilih opsi Bridge ke Kubernetes: Konfigurasikan.
Anda diminta untuk mengonfigurasi layanan yang ingin Anda ganti, port untuk meneruskan dari komputer pengembangan Anda, dan tugas peluncuran yang akan digunakan.
Pilih layanan stats-api
.
Penting
Anda hanya dapat mengalihkan layanan yang memiliki satu pod.
Setelah memilih layanan, Anda diminta untuk memasukkan port TCP untuk aplikasi lokal Anda. Untuk contoh ini, masukkan 3001.
Pilih Jalankan Skrip: dev sebagai tugas peluncuran.
Anda memiliki opsi untuk menjalankan secara terisolasi atau tidak terisolasi. Jika Anda menjalankan secara terisolasi, hanya permintaan Anda yang dirutekan ke proses lokal; pengembang lain dapat menggunakan kluster tanpa terpengaruh. Jika Anda tidak menjalankan secara terisolasi, semua lalu lintas dialihkan ke proses lokal Anda. Untuk informasi selengkapnya tentang opsi ini, lihat Menggunakan kemampuan perutean untuk mengembangkan secara terisolasi. Untuk contoh ini, kami melanjutkan dengan non-terisolasi. Jika Anda memilih isolasi, task.json memiliki awalan yang harus Anda gunakan untuk merutekan permintaan ke komputer Anda.
Catatan
Pada peluncuran berikutnya, Anda hanya akan mengklik ikon debug tanpa melalui pengaturan ini dan dimintai nama layanan, port, tugas peluncuran, atau apakah akan berjalan terisolasi. Nilai-nilai ini disimpan di .vscode/tasks.json
. Untuk mengubah pengaturan ini nanti, buka Palet Perintah (CTRL+SHIFT+P atau Cmd+Shift+P di Mac), dan jalankan perintah Bridge ke Kubernetes: Konfigurasikan.
Profil penelusuran kesalahan Bridge ke Kubernetes telah berhasil dikonfigurasi.
Untuk memulai penelusuran kesalahan, pilih ikon Debug di sebelah kiri dan pilih Jalankan Skrip: dev dengan Kubernetes. Klik tombol mulai di sebelah Run Script: dev dengan Kubernetes.
Catatan
Anda akan diminta untuk mengizinkan EndpointManager menjalankan file yang ditingkatkan dan memodifikasi host.
Komputer pengembangan Anda terhubung ketika bilah status Visual Studio Code berubah menjadi oranye dan ekstensi Kubernetes menunjukkan bahwa Anda terhubung. Setelah komputer pengembangan Anda tersambung, lalu lintas mulai mengalihkan ke komputer pengembangan Anda untuk stats-api yang Anda ganti.
Navigasikan ke titik masuk frontend aplikasi Anda melalui IP eksternal yang Anda temukan sebelumnya, {your external IP from get services command}.nip.io
. Perhatikan bahwa jika Anda memilih mode isolasi, Anda perlu menggunakan {your prefix - can be found in task.json}.{your external IP from get services command}.nip.io
.
Buat permintaan ke stats-api dengan memilih link statistik.
Perhatikan lalu lintas yang awalnya dimulai di kluster Anda dialihkan ke versi yang berjalan secara lokal (di luar kluster) tempat titik henti dipicu.
Tekan putar dan biarkan permintaan terus selesai secara transparan.
Penghapusan
Saat Anda menghentikan debugger, semua perubahan pada kluster dikembalikan. Perhatikan, jika Anda menjalankan dengan isolasi pada, pod manajer perutean akan ditinggalkan di sana untuk mempercepat awal debugger di lain waktu.
Anda dapat membiarkan kluster AKS Anda aktif untuk penelusuran kesalahan di masa mendatang atau Anda dapat menghapusnya dengan perintah berikut.
az aks delete --name MyAKS --resource-group MyResourceGroup
Langkah berikutnya
Pelajari selengkapnya tentang Bridge to Kubernetes di Cara kerja Bridge to Kubernetes.