Menggunakan Bridge ke Kubernetes dengan sampel
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.
Sampel ini menggambarkan bagaimana Bridge ke Kubernetes dapat digunakan untuk mengembangkan versi layanan mikro dari aplikasi TODO sederhana pada kluster Kubernetes apa pun. Sampel ini, menggunakan Visual Studio Code, telah diadaptasi dari kode yang disediakan oleh TodoMVC. Dalam contoh ini, kami menggunakan MiniKube untuk menghosting aplikasi, tetapi langkah-langkah ini harus berfungsi dengan kluster Kubernetes apa pun.
Sampel aplikasi TODO terdiri dari frontend dan backend yang menyediakan penyimpanan persisten. Sampel yang diperluas ini menambahkan komponen statistik dan memecah aplikasi menjadi sejumlah layanan mikro, khususnya:
- Frontend memanggil database-api untuk bertahan dan memperbarui item TODO;
- Layanan database-api bergantung pada database Mongo untuk mempertahankan item TODO;
- Frontend menulis menambahkan, menyelesaikan, dan menghapus peristiwa ke antrean RabbitMQ;
- Pekerja statistik menerima peristiwa dari antrean RabbitMQ dan memperbarui cache Redis;
- API statistik memaparkan statistik yang di-cache agar frontend ditampilkan.
Secara keseluruhan, aplikasi TODO yang diperluas ini terdiri dari enam komponen yang saling terkait.
Prasyarat
- Setiap kluster Kubernetes, atau manajer paket Chocolatey untuk menginstal MiniKube
- Pada Windows 10, Hyper-V
- Kubectl diinstal dan pada jalur di lingkungan baris perintah pilihan Anda
- Ekstensi Visual Studio Code Bridge ke Kubernetes
Menginstal MiniKube
Anda dapat menggunakan penyedia Kubernetes apa pun dengan Bridge ke Kubernetes. Dalam artikel ini, kami menggunakan MiniKube. MiniKube adalah penyedia Kubernetes ringan yang memungkinkan Anda menghosting Kubernetes di komputer lokal Anda. Ikuti petunjuk penginstalan untuk menginstal MiniKube di Windows 10, Linux, atau macOS.
Untuk hasil terbaik tentang Windows 10, Anda harus menggunakan manajer Hyper-V VM dan membuat sakelar virtual.
Setelah diinstal, mulai MiniKube, tentukan untuk menggunakan Hyper-V, dan berikan nama sakelar virtual utama. Perintah ini harus dijalankan dari prompt perintah dengan hak istimewa Administrator.
minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"
Menyebarkan aplikasi
Kloning repositori Bridge to Kubernetes dan buka jendela perintah dengan folder kerja saat ini ke todo-app.
Buat namespace layanan untuk sampel.
kubectl create namespace todo-app
Kemudian, terapkan manifes penyebaran:
kubectl apply -n todo-app -f deployment.yaml
Penyebaran sederhana ini memaparkan ujung depan menggunakan layanan jenis LoadBalancer
. Tunggu hingga semua pod berjalan dan IP eksternal dari layanan frontend
supaya tersedia.
Jika Anda menguji dengan MiniKube, Anda perlu menggunakan minikube tunnel
untuk menyelesaikan IP eksternal.
kubectl get services -n todo-app
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
frontend LoadBalancer 10.0.49.177 127.0.0.1 80:30145/TCP 18h
Telusuri ke aplikasi menggunakan IP eksternal dan port lokal (nomor pertama di kolom PORT).
http://{external-ip}:{local-port}
Uji aplikasi yang sedang berjalan di browser. Saat Anda menambahkan, menyelesaikan, dan menghapus item tugas, perhatikan bahwa halaman statistik diperbarui dengan metrik yang diharapkan.
Men-debug layanan stats-api
Anda sekarang dapat menggunakan ekstensi Bridge ke Kubernetes untuk menunjukkan bagaimana lalu lintas dari kluster Kubernetes dapat dialihkan ke versi stats-api yang berjalan secara lokal.
cd stats-api/
Buka kode sumber untuk stats-api di Visual Studio Code.
code .
Setelah VISUAL Code diluncurkan, buka panel Kubernetes dari bilah sisi kiri Visual Studio Code, lalu pilih namespace layanan todo-app di kluster MiniKube Anda. Klik kanan node todo-app, dan pilih Gunakan Namespace Layanan.
Instal dependensi dengan menjalankan npm install
di jendela terminal (CTRL + ~).
npm install
Selanjutnya, tempatkan titik henti pada baris 17 dari server.js
.
Buka Palet Perintah (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
.
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, mari kita gunakan nonisolated.
Catatan
Visual Studio Code meminta Anda untuk mengizinkan EndpointManager menjalankan file host yang ditingkatkan dan ditingkatkan.
Profil penelusuran kesalahan Bridge ke Kubernetes telah berhasil dikonfigurasi.
Pilih ikon Debug di sebelah kiri dan pilih Jalankan Skrip: dev dengan Kubernetes. Klik tombol mulai di sebelah Run Script: dev dengan Kubernetes.
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 entri frontend aplikasi todo Anda. Untuk minikube, kita akan menggunakan 127.0.0.1
. Untuk mengakses URL titik akhir lokal untuk aplikasi Anda, buka menu Kubernetes pada bilah status dan pilih entri titik akhir.
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.
Contoh ini hanyalah satu ilustrasi tentang cara menggunakan Bridge ke Kubernetes pada kluster non-AKS. Selanjutnya coba pada proyek Anda sendiri!
Penghapusan
Untuk membersihkan aset yang dihasilkan oleh sampel ini, jalankan:
kubectl delete namespace todo-app
Langkah berikutnya
Anda juga dapat menyebarkan aplikasi ke Azure Kubernetes Service (AKS) dengan Bridge ke Kubernetes. Lihat Menggunakan Bridge ke Kubernetes dengan AKS