Menggunakan titik akhir privat dengan lingkungan Azure Container Apps (pratinjau)
Dalam artikel ini, Anda mempelajari cara menggunakan titik akhir privat untuk mengakses Aplikasi Kontainer Azure Anda dengan aman tanpa mengeksposnya ke Internet publik.
Titik akhir privat menggunakan alamat IP privat dari jaringan virtual (VNet) Anda. Titik akhir ini menghubungkan Anda secara privat dan aman ke layanan yang didukung oleh Azure Private Link.
Titik akhir privat di Azure Container Apps hanya mendukung lalu lintas HTTP masuk. Lalu lintas TCP tidak didukung.
Prasyarat
- Akun Azure dengan langganan aktif.
- Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis.
Membuat aplikasi kontainer
Mulailah dengan masuk ke portal Microsoft Azure.
Cari Aplikasi Kontainer di bilah pencarian teratas.
Pilih Aplikasi Kontainer di hasil pencarian.
Pilih tombol Buat.
Di halaman Buat Aplikasi Kontainer pada tab Dasar , masukkan nilai berikut ini.
Pengaturan Tindakan Langganan Pilih langganan Azure Anda. Grup sumber daya Pilih Buat baru dan masukkan my-container-apps. Nama aplikasi kontainer Masukkan my-container-app. Sumber penyebaran Pilih Gambar kontainer. Wilayah Pilih US Tengah. Di bidang Buat Lingkungan Aplikasi Kontainer, pilih tautan Buat baru.
Di halaman Buat Lingkungan Container Apps pada tab Dasar-dasar, masukkan nilai berikut:
Pengaturan Nilai Nama lingkungan Masukkan my-environment. Redundansi zona Pilih Dinonaktifkan Pilih tab Jaringan untuk membuat jaringan virtual (VNet). Secara default, akses jaringan publik diaktifkan, yang berarti titik akhir privat dinonaktifkan.
Nonaktifkan akses jaringan publik.
Biarkan Gunakan jaringan virtual Anda sendiri yang diatur ke Tidak. Anda dapat menggunakan VNet yang ada, tetapi titik akhir privat hanya didukung oleh lingkungan profil beban kerja, yang memerlukan subnet dengan rentang CIDR minimum atau lebih
/27
besar. Untuk mempelajari selengkapnya tentang ukuran subnet, lihat gambaran umum arsitektur jaringan.Atur Aktifkan titik akhir privat ke Ya.
Atur Nama titik akhir privat ke titik akhir-privat-saya.
Di bidang Jaringan virtual titik akhir privat, pilih tautan Buat baru.
Di halaman Buat Virtual Network , atur Virtual Network ke my-private-endpoint-vnet. Pilih OK.
Di bidang Subnet jaringan virtual titik akhir privat, pilih tautan Buat baru.
Di halaman Buat Subnet , atur Nama Subnet ke my-private-endpoint-vnet-subnet. Pilih OK.
Biarkan DNS diatur ke Zona DNS Privat Azure.
Pilih Buat.
Di halaman Buat Aplikasi Kontainer pada tab Dasar , pilih Berikutnya : Kontainer >.
Di halaman Buat Aplikasi Kontainer pada tab Kontainer , pilih Gunakan gambar mulai cepat.
Pilih Tinjau dan buat di bagian bawah halaman.
Jika tidak ada kesalahan yang ditemukan, tombol Buat diaktifkan.
Jika ada kesalahan, tab apa pun yang berisi kesalahan ditandai dengan titik merah. Navigasikan ke tab yang sesuai. Bidang yang berisi kesalahan disorot dengan warna merah. Setelah semua kesalahan diperbaiki, pilih Tinjau dan buat lagi.
Pilih Buat.
Halaman dengan pesan Penyebaran sedang berlangsung ditampilkan. Setelah penyebaran berhasil diselesaikan, Anda akan melihat pesan: Penyebaran Anda selesai.
Saat menelusuri ke titik akhir aplikasi kontainer, Anda menerima
ERR_CONNECTION_CLOSED
karena lingkungan aplikasi kontainer Anda memiliki akses publik yang dinonaktifkan. Sebagai gantinya, Anda mengakses aplikasi kontainer menggunakan titik akhir privat Anda.
Prasyarat
Akun Azure dengan langganan aktif.
- Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis.
Versi terbaru dari Azure CLI. Untuk memastikan Anda menjalankan versi terbaru, jalankan perintah berikut.
az upgrade
Versi terbaru ekstensi Azure Container Apps untuk Azure CLI. Untuk memastikan Anda menjalankan versi terbaru, jalankan perintah berikut.
az extension add --name containerapp --upgrade --allow-preview true
Catatan
Mulai Mei 2024, ekstensi Azure CLI tidak lagi mengaktifkan fitur pratinjau secara default. Untuk mengakses fitur pratinjau Container Apps, instal ekstensi Container Apps dengan
--allow-preview true
.
Untuk informasi selengkapnya tentang prasyarat dan penyiapan, lihat Mulai Cepat: Menyebarkan aplikasi kontainer pertama Anda dengan containerapp.
Atur variabel lingkungan
Atur variabel lingkungan berikut.
RESOURCE_GROUP="my-container-apps"
LOCATION="centralus"
ENVIRONMENT_NAME="my-environment"
CONTAINERAPP_NAME="my-container-app"
VNET_NAME="my-vnet"
SUBNET_NAME="my-subnet"
PRIVATE_ENDPOINT="my-private-endpoint"
PRIVATE_ENDPOINT_CONNECTION="my-private-endpoint-connection"
PRIVATE_DNS_ZONE="privatelink.${LOCATION}.azurecontainerapps.io"
DNS_LINK="my-dns-link"
Membuat Grup Sumber Daya Azure
Buat grup sumber daya untuk mengatur layanan yang terkait dengan penyebaran aplikasi kontainer Anda.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Membuat jaringan virtual
Membuat jaringan virtual Azure (VNet). Anda dapat menggunakan VNet yang ada, tetapi titik akhir privat hanya didukung oleh lingkungan profil beban kerja, yang memerlukan subnet dengan rentang CIDR minimum atau lebih
/27
besar. Untuk mempelajari selengkapnya tentang ukuran subnet, lihat gambaran umum arsitektur jaringan.az network vnet create \ --resource-group $RESOURCE_GROUP \ --name $VNET_NAME \ --location $LOCATION \ --address-prefix 10.0.0.0/16
Buat subnet untuk dikaitkan dengan VNet dan untuk berisi titik akhir privat.
az network vnet subnet create \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --address-prefixes 10.0.0.0/21
Ambil ID subnet. Anda menggunakan ini untuk membuat titik akhir privat.
SUBNET_ID=$(az network vnet subnet show \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --query "id" \ --output tsv)
Membuat lingkungan
Buat lingkungan Aplikasi Kontainer. Titik akhir privat hanya didukung oleh lingkungan profil beban kerja, yang merupakan jenis default untuk lingkungan baru.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Ambil ID lingkungan. Anda menggunakan ini untuk mengonfigurasi lingkungan.
ENVIRONMENT_ID=$(az containerapp env show \ --resource-group $RESOURCE_GROUP \ --name $ENVIRONMENT_NAME \ --query "id" \ --output tsv)
Nonaktifkan akses jaringan publik untuk lingkungan. Ini diperlukan untuk mengaktifkan titik akhir privat.
az containerapp env update \ --id $ENVIRONMENT_ID \ --public-network-access Disabled
Membuat titik akhir privat
Buat titik akhir privat di lingkungan dan subnet yang Anda buat sebelumnya.
az network private-endpoint create \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--name $PRIVATE_ENDPOINT \
--subnet $SUBNET_ID \
--private-connection-resource-id $ENVIRONMENT_ID \
--connection-name $PRIVATE_ENDPOINT_CONNECTION \
--group-id managedEnvironments
Mengonfigurasi Zona DNS privat
Ambil alamat IP titik akhir privat. Anda menggunakan ini untuk menambahkan catatan DNS ke zona DNS privat Anda.
PRIVATE_ENDPOINT_IP_ADDRESS=$(az network private-endpoint show \ --name $PRIVATE_ENDPOINT \ --resource-group $RESOURCE_GROUP \ --query 'customDnsConfigs[0].ipAddresses[0]' \ --output tsv)
Ambil domain default lingkungan. Anda menggunakan ini untuk menambahkan catatan DNS ke zona DNS privat Anda.
DNS_RECORD_NAME=$(az containerapp env show \ --id $ENVIRONMENT_ID \ --query 'properties.defaultDomain' \ --output tsv | sed 's/\..*//')
Buat zona DNS privat.
az network private-dns zone create \ --resource-group $RESOURCE_GROUP \ --name $PRIVATE_DNS_ZONE
Buat tautan antara VNet dan zona DNS privat Anda.
az network private-dns link vnet create \ --resource-group $RESOURCE_GROUP \ --zone-name $PRIVATE_DNS_ZONE \ --name $DNS_LINK \ --virtual-network $VNET_NAME \ --registration-enabled false
Tambahkan catatan untuk titik akhir privat Anda ke zona DNS privat Anda.
az network private-dns record-set a add-record \ --resource-group $RESOURCE_GROUP \ --zone-name $PRIVATE_DNS_ZONE \ --record-set-name $DNS_RECORD_NAME \ --ipv4-address $PRIVATE_ENDPOINT_IP_ADDRESS
Menyebarkan aplikasi kontainer
Sebarkan aplikasi kontainer di lingkungan Anda. Aplikasi kontainer ini hanya menggunakan gambar mulai cepat.
Saat menelusuri ke titik akhir aplikasi kontainer, Anda menerima ERR_CONNECTION_CLOSED
karena lingkungan aplikasi kontainer Anda memiliki akses publik yang dinonaktifkan. Sebagai gantinya, Anda mengakses aplikasi kontainer menggunakan titik akhir privat Anda.
az containerapp up \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT_NAME \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external \
--query properties.configuration.ingress.fqdn
Memverifikasi koneksi titik akhir privat
Di bagian ini, Anda membuat komputer virtual yang terkait dengan VNet sehingga Anda dapat mengakses aplikasi kontainer yang Anda tentukan menggunakan titik akhir privat Anda.
Membuat komputer virtual (VM)
Mulailah dengan masuk ke portal Microsoft Azure.
Cari Komputer virtual di bilah pencarian atas.
Pilih Jaringan Virtual dalam hasil pencarian.
Pilih Buat.
Di halaman Buat komputer virtual pada tab Dasar , masukkan nilai berikut.
Pengaturan Tindakan Langganan Pilih langganan Azure Anda. Grup sumber daya Pilih my-container-apps. Nama komputer virtual Masukkan azurevm. Wilayah Pilih US Tengah. Opsi ketersediaan Pilih Tidak diperlukan redundansi infrastruktur. Jenis keamanan Pilih Standar. Gambar Pilih Pusat Data Windows Server 2022 : Azure Edition - x64 Gen2. Nama Pengguna Masukkan azureuser. Kata sandi Masukkan kata sandi. Mengonfirmasikan kata sandi Masukkan kata sandi lagi. Port masuk publik Pilih Tidak ada. Di tab Jaringan , masukkan nilai berikut ini.
Pengaturan Tindakan Jaringan virtual Pilih my-private-endpoint-vnet. Subnet Pilih my-private-endpoint-vnet-subnet (10.0.0.0/23). IP Publik Pilih Tidak ada. kelompok keamanan jaringan NIC Pilih Tingkat Lanjut. Pilih Tinjau + Buat.
Pilih Buat.
Atur variabel lingkungan
Atur variabel lingkungan berikut.
VM_NAME="azurevm"
VM_ADMIN_USERNAME="azureuser"
Membuat komputer virtual (VM)
Jalankan perintah berikut.
az vm create \
--resource-group $RESOURCE_GROUP \
--name $VM_NAME \
--image Win2022Datacenter \
--public-ip-address "" \
--vnet-name $VNET_NAME \
--subnet $SUBNET_NAME \
--admin-username $VM_ADMIN_USERNAME
Setelah menjalankan perintah ini, Anda akan dimintai kata sandi administrator untuk VM Anda.
Panjang nama pengguna administrator harus antara 1 dan 20 karakter.
Kata sandi administrator memiliki persyaratan berikut:
- Panjangnya harus antara 12 dan 123 karakter.
- Harus memiliki 3 dari yang berikut: 1 karakter huruf kecil, 1 karakter huruf besar, 1 angka, dan 1 karakter khusus.
Menguji koneksi
Mulailah dengan masuk ke portal Microsoft Azure.
Cari VM yang Anda buat di bilah pencarian atas dan pilih dari hasil pencarian.
Di halaman Gambaran Umum untuk VM, pilih Sambungkan, lalu pilih Sambungkan melalui Bastion.
Di halaman Bastion , pilih Sebarkan Bastion.
Atur Nama Pengguna dan Kata Sandi VM ke nama pengguna dan kata sandi yang Anda gunakan saat membuat VM.
Pilih Sambungkan.
Setelah Anda tersambung, jalankan PowerShell di VM.
Di PowerShell, jalankan perintah berikut. <Ganti PLACEHOLDERS> dengan nilai Anda.
nslookup <CONTAINER_APP_ENDPOINT>
Outputnya mirip dengan contoh berikut, dengan nilai Anda mengganti PLACEHOLDERS<>.
Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: <ENVIRONMENT_DEFAULT_DOMAIN>.privatelink.<LOCATION>.azurecontainerapps.io Address: 10.0.0.4 Aliases: <CONTAINER_APP_ENDPOINT>
Buka browser di VM.
Telusuri ke titik akhir aplikasi kontainer. Anda melihat output untuk gambar aplikasi kontainer mulai cepat.
Membersihkan sumber daya
Jika Anda tidak akan terus menggunakan aplikasi ini, Anda dapat menghapus grup sumber daya my-container-apps . Ini menghapus instans Azure Container Apps dan semua layanan terkait.
Perhatian
Perintah berikut menghapus grup sumber daya yang ditentukan dan semua sumber daya yang terkandung di dalamnya. Jika sumber daya di luar lingkup panduan ini ada di grup sumber daya yang ditentukan, sumber daya tersebut juga akan dihapus.
az group delete --name $RESOURCE_GROUP