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:

  1. Membuat layanan namespace dan bootstrapper
  2. 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.

Instal alat kubectl

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:

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 adalah default yang mengasumsikan ada kelas penyimpanan yang ada dan defaulttidak 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.