Membuat pengontrol data Azure Arc menggunakan CLI

Prasyarat

Tinjau topik Merencanakan penyebaran layanan data dengan dukungan Azure Arc untuk informasi gambaran umum.

Menginstal alat

Untuk membuat pengontrol data menggunakan CLI, Anda perlu menginstal ekstensi arcdata untuk Azure (az) CLI.

Menginstal ekstensi (arcdata) untuk Azure (az) CLI

Terlepas dari platform target mana yang Anda pilih, Anda harus mengatur variabel lingkungan berikut sebelum pembuatan untuk pengontrol data. Variabel lingkungan ini akan menjadi kredensial yang digunakan untuk mengakses metrik dan dasbor log setelah pembuatan pengontrol data.

Mengatur variabel lingkungan

Berikut ini adalah dua set variabel lingkungan yang diperlukan untuk mengakses metrik dan dasbor log.

Variabel lingkungan mencakup kata sandi untuk layanan log dan metrik. Panjang kata sandi harus minimal delapan karakter dan berisi karakter dari tiga dari empat kategori berikut: huruf besar Latin, huruf kecil Latin, angka, dan karakter non-alfanumerik.

## variables for Metrics and Monitoring dashboard credentials
export AZDATA_LOGSUI_USERNAME=<username for Kibana dashboard>
export AZDATA_LOGSUI_PASSWORD=<password for Kibana dashboard>
export AZDATA_METRICSUI_USERNAME=<username for Grafana dashboard>
export AZDATA_METRICSUI_PASSWORD=<password for Grafana dashboard>

Menyambungkan ke kluster Kubernetes

Kamu harus terhubung dan mengautentikasi ke kluster Kube dan memiliki konteks Kube yang ada yang dipilih sebelum memulai pembuatan data pengontrol Azure Arc. Cara terhubung ke kluster atau service Kube berbeda-beda. Lihat dokumentasi untuk distribusi atau layanan Kube yang kamu gunakan tentang cara menyambung ke API server Kube.

Kamu dapat memeriksa untuk melihat bahwa kamu memiliki koneksi Kube saat ini dan mengonfirmasi konteks saat ini dengan perintah-perintah berikut.

kubectl cluster-info
kubectl config current-context

Membuat pengontrol data Azure Arc

Bagian berikut memberikan instruksi untuk jenis platform Kubernetes tertentu. Ikuti instruksi untuk platform Anda.

Tip

Jika tidak memiliki kluster Kubernetes, Anda dapat membuatnya di Azure. Ikuti instruksi di Mulai Cepat: Menyebarkan layanan data dengan dukungan Azure Arc - mode terhubung langsung - portal Azure untuk menelusuri seluruh proses.

Kemudian ikuti instruksi di bawah Buat di Azure Kubernetes Service (AKS).

Membuat Azure Kubernetes Service (AKS)

Secara default, profil penyebaran AKS menggunakan kelas penyimpanan managed-premium. Kelas penyimpanan managed-premium hanya akan berfungsi jika Anda memiliki VM yang disebarkan menggunakan gambar VM yang memiliki disk premium.

Jika Anda akan menggunakan managed-premium sebagai kelas penyimpanan, maka Anda dapat menjalankan perintah berikut untuk membuat pengontrol data. Ganti tempat penampung dalam perintah dengan nama grup sumber daya, ID langganan, dan lokasi Azure Anda.

az arcdata dc create --profile-name azure-arc-aks-premium-storage --k8s-namespace <namespace> --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --use-k8s

#Example:
#az arcdata dc create --profile-name azure-arc-aks-premium-storage --k8s-namespace arc --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --use-k8s

Jika Anda tidak yakin kelas penyimpanan apa yang akan digunakan, Anda harus menggunakan kelas penyimpanan default yang didukung terlepas dari jenis VM mana yang Anda gunakan. Itu hanya tidak akan memberikan performa tercepat.

Jika Anda ingin menggunakan kelas penyimpanan default, maka Anda dapat menjalankan perintah ini:

az arcdata dc create --profile-name azure-arc-aks-default-storage --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-aks-default-storage  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

Setelah Anda menjalankan perintah, lanjutkan ke Pemantauan status pembuatan.

Membuat AKS di Azure Stack HCI

Mengonfigurasi penyimpanan (Azure Stack HCI with AKS-HCI)

Jika Anda menggunakan Azure Stack HCI dengan AKS-HCI, buat kelas penyimpanan kustom dengan fsType.

fsType: ext4

Gunakan jenis ini untuk menyebarkan pengontrol data. Lihat petunjuk lengkap di Buat kelas penyimpanan kustom untuk AKS pada disk Azure Stack HCI.

Secara default, profil penyebaran menggunakan kelas penyimpanan bernama default dan jenis layanan LoadBalancer.

Anda dapat menjalankan perintah berikut untuk membuat pengontrol data menggunakan kelas penyimpanan default dan jenis layanan LoadBalancer.

az arcdata dc create --profile-name azure-arc-aks-hci  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-aks-hci  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

Setelah Anda menjalankan perintah, lanjutkan ke Pemantauan status pembuatan.

Membuat Azure Red Hat OpenShift (ARO)

Membuat profil penyebaran kustom

Gunakan profil azure-arc-azure-openshift untuk Azure RedHat Open Shift.

az arcdata dc config init --source azure-arc-azure-openshift --path ./custom

Pembuatan pengontrol data

Anda dapat menjalankan perintah berikut untuk membuat pengontrol data:

az arcdata dc create --profile-name azure-arc-azure-openshift  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example
#az arcdata dc create --profile-name azure-arc-azure-openshift  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

Setelah Anda menjalankan perintah, lanjutkan ke Pemantauan status pembuatan.

Membuat Red Hat OpenShift Container Platform (OCP)

Menentukan kelas penyimpanan

Anda juga perlu menentukan kelas penyimpanan mana yang akan digunakan dengan menjalankan perintah berikut.

kubectl get storageclass

Membuat profil penyebaran kustom

Buat file profil penyebaran kustom baru berdasarkan profil penyebaran azure-arc-openshift dengan menjalankan perintah berikut. Perintah ini membuat direktori custom di direktori kerja Anda saat ini dan file profil penyebaran kustom control.json di direktori tersebut.

Gunakan profil azure-arc-openshift untuk OpenShift Container Platform.

az arcdata dc config init --source azure-arc-openshift --path ./custom

Mengatur kelas penyimpanan

Sekarang, atur kelas penyimpanan yang diinginkan dengan mengganti <storageclassname> pada perintah di bawah ini dengan nama kelas penyimpanan yang ingin Anda gunakan yang ditentukan dengan menjalankan perintah kubectl get storageclass di atas.

az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=<storageclassname>"
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=<storageclassname>"

#Example:
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=mystorageclass"
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=mystorageclass"

Mengatur LoadBalancer (opsional)

Secara default, profil penyebaran azure-arc-openshift menggunakan NodePort sebagai jenis layanan. Jika Anda menggunakan kluster OpenShift yang terintegrasi dengan penyeimbang muatan, Anda dapat mengubah konfigurasi untuk menggunakan jenis layanan LoadBalancer menggunakan perintah berikut:

az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer"

Pembuatan pengontrol data

Sekarang Anda siap untuk membuat pengontrol data menggunakan perintah berikut.

Catatan

Parameter --path harus menunjuk ke direktori yang berisi file control.json bukan ke file control.json itu sendiri.

Catatan

Saat menyebarkan ke OpenShift Container Platform, Anda harus menentukan nilai parameter --infrastructure. Opsinya adalah aws, azure, alibaba, gcp, onpremises.

az arcdata dc create --path ./custom  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --infrastructure <infrastructure>

#Example:
#az arcdata dc create --path ./custom  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --infrastructure onpremises

Setelah Anda menjalankan perintah, lanjutkan ke Pemantauan status pembuatan.

Membuat sumber terbuka, upstram Kube (kubeadm)

Secara default, profil penyebaran kubeadm menggunakan kelas penyimpanan yang disebut local-storage dan jenis layanan NodePort. Jika ini dapat diterima, Anda dapat melewati instruksi di bawah ini yang mengatur kelas penyimpanan dan jenis layanan yang diinginkan dan segera menjalankan perintah az arcdata dc create di bawah ini.

Jika kamu ingin menyesuaikan profil penyebaran untuk menentukan class storage dan/atau service type tertentu, mulailah dengan membuat file profil kustom penyebaran baru berdasarkan profil penyebaran kubeadm dengan menjalankan perintah berikut. Perintah ini akan membuat direktori custom di direktori kerja Anda saat ini dan file profil penyebaran kustom control.json di direktori tersebut.

az arcdata dc config init --source azure-arc-kubeadm --path ./custom 

Anda dapat mencari kelas penyimpanan yang tersedia dengan menjalankan perintah berikut.

kubectl get storageclass

Sekarang, atur kelas penyimpanan yang diinginkan dengan mengganti <storageclassname> pada perintah di bawah ini dengan nama kelas penyimpanan yang ingin Anda gunakan yang ditentukan dengan menjalankan perintah kubectl get storageclass di atas.

az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=<storageclassname>"
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=<storageclassname>"

#Example:
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=mystorageclass"
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=mystorageclass"

Secara default, profil penyebaran kubeadm menggunakan NodePort sebagai jenis layanan. Jika Anda menggunakan kluster Kube yang terintegrasi dengan penyeimbang muatan, Anda dapat mengubah konfigurasi menggunakan perintah berikut.

az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer" --k8s-namespace <namespace> --use-k8s

Sekarang Anda siap untuk membuat pengontrol data menggunakan perintah berikut.

Catatan

Saat menyebarkan ke OpenShift Container Platform, Anda harus menentukan nilai parameter --infrastructure. Opsinya adalah aws, azure, alibaba, gcp, onpremises.

az arcdata dc create --path ./custom  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --infrastructure <infrastructure>

#Example:
#az arcdata dc create --path ./custom - --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --infrastructure onpremises

Setelah Anda menjalankan perintah, lanjutkan ke Pemantauan status pembuatan.

Membuat AWS Elastic Kubernetes Service (EKS)

Secara default, kelas penyimpanan EKS adalah gp2 dan jenis layanannya adalah LoadBalancer.

Jalankan perintah berikut untuk membuat pengontrol data menggunakan profil penyebaran EKS yang disediakan.

az arcdata dc create --profile-name azure-arc-eks  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-eks  --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

Setelah Anda menjalankan perintah, lanjutkan ke Pemantauan status pembuatan.

Membuat Google Cloud Kubernetes Engine Service (GKE)

Secara default, kelas penyimpanan GKE adalah standard dan jenis layanannya adalah LoadBalancer.

Jalankan perintah berikut untuk membuat pengontrol data menggunakan profil penyebaran GKE yang disediakan.

az arcdata dc create --profile-name azure-arc-gke --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-gke --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

Setelah Anda menjalankan perintah, lanjutkan ke Pemantauan status pembuatan.

Memantau status pembuatan

Membuat pengontrol akan memakan waktu beberapa menit untuk menyelesaikannya. Anda dapat memantau kemajuan ini di jendela terminal lain dengan perintah berikut:

Catatan

Contoh perintah di bawah ini mengasumsikan bahwa Anda membuat pengontrol data bernama arc-dc dan namespace Layanan Kubernetes bernama arc. Jika Anda menggunakan nilai yang berbeda, perbarui skrip yang sesuai.

kubectl get datacontroller/arc-dc --namespace arc
kubectl get pods --namespace arc

Anda juga dapat memeriksa status pembuatan Pod tertentu dengan menjalankan perintah seperti di bawah ini. Langkah ini sangat berguna untuk pemecahan masalah apa pun.

kubectl describe po/<pod name> --namespace arc

#Example:
#kubectl describe po/control-2g7bl --namespace arc

Pemecahan masalah pembuatan

Jika Anda mengalami masalah dengan pembuatan, lihat panduan pemecahan masalah.