Mulai Cepat: Sebarkan kontainer Linux ke Service Fabric

Azure Service Fabric adalah platform sistem terdistribusi untuk menyebarkan dan mengelola layanan mikro dan kontainer yang dapat diskalakan dan diandalkan.

Panduan mulai cepat ini menunjukkan cara menyebarkan kontainer Linux ke kluster Service Fabric di Azure. Setelah selesai, Anda akan memiliki aplikasi pemungutan suara yang terdiri dari front end web Python dan back end Redis yang berjalan di kluster Service Fabric. Anda juga akan mempelajari cara melakukan fail over aplikasi dan cara menskalakan aplikasi di kluster Anda.

Halaman web aplikasi pemungutan suara

Prasyarat

Untuk menyelesaikan panduan mulai cepat ini:

  1. Buat akun Azure gratis sebelum Anda mulai jika Anda tidak memiliki langganan.

  2. Pasang Azure CLI

  3. PasangSDK Service Fabric dan CLI

  4. Pasang Git

Dapatkan paket aplikasi

Untuk menyebarkan kontainer ke Service Fabric, Anda perlu satu set file manifes (definisi aplikasi), yang mendeskripsikan kontainer individu dan aplikasi.

Di konsol, gunakan git untuk mengklon salinan definisi aplikasi; kemudian ubah direktori ke direktori Voting di klon Anda.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/Voting

Buat kluster Service Fabric

Untuk menyebarkan aplikasi ke Azure, Anda perlu kluster Service Fabric untuk menjalankan aplikasi. Perintah berikut membuat kluster lima node di Azure. Perintah itu juga membuat sertifikat yang ditandatangani sendiri, menambahkannya ke brankas kunci, dan mengunduh sertifikat secara lokal. Sertifikat baru digunakan untuk mengamankan kluster saat disebarkan dan digunakan untuk mengautentikasi klien.

Jika mau, Anda dapat memodifikasi nilai variabel ke preferensi Anda. Misalnya, westus alih-alih eastus untuk lokasi tersebut.

Catatan

Nama brankas kunci harus unik secara universal, karena diakses sebagai https://{vault-name}.vault.azure.net.

#!/bin/bash

# Variables
ResourceGroupName='containertestcluster' 
ClusterName='containertestcluster' 
Location='eastus' 
Password='q6D7nN%6ck@6' 
Subject='containertestcluster.eastus.cloudapp.azure.com' 
VaultName='containertestvault' 
VmPassword='Mypa$$word!321'
VmUserName='sfadminuser'

# Login to Azure and set the subscription
az login

az account set --subscription <mySubscriptionID>

# Create resource group
az group create --name $ResourceGroupName --location $Location 

# Create secure five node Linux cluster. Creates a key vault in a resource group
# and creates a certificate in the key vault. The certificate's subject name must match 
# the domain that you use to access the Service Fabric cluster.  The certificate is downloaded locally.
az sf cluster create --resource-group $ResourceGroupName --location $Location --certificate-output-folder . --certificate-password $Password --certificate-subject-name $Subject --cluster-name $ClusterName --cluster-size 5 --os UbuntuServer1804 --vault-name $VaultName --vault-resource-group $ResourceGroupName --vm-password $VmPassword --vm-user-name $VmUserName

Catatan

Layanan front end web dikonfigurasi untuk merespons pada port 80 untuk lalu lintas masuk. Secara default, port 80 terbuka di komputer virtual kluster Anda dan Azure load balancer.

Konfigurasikan lingkungan Anda

Service Fabric menyediakan beberapa alat yang dapat Anda gunakan untuk mengelola kluster beserta aplikasinya:

  • Service Fabric Explorer, sebuah alat berbasis browser.
  • Service Fabric Command Line Interface (CLI), yang berjalan di atas Azure CLI.
  • Perintah PowerShell.

Dalam panduan mulai cepat ini, Anda menggunakan Service Fabric CLI dan Service Fabric Explorer (alat berbasis web). Untuk menggunakan Service Fabric Explorer, Anda perlu mengimpor file sertifikat PFX ke dalam browser. Secara default, file PFX tidak memiliki kata sandi.

Mozilla Firefox adalah browser default di Ubuntu 18.04. Untuk mengimpor sertifikat ke Firefox, klik tombol menu di sudut kanan atas browser Anda, lalu klik Opsi. Pada halaman Preferensi, gunakan kotak pencarian untuk mencari "sertifikat". Klik Tampilkan Sertifikat, pilih tab Sertifikat Anda, klik Impor dan ikuti perintah untuk mengimpor sertifikat.

Pasang sertifikat di Firefox

Sebarkan aplikasi Service Fabric

  1. Sambungkan ke kluster Service Fabric di Azure menggunakan CLI. Titik akhir adalah titik akhir manajemen untuk kluster Anda. Anda telah buat file PEM di bagian sebelumnya.

    sfctl cluster select --endpoint https://containertestcluster.eastus.cloudapp.azure.com:19080 --pem containertestcluster22019013100.pem --no-verify
    
  2. Gunakan skrip pasang untuk menyalin definisi aplikasi Pemungutan Suara ke kluster, mendaftarkan jenis aplikasi, dan membuat instans aplikasi. File sertifikat PEM harus berada di direktori yang sama dengan file install.sh.

    ./install.sh
    
  3. Buka browser web dan arahkan ke titik akhir Service Fabric Explorer untuk kluster Anda. Titik akhir tersebut memiliki format sebagai berikut: https://<my-azure-service-fabric-cluster-url>:19080/Explorer; misalnya, https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.

  4. Luaskan node Aplikasi untuk melihat adanya entri untuk jenis aplikasi Pemungutan Suara dan instans yang telah Anda buat.

    Service Fabric Explorer

  5. Untuk menghubungkan ke kontainer yang sedang berjalan, buka browser web dan arahkan ke URL kluster Anda; contohnya, http://containertestcluster.eastus.cloudapp.azure.com:80. Aplikasi Pemungutan Suara akan muncul di browser.

    Halaman web aplikasi pemungutan suara

Catatan

Anda juga dapat menyebarkan aplikasi Service Fabric dengan Docker compose. Contohnya, perintah berikut dapat digunakan untuk menyebarkan dan memasang aplikasi di kluster menggunakan Docker Compose.

sfctl compose create --deployment-name TestApp --file-path ../docker-compose.yml

Fail over kontainer dalam sebuah kluster

Service Fabric memastikan bahwa instans kontainer Anda berpindah secara otomatis ke node lain di kluster jika terjadi kegagalan. Anda juga dapat mengosongkan node untuk kontainer secara manual lalu memindahkannya dengan mudah ke node lain dalam kluster. Service Fabric menyediakan beberapa cara untuk menskalakan layanan Anda. Pada langkah-langkah berikut, Anda menggunakan Service Fabric Explorer.

Untuk fail over kontainer front-end, jalankan langkah-langkah berikut:

  1. Buka Service Fabric Explorer di kluster Anda; contohnya, https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.

  2. Klik node fabric:/Voting/azurevotefront dalam tampilan pohon dan luaskan node partisi (diwakili oleh GUID). Perhatikan nama node di tampilan pohon, yang menunjukkan node yang saat ini dijalankan oleh kontainer; misalnya, _nodetype_1.

  3. Luaskan Node dalam tampilan pohon. Klik elipsis (...) di sebelah node yang menjalankan kontainer.

  4. Pilih Hidupkan Ulang untuk menghidupkan ulang node tersebut dan konfirmasi tindakan hidupkan ulang. Hidupkan ulang menyebabkan kontainer fail over ke node lain dalam kluster.

    Tampilan node di Service Fabric Explorer

Skalakan aplikasi dan layanan dalam sebuah kluster

Layanan Service Fabric dapat dengan mudah diskalakan di seluruh kluster untuk mengakomodasi beban pada layanan. Anda menskalakan layanan dengan cara mengubah jumlah instans yang berjalan di kluster.

Untuk menskalakan layanan front-end web, jalankan langkah-langkah berikut:

  1. Buka Service Fabric Explorer di kluster Anda; contohnya,https://containertestcluster.eastus.cloudapp.azure.com:19080.

  2. Klik elipsis (tiga titik) di samping node fabric:/Voting/azurevotefront di tampilan pohon dan pilih Scale Service.

    Layanan skala Service Fabric Explorer dimulai

    Sekarang Anda dapat memilih untuk menskalakan jumlah instans layanan front-end web.

  3. Ubah angka menjadi 2 dan klik Scale Service.

  4. Klik node fabric:/Voting/azurevotefront di tampilan pohon dan luaskan node partisi (diwakili oleh GUID).

    Layanan skala Service Fabric Explorer selesai

    Sekarang layanan memiliki dua instans. Dalam tampilan pohon, Anda dapat melihat di node mana instans dijalankan.

Melalui tugas manajemen sederhana ini, Anda telah menggandakan sumber daya yang tersedia untuk layanan front-end untuk memproses pemuatan pengguna. Penting untuk dipahami bahwa Anda tidak memerlukan beberapa instans layanan agar dapat berjalan dengan andal. Jika layanan gagal, Service Fabric memastikan bahwa instans layanan baru berjalan di kluster.

Bersihkan sumber daya

Gunakan skrip hapus penginstalan (uninstall.sh) yang disediakan dalam templat untuk menghapus instans aplikasi dari kluster dan membatalkan registrasi jenis aplikasi. Skrip ini butuh waktu untuk membersihkan instans, jadi Anda tidak dapat langsung menjalankan skrip instal setelah skrip ini. Anda dapat menggunakan Service Fabric Explorer untuk menentukan kapan instans telah dihapus dan jenis aplikasi yang tidak terdaftar.

./uninstall.sh

Cara termudah untuk menghapus kluster dan seluruh sumber daya yang digunakannya adalah dengan menghapus grup sumber daya.

Masuk ke Azure dan pilih ID langganan yang ingin Anda hapus klusternya. Anda dapat mengetahui ID langganan Anda dengan cara masuk ke portal Azure. Hapus grup sumber daya dan semua sumber daya kluster menggunakan perintah hapus grup az.

az login
az account set --subscription <guid>
ResourceGroupName="containertestcluster"
az group delete --name $ResourceGroupName

Jika Anda sudah selesai bekerja dengan kluster Anda, Anda dapat menghapus sertifikat dari penyimpanan sertifikat Anda. Contohnya:

  • Di Windows: Gunakan Snap-in MMC Sertifikat. Pastikan untuk memilih Akun pengguna saya saat menambahkan snap-in. Navigasikan ke Certificates - Current User\Personal\Certificates lalu hapus sertifikat.
  • Di Mac: Gunakan aplikasi Keychain.
  • Di Ubuntu: Ikuti langkah-langkah yang Anda gunakan untuk menampilkan sertifikat dan menghapus sertifikat.

Langkah berikutnya

Dalam panduan mulai cepat ini, Anda telah menyebarkan aplikasi kontainer Linux ke kluster Service Fabric di Azure, melakukan fail-over pada aplikasi, dan menskalakan aplikasi di kluster. Untuk mempelajari selengkapnya cara bekerja dengan Linux dalam Service Fabric, lanjutkan ke tutorial tentang aplikasi kontainer Linux.