Membuat pengontrol data dengan dukungan Azure Arc menggunakan alat Kubernetes
Pengontrol data mengelola layanan data dengan dukungan Azure Arc untuk kluster Kubernetes. Artikel ini menjelaskan cara menggunakan alat Kubernetes untuk membuat pengontrol data.
Membuat pengontrol data memiliki langkah-langkah tingkat tinggi berikut:
- Membuat layanan namespace dan bootstrapper
- Membuat pengontrol data
Catatan
Untuk kesederhanaan, langkah-langkah di bawah ini mengasumsikan bahwa Anda adalah administrator kluster Kubernetes. Untuk penyebaran produksi atau lingkungan yang lebih aman, disarankan untuk mengikuti praktik terbaik keamanan "hak istimewa paling sedikit" saat menyebarkan pengontrol data dengan hanya memberikan izin khusus kepada pengguna dan akun layanan yang terlibat dalam proses penyebaran.
Lihat topik Mengoperasikan layanan data dengan dukungan Arc dengan hak istimewa paling sedikit untuk instruksi terperinci.
Prasyarat
Tinjau topik Merencanakan penyebaran layanan data dengan dukungan Azure Arc untuk informasi gambaran umum.
Untuk membuat pengontrol data menggunakan alat Kubernetes, Anda harus menginstal alat Kubernetes. Contoh dalam artikel ini akan menggunakan kubectl
, tetapi pendekatan serupa dapat digunakan dengan alat Kube lainnya seperti dasbor Kube, oc
, atau helm
jika Anda terbiasa dengan alat-alat tersebut dan Kube yaml/json.
Membuat layanan namespace dan bootstrapper
Layanan bootstrapper menangani permintaan masuk untuk membuat, mengedit, dan menghapus sumber daya kustom seperti pengontrol data.
Simpan salinan bootstrapper-unified.yaml, dan ganti tempat penampung {{NAMESPACE}}
di semua tempat dalam file dengan nama namespace yang diinginkan, misalnya: arc
.
Penting
File templat bootstrapper-unified.yaml default untuk menarik gambar kontainer bootstrapper dari Microsoft Container Registry (MCR). Jika lingkungan Anda tidak dapat langsung mengakses Microsoft Container Registry, Anda dapat melakukan hal berikut:
- Ikuti langkah-langkah untuk penarikan gambar kontainer dari Microsoft Container Registry dan dorong ke registri kontainer privat.
- Buat rahasia penarikan gambar bernama
arc-private-registry
untuk registri kontainer privat Anda. - Ubah URL gambar untuk gambar bootstrapper dalam file bootstrap.yaml.
- Ganti dalam file bootstrap.yaml jika nama yang berbeda digunakan untuk rahasia penarikan
arc-private-registry
gambar.
Jalankan perintah berikut untuk membuat layanan namespace dan bootstrapper dengan file yang diedit.
kubectl apply --namespace arc -f bootstrapper-unified.yaml
Pastikan pod bootstrapper berjalan menggunakan perintah berikut.
kubectl get pod --namespace arc -l app=bootstrapper
Jika status tidak Berjalan, jalankan perintah beberapa kali hingga status Berjalan.
Membuat pengontrol data
Sekarang Anda siap untuk membuat pengontrol data itu sendiri.
Pertama, buat salinan file templat secara lokal di komputer Anda sehingga Anda dapat mengubah beberapa pengaturan.
Membuat metrik dan dasbor log nama pengguna dan kata sandi
Di bagian atas file, Anda dapat menentukan nama pengguna dan kata sandi yang digunakan untuk mengautentikasi ke metrik dan dasbor log sebagai administrator. Pilih kata sandi yang aman dan bagikan hanya dengan kata sandi yang perlu memiliki hak istimewa administrator kluster.
Rahasia Kube disimpan sebagai untai (karakter) yang dikodekan base64 - satu untuk nama pengguna dan satu untuk kata sandi.
Anda dapat menggunakan alat online untuk menyandikan nama pengguna dan kata sandi berbasis base64 yang Anda inginkan atau Anda dapat menggunakan alat CLI bawaan tergantung pada platform Anda.
PowerShell
[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('<your string to encode here>'))
#Example
#[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('example'))
Linux/macOS
echo -n '<your string to encode here>' | base64
#Example
# echo -n 'example' | base64
Membuat sertifikat untuk dasbor log dan metrik
Secara opsional, Anda dapat membuat sertifikat SSL/TLS untuk dasbor log dan metrik. Ikuti petunjuk di Menentukan sertifikat SSL/TLS selama penyebaran alat asli Kubernetes.
Mengedit konfigurasi pengontrol data
Edit konfigurasi pengontrol data sesuai kebutuhan:
WAJIB DIISI
- lokasi: Ubah ini menjadi lokasi Azure di mana metadata tentang pengontrol data akan disimpan. Tinjau daftar wilayah yang tersedia.
- resourceGroup: grup sumber daya Azure tempat Anda ingin membuat pengontrol data sumber daya Azure di Azure Resource Manager. Biasanya grup sumber daya ini harus sudah ada, tetapi tidak diperlukan sampai saat Anda mengunggah data ke Azure.
- berlangganan: langganan Azure GUID untuk langganan yang ingin Anda buat sumber daya Azure.
DISARANKAN UNTUK MENINJAU DAN MUNGKIN MENGUBAH DEFAULT
- penyimpanan..className: kelas penyimpanan yang digunakan untuk data pengontrol data dan file log. Jika tidak yakin dengan kelas penyimpanan yang tersedia di kluster kube, kamu dapat menjalankan perintah berikut:
kubectl get storageclass
. Defaultnya adalahdefault
yang mengasumsikan ada kelas penyimpanan yang ada dandefault
tidak disebutkan bahwa ada kelas penyimpanan yang default. Catatan: Ada dua pengaturan className yang akan diatur ke kelas penyimpanan yang diinginkan - satu untuk data dan satu untuk mencatat. - serviceType: Ubah jenis layanan
NodePort
jika Anda tidak menggunakan LoadBalancer. - Keamanan Untuk platform kontainer Azure Red Hat OpenShift atau Red Hat OpenShift, ganti
security:
pengaturan dengan nilai berikut dalam file yaml pengontrol data.
security:
allowDumps: false
allowNodeMetricsCollection: false
allowPodMetricsCollection: false
OPSIONAL
- nama: Nama default pengontrol data adalah
arc
, tetapi Anda dapat mengubahnya jika Anda mau. - displayName: Atur ini ke nilai yang sama dengan atribut name di bagian atas file.
- logsui-certificate-secret: Nama rahasia yang dibuat pada kluster Kubernetes untuk sertifikat UI log.
- metricsui-certificate-secret: Nama rahasia yang dibuat pada kluster Kubernetes untuk sertifikat antarmuka pengguna metrik.
Contoh berikut menunjukkan yaml pengontrol data lengkap.
apiVersion: v1
data:
password: <your base64 encoded password>
username: <your base64 encoded username>
kind: Secret
metadata:
name: metricsui-admin-secret
type: Opaque
---
apiVersion: v1
data:
password: <your base64 encoded password>
username: <your base64 encoded username>
kind: Secret
metadata:
name: logsui-admin-secret
type: Opaque
---
apiVersion: arcdata.microsoft.com/v5
kind: DataController
metadata:
name: arc-dc
spec:
credentials:
dockerRegistry: arc-private-registry # Create a registry secret named 'arc-private-registry' if you are going to pull from a private registry instead of MCR.
serviceAccount: sa-arc-controller
docker:
imagePullPolicy: Always
imageTag: v1.29.0_2024-04-09
registry: mcr.microsoft.com
repository: arcdata
infrastructure: other # Must be a value in the array [alibaba, aws, azure, gcp, onpremises, other]
security:
allowDumps: true # Set this to false if deploying on OpenShift
allowNodeMetricsCollection: true # Set this to false if deploying on OpenShift
allowPodMetricsCollection: true # Set this to false if deploying on OpenShift
services:
- name: controller
port: 30080
serviceType: LoadBalancer # Modify serviceType based on your Kubernetes environment
settings:
ElasticSearch:
vm.max_map_count: "-1"
azure:
connectionMode: indirect # Only indirect is supported for Kubernetes-native deployment for now.
location: eastus # Choose a different Azure location if you want
resourceGroup: <your resource group>
subscription: <your subscription GUID>
controller:
displayName: arc-dc
enableBilling: true
logs.rotation.days: "7"
logs.rotation.size: "5000"
storage:
data:
accessMode: ReadWriteOnce
className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 15Gi
logs:
accessMode: ReadWriteOnce
className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 10Gi
Simpan file yang diedit di komputer lokal Anda dan jalankan perintah berikut untuk membuat pengontrol data:
kubectl create --namespace arc -f <path to your data controller file>
#Example
kubectl create --namespace arc -f data-controller.yaml
Memantau status pembuatan
Membuat pengontrol akan memakan waktu beberapa menit untuk menyelesaikannya. Anda dapat memantau kemajuan ini di jendela terminal lain dengan perintah berikut:
kubectl get datacontroller --namespace arc
kubectl get pods --namespace arc
Anda juga dapat memeriksa status pembuatan atau log pod tertentu dengan menjalankan perintah seperti di bawah ini. Langkah ini sangat berguna untuk pemecahan masalah apa pun.
kubectl describe pod/<pod name> --namespace arc
kubectl logs <pod name> --namespace arc
#Example:
#kubectl describe pod/control-2g7bl --namespace arc
#kubectl logs control-2g7b1 --namespace arc
Pemecahan masalah pembuatan
Jika Anda mengalami masalah dengan pembuatan, harap lihat panduan pemecahan masalah.