Mesh Layanan Terbuka Azure Arc-diaktifkan

Open Service Mesh (OSM) adalah jala layanan Cloud Asli yang ringan, dapat diperluas, dan memungkinkan pengguna untuk mengelola, mengamankan, dan mendapatkan fitur observabilitas di luar kotak secara seragam untuk lingkungan layanan mikro yang sangat dinamis.

OSM menjalankan sarana kontrol berbasis Envoy pada Kubernetes, dapat dikonfigurasi dengan API SMI, dan bekerja dengan memasukkan proksi Envoy sebagai kontainer sidecar di samping setiap instans aplikasi Anda. Baca selengkapnya tentang skenario mesh layanan yang diaktifkan oleh Open Service Mesh.

Opsi dan persyaratan penginstalan

Open Service Mesh dengan dukungan Azure Arc dapat disebarkan melalui portal Azure, Azure CLI, templat ARM, atau kebijakan Azure bawaan.

Prasyarat

  • Pastikan Anda telah memenuhi semua prasyarat umum untuk ekstensi kluster yang tercantum di sini.
  • Gunakan versi >CLI az k8s-extension = v1.0.4

Batasan dukungan saat ini

  • Hanya satu instance Open Service Mesh yang dapat disebarkan pada kluster Kubernetes yang tersambung dengan Azure Arc.
  • Dukungan tersedia untuk dua versi minor terbaru dari Open Service Mesh yang diaktifkan Arc. Temukan versi terbaru di sini. Versi rilis yang didukung ditambahkan dengan catatan. Abaikan tag yang terkait dengan rilis menengah.
  • Distribusi Kubernetes berikut ini saat ini didukung:
    • Mesin AKS (Azure Kubernetes Service)
    • Kluster AKS di Azure Stack HCI
    • Kluster hibrid AKS yang disediakan dari Azure
    • API Azure Kluster
    • Google Kubernetes Engine
    • Distribusi Kubernetes Kanonis
    • Rancher Kubernetes Engine
    • Distribusi OpenShift Kubernetes
    • Layanan Amazon Elastic Kubernetes
    • VMware Tanzu Kubernetes Grid
  • Integrasi Azure Monitor dengan Open Service Mesh dengan dukungan Azure Arc tersedia dalam pratinjau dengan dukungan terbatas.

Tip

Saat menggunakan ekstensi ini dengan kluster hibrid AKS yang disediakan dari Azure , Anda harus mengatur --cluster-type untuk menggunakan provisionedClusters dan juga menambahkan --cluster-resource-provider microsoft.hybridcontainerservice ke perintah . Menginstal ekstensi Azure Arc pada kluster hibrid AKS yang disediakan dari Azure saat ini dalam pratinjau.

Penginstalan dasar menggunakan portal Azure

Untuk menyebarkan menggunakan portal Azure, setelah Anda memiliki kluster yang terhubung dengan Arc, buka bagian Open Service Mesh kluster.

Open Service Mesh yang terletak di bawah Pengaturan untuk kluster Kubernetes dengan dukungan Arc

Cukup pilih tombol Instal ekstensi untuk menyebarkan versi terbaru ekstensi.

Atau, Anda dapat menggunakan pengalaman CLI yang diambil di bawah ini. Untuk onboarding dalam skala besar, baca lebih lanjut di artikel ini tentang penyebaran menggunakan templat ARM dan menggunakan Azure Policy.

Penginstalan dasar menggunakan Azure CLI

Langkah-langkah berikut mengasumsikan bahwa Anda sudah memiliki kluster dengan distribusi Kubernetes yang didukung yang terhubung ke Azure Arc. Pastikan variabel lingkungan KUBECONFIG Anda menunjuk ke kubeconfig kluster Kubernetes yang diaktifkan Arc.

Atur variabel lingkungan:

export CLUSTER_NAME=<arc-cluster-name>
export RESOURCE_GROUP=<resource-group-name>

Jika Anda menggunakan kluster OpenShift, lewati ke langkah-langkah penginstalan OpenShift di bawah ini.

Buat ekstensi:

Catatan

Jika Anda ingin menyematkan versi OSM tertentu, tambahkan --version x.y.z bendera ke create perintah . Perhatikan bahwa ini akan menetapkan nilai untuk auto-upgrade-minor-version ke false.

az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm

Anda seharusnya melihat output yang mirip dengan berikut ini. Mungkin perlu waktu 3-5 menit untuk grafik helm OSM yang sebenarnya untuk disebarkan ke kluster. Sampai penyebaran ini terjadi, Anda akan terus melihat installState sebagai Pending.

{
  "autoUpgradeMinorVersion": true,
  "configurationSettings": {},
  "creationTime": "2021-04-29T17:50:11.4116524+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.openservicemesh",
  "id": "/subscriptions/<subscription-id>/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Kubernetes/connectedClusters/$CLUSTER_NAME/providers/Microsoft.KubernetesConfiguration/extensions/osm",
  "identity": null,
  "installState": "Pending",
  "lastModifiedTime": "2021-04-29T17:50:11.4116525+00:00",
  "lastStatusTime": null,
  "location": null,
  "name": "osm",
  "releaseTrain": "stable",
  "resourceGroup": "$RESOURCE_GROUP",
  "scope": {
    "cluster": {
      "releaseNamespace": "arc-osm-system"
    },
    "namespace": null
  },
  "statuses": [],
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "x.y.z"
}

Selanjutnya, validasi penginstalan Anda.

Penginstalan kustom

Bagian berikut menjelaskan penginstalan kustom tertentu dari OSM dengan dukungan Azure Arc. Penginstalan kustom memerlukan pengaturan nilai OSM dengan dalam file JSON dan meneruskannya ke k8s-extension create perintah CLI seperti yang dijelaskan di bawah ini.

Menginstal OSM pada kluster OpenShift

  1. Salin dan simpan konten berikut ke dalam file JSON. Jika Anda telah membuat file pengaturan konfigurasi, silakan tambahkan baris berikut ke file yang ada untuk mempertahankan perubahan sebelumnya.

    {
        "osm.osm.enablePrivilegedInitContainer": "true"
    }
    
  2. Instal OSM dengan nilai kustom.

  3. Tambahkan batasan konteks keamanan istimewa ke setiap akun layanan untuk aplikasi dalam mesh.

    oc adm policy add-scc-to-user privileged -z <service account name> -n <service account namespace>
    

Mungkin perlu waktu 3-5 menit untuk grafik helm OSM yang sebenarnya untuk disebarkan ke kluster. Sampai penyebaran ini terjadi, Anda akan terus melihat installState sebagai Pending.

Untuk memastikan bahwa pengaturan kontainer init istimewa tidak dikembalikan ke default, teruskan "osm.osm.enablePrivilegedInitContainer" : "true" pengaturan konfigurasi ke semua perintah az k8s-extension create berikutnya.

Mengaktifkan fitur Ketersediaan Tinggi pada penginstalan

Komponen sarana kontrol OSM dibangun dengan ingat Ketersediaan Tinggi dan Toleransi Kesalahan. Bagian ini menjelaskan cara mengaktifkan Horizontal Pod Autoscaling (HPA) dan Pod Disruption Budget (PDB) selama penginstalan. Baca selengkapnya tentang pertimbangan desain Ketersediaan Tinggi pada OSM di sini.

Autoscaling Pod Horizontal (HPA)

HPA secara otomatis meningkatkan atau menurunkan skala pod sarana kontrol berdasarkan pemanfaatan CPU target rata-rata (%) dan pemanfaatan memori target rata-rata (%) yang ditentukan oleh pengguna. Untuk mengaktifkan HPA dan mengatur nilai yang berlaku pada pod sarana kontrol OSM selama penginstalan, buat atau tambahkan ke file pengaturan JSON yang ada seperti di bawah ini, ulangi pasangan kunci/nilai untuk setiap pod sarana kontrol (osmController, injector) yang ingin Anda aktifkan HPA-nya.

{
  "osm.osm.<control_plane_pod>.autoScale.enable" : "true",
  "osm.osm.<control_plane_pod>.autoScale.minReplicas" : "<allowed values: 1-10>",
  "osm.osm.<control_plane_pod>.autoScale.maxReplicas" : "<allowed values: 1-10>",
  "osm.osm.<control_plane_pod>.autoScale.cpu.targetAverageUtilization" : "<allowed values 0-100>",
  "osm.osm.<control_plane_pod>.autoScale.memory.targetAverageUtilization" : "<allowed values 0-100>"
}

Sekarang, instal OSM dengan nilai kustom.

Anggaran Gangguan Pod (PDB)

Untuk mencegah gangguan selama pemadaman yang direncanakan, pod osm-controller sarana kontrol dan osm-injector memiliki PDB yang memastikan selalu ada setidaknya 1 pod yang sesuai dengan setiap aplikasi sarana kontrol.

Untuk mengaktifkan PDB, buat atau tambahkan ke file pengaturan JSON yang ada sebagai berikut untuk setiap pod sarana kontrol yang diinginkan (osmController, injector):

{
  "osm.osm.<control_plane_pod>.enablePodDisruptionBudget" : "true"
}

Sekarang, instal OSM dengan nilai kustom.

Menginstal OSM dengan cert-manager untuk manajemen sertifikat

cert-manager adalah penyedia yang dapat digunakan untuk mengeluarkan sertifikat yang ditandatangani ke OSM tanpa perlu menyimpan kunci privat di Kubernetes. Lihat dokumentasi dan democert-manager OSM untuk mempelajari lebih lanjut.

Catatan

Gunakan perintah yang disediakan dalam dokumentasi OSM GitHub dengan hati-hati. Pastikan Anda menggunakan namespace yang benar dalam perintah atau tentukan dengan bendera --osm-namespace arc-osm-system. Untuk menginstal OSM dengan cert-manager sebagai penyedia sertifikat, buat atau tambahkan ke file pengaturan JSON yang ada, nilai diatur certificateProvider.kind ke cert-manager seperti yang ditunjukkan di bawah ini. Jika Anda ingin mengubah dari nilai cert-manager default yang ditentukan dalam dokumentasi OSM, sertakan juga dan perbarui baris berikutnya certmanager.issuer .

{
  "osm.osm.certificateProvider.kind" : "cert-manager",
  "osm.osm.certmanager.issuerName" : "<issuer name>",
  "osm.osm.certmanager.issuerKind" : "<issuer kind>",
  "osm.osm.certmanager.issuerGroup" : "<issuer group>"
}

Sekarang, instal OSM dengan nilai kustom.

Menginstal OSM dengan Contour untuk ingress

OSM menyediakan beberapa opsi untuk mengekspos layanan jala secara eksternal menggunakan ingress. OSM dapat menggunakan Contour, yang bekerja dengan pengontrol ingress yang diinstal di luar jala dan disediakan dengan sertifikat untuk berpartisipasi dalam jala. Lihat dokumentasi dan demoingress OSM untuk mempelajari lebih lanjut.

Catatan

Gunakan perintah yang disediakan dalam dokumentasi OSM GitHub dengan hati-hati. Pastikan Anda menggunakan namespace yang benar dalam perintah atau tentukan dengan bendera --osm-namespace arc-osm-system. Untuk mengatur nilai yang diperlukan untuk mengonfigurasi Contour selama penginstalan OSM, tambahkan yang berikut ini ke file pengaturan JSON Anda:

{
  "osm.osm.osmNamespace" : "arc-osm-system",
  "osm.contour.enabled" : "true",
  "osm.contour.configInline.tls.envoy-client-certificate.name" : "osm-contour-envoy-client-cert", 
  "osm.contour.configInline.tls.envoy-client-certificate.namespace" : "arc-osm-system"
}

Sekarang, instal OSM dengan nilai kustom.

Mengatur nilai selama penginstalan OSM

Nilai apa pun yang perlu diatur selama penginstalan OSM perlu disimpan ke satu file JSON dan diteruskan melalui perintah penginstalan Azure CLI.

Setelah Anda membuat file JSON dengan nilai yang berlaku seperti yang dijelaskan di bagian penginstalan kustom di atas, atur jalur file sebagai variabel lingkungan:

export SETTINGS_FILE=<json-file-path>

Jalankan az k8s-extension create perintah untuk membuat ekstensi OSM, meneruskan file pengaturan menggunakan

--configuration-settings-file Bendera:

az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm --configuration-settings-file $SETTINGS_FILE

Menginstal OSM berkemampuan Azure Arc menggunakan template ARM

Setelah menyambungkan kluster Anda ke Azure Arc, buat file JSON dengan format berikut, pastikan untuk memperbarui <nilai nama> kluster dan <osm-arc-version> :

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "ConnectedClusterName": {
            "defaultValue": "<cluster-name>",
            "type": "String",
            "metadata": {
                "description": "The Connected Cluster name."
            }
        },
        "ExtensionInstanceName": {
            "defaultValue": "osm",
            "type": "String",
            "metadata": {
                "description": "The extension instance name."
            }
        },
        "ExtensionVersion": {
            "defaultValue": "<osm-arc-version>",
            "type": "String",
            "metadata": {
                "description": "The extension type version."
            }
        },
        "ExtensionType": {
            "defaultValue": "Microsoft.openservicemesh",
            "type": "String",
            "metadata": {
                "description": "The extension type."
            }
        },
        "ReleaseTrain": {
            "defaultValue": "Stable",
            "type": "String",
            "metadata": {
                "description": "The release train."
            }
        }
    },
    "functions": [],
    "resources": [
        {
            "type": "Microsoft.KubernetesConfiguration/extensions",
            "apiVersion": "2020-07-01-preview",
            "name": "[parameters('ExtensionInstanceName')]",
            "properties": {
                "extensionType": "[parameters('ExtensionType')]",
                "releaseTrain": "[parameters('ReleaseTrain')]",
                "version": "[parameters('ExtensionVersion')]"
            },
            "scope": "[concat('Microsoft.Kubernetes/connectedClusters/', parameters('ConnectedClusterName'))]"
        }
    ]
}

Atur variabel lingkungan:

export TEMPLATE_FILE_NAME=<template-file-path>
export DEPLOYMENT_NAME=<desired-deployment-name>

Jalankan perintah di bawah ini untuk menginstal ekstensi OSM menggunakan az CLI:

az deployment group create --name $DEPLOYMENT_NAME --resource-group $RESOURCE_GROUP --template-file $TEMPLATE_FILE_NAME

Anda sekarang dapat melihat sumber daya OSM dan menggunakan ekstensi OSM di kluster Anda.

Menginstal OSM dengan dukungan Azure Arc menggunakan kebijakan bawaan

Kebijakan bawaan tersedia pada portal Azure di bawah kategori Kubernetes dengan nama kluster Kubernetes dengan dukungan Azure Arc harus menginstal ekstensi Open Service Mesh. Kebijakan ini dapat ditetapkan pada cakupan langganan atau grup sumber daya. Tindakan default dari kebijakan ini adalah Sebarkan jika tidak ada. Namun, Anda dapat memilih untuk hanya mengaudit kluster untuk penginstalan ekstensi dengan mengubah parameter selama penugasan. Anda juga akan diminta untuk menentukan versi yang ingin Anda instal (v1.0.0-1 atau lebih tinggi) sebagai parameter.

Memvalidasi penginstalan

Jalankan perintah berikut.

az k8s-extension show --cluster-type connectedClusters --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name osm

Anda harus melihat output JSON yang mirip dengan yang di bawah ini:

{
  "autoUpgradeMinorVersion": true,
  "configurationSettings": {},
  "creationTime": "2021-04-29T19:22:00.7649729+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.openservicemesh",
  "id": "/subscriptions/<subscription-id>/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Kubernetes/connectedClusters/$CLUSTER_NAME/providers/Microsoft.KubernetesConfiguration/extensions/osm",
  "identity": null,
  "installState": "Installed",
  "lastModifiedTime": "2021-04-29T19:22:00.7649731+00:00",
  "lastStatusTime": "2021-04-29T19:23:27.642+00:00",
  "location": null,
  "name": "osm",
  "releaseTrain": "stable",
  "resourceGroup": "$RESOURCE_GROUP",
  "scope": {
    "cluster": {
      "releaseNamespace": "arc-osm-system"
    },
    "namespace": null
  },
  "statuses": [],
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "x.y.z"
}

Konfigurasi pengontrol OSM

OSM menyebarkan sumber daya MeshConfig osm-mesh-config sebagai bagian dari bidang kontrolnya di ruang nama sistem-arc-osm. Tujuan dari MeshConfig ini adalah untuk memberikan pemilik mesh / operator kemampuan untuk memperbarui beberapa konfigurasi mesh berdasarkan kebutuhan mereka. untuk melihat nilai default, gunakan perintah berikut.

kubectl describe meshconfig osm-mesh-config -n arc-osm-system

Output akan menunjukkan nilai default:

  Certificate:
    Cert Key Bit Size:               2048
    Service Cert Validity Duration:  24h
  Feature Flags:
    Enable Async Proxy Service Mapping:  false
    Enable Egress Policy:                true
    Enable Envoy Active Health Checks:   false
    Enable Ingress Backend Policy:       true
    Enable Multicluster Mode:            false
    Enable Retry Policy:                 false
    Enable Snapshot Cache Mode:          false
    Enable WASM Stats:                   true
  Observability:
    Enable Debug Server:  false
    Osm Log Level:        info
    Tracing:
      Enable:  false
  Sidecar:
    Config Resync Interval:            0s
    Enable Privileged Init Container:  false
    Log Level:                         error
    Resources:
  Traffic:
    Enable Egress:                          false
    Enable Permissive Traffic Policy Mode:  true
    Inbound External Authorization:
      Enable:              false
      Failure Mode Allow:  false
      Stat Prefix:         inboundExtAuthz
      Timeout:             1s
    Inbound Port Exclusion List:
    Outbound IP Range Exclusion List:
    Outbound Port Exclusion List:

Lihat referensi API Konfigurasi untuk informasi selengkapnya. Perhatikan bahwa spec.traffic.enablePermissiveTrafficPolicyMode diatur ke true. Ketika OSM berada dalam mode kebijakan lalu lintas permisif, penegakan kebijakan lalu lintas SMI dilewati. Dalam mode ini, OSM secara otomatis menemukan layanan yang merupakan bagian dari layanan jala dan program aturan kebijakan lalu lintas pada setiap sidecar proksi Utusan untuk dapat berkomunikasi dengan layanan ini.

osm-mesh-configjuga dapat dilihat di portal Azure dengan memilih Edit konfigurasi di bagian Open Service Mesh kluster.

Tombol Edit konfigurasi yang terletak di atas bagian Open Service Mesh

Membuat perubahan pada konfigurasi pengontrol OSM

Catatan

Nilai di MeshConfig osm-mesh-config dipertahankan di seluruh peningkatan versi. Perubahan pada osm-mesh-config dapat dilakukan dengan menggunakan perintah patch kubectl. Dalam contoh berikut, mode kebijakan lalu lintas permisif diubah menjadi salah.

kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":false}}}' --type=merge

Jika nilai yang salah digunakan, validasi pada MESHConfig CRD akan mencegah perubahan dengan pesan kesalahan yang menjelaskan mengapa nilai tersebut tidak valid. Misalnya, perintah di bawah ini menunjukkan apa yang terjadi jika kita menambal enableEgress ke nilai non-boolean.

kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"traffic":{"enableEgress":"no"}}}'  --type=merge
# Validations on the CRD will deny this change
The MeshConfig "osm-mesh-config" is invalid: spec.traffic.enableEgress: Invalid value: "string": spec.traffic.enableEgress in body must be of type boolean: "string"

Atau, untuk mengedit osm-mesh-config di portal Azure, pilih Edit konfigurasi di bagian Open Service Mesh kluster.

Tombol Edit konfigurasi di bagian Open Service Mesh

Menggunakan OSM dengan dukungan Azure Arc

Untuk mulai menggunakan kemampuan OSM, Anda harus terlebih dahulu onboarding namespace aplikasi ke mesh layanan. Unduh OSM CLI dari halaman rilis OSM GitHub. Setelah namespace ditambahkan ke mesh, Anda dapat mengonfigurasi kebijakan SMI untuk mencapai kemampuan OSM yang diinginkan.

Mengonboard namespace ke mesh layanan

Tambahkan namespace ke mesh dengan menjalankan perintah berikut:

osm namespace add <namespace_name>

Namespace dapat di-onboarding dari portal Azure juga dengan memilih +Tambahkan di bagian Open Service Mesh kluster.

Tombol +Tambahkan yang terletak di atas bagian Open Service Mesh

Informasi lebih lanjut tentang layanan onboarding dapat ditemukan di sini.

Mengonfigurasi OSM dengan kebijakan Service Mesh Interface (SMI)

Anda dapat memulai dengan aplikasi sampel atau menggunakan lingkungan pengujian Anda untuk mencoba kebijakan SMI.

Catatan

Jika Anda menggunakan aplikasi sampel, pastikan versinya cocok dengan versi ekstensi OSM yang diinstal pada kluster Anda. Misalnya, jika Anda menggunakan ekstensi OSM v1.0.0, gunakan manifes bookstore dari cabang release-v1.0 repositori upstream OSM.

Mengonfigurasi instans Jaeger, Prometheus, dan Grafana Anda sendiri

Ekstensi OSM tidak menginstal add-on seperti Jaeger, Prometheus, Grafana , dan Flagger sehingga pengguna dapat mengintegrasikan OSM dengan instans mereka sendiri yang berjalan dari alat-alat tersebut sebagai gantinya. Untuk berintegrasi dengan instans Anda sendiri, lihat dokumentasi berikut:

Catatan

Gunakan perintah yang disediakan dalam dokumentasi OSM GitHub dengan hati-hati. Pastikan Anda menggunakan nama arc-osm-system namespace yang benar saat membuat perubahan pada osm-mesh-config.

Memantau aplikasi menggunakan Azure Monitor dan Application Insights (pratinjau)

Azure Monitor dan Azure Application Insights membantu Anda memaksimalkan ketersediaan dan performa aplikasi dan layanan Anda dengan memberikan solusi komprehensif untuk mengumpulkan, menganalisis, dan bertindak berdasarkan telemetri dari lingkungan cloud dan lokal Anda. Open Service Mesh dengan dukungan Azure Arc akan memiliki integrasi mendalam ke kedua layanan Azure ini, dan memberikan pengalaman Azure yang mulus untuk melihat dan menanggapi KPI penting yang disediakan oleh metrik OSM.

Penting

Fitur pratinjau Kubernetes yang mendukung Azure Arc tersedia berdasarkan layanan mandiri dan keikutsertaan. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan mereka dikecualikan dari perjanjian tingkat layanan dan garansi terbatas. Pratinjau Kubernetes yang mendukung Azure Arc sebagian tercakup oleh dukungan pelanggan berdasarkan upaya terbaik.

Ikuti langkah-langkah di bawah ini untuk memungkinkan Azure Monitor mengekstraksi titik akhir Prometheus untuk mengumpulkan metrik aplikasi.

  1. Ikuti panduan yang tersedia di sini untuk memastikan bahwa namespace layanan aplikasi yang ingin Anda pantau di-onboarding ke jala.

  2. Mengekspos titik akhir Prometheus untuk namespace layanan aplikasi.

    osm metrics enable --namespace <namespace1>
    osm metrics enable --namespace <namespace2>
    
  3. Instal ekstensi Azure Monitor menggunakan panduan yang tersedia di sini.

  4. Buat Configmap di namespace kube-system yang memungkinkan Azure Monitor memantau namespace Anda. Misalnya, buat container-azm-ms-osmconfig.yaml dengan yang berikut ini untuk memantau <namespace1> dan <namespace2>:

    kind: ConfigMap
    apiVersion: v1
    data:
      schema-version: v1
      config-version: ver1
      osm-metric-collection-configuration: |-
        # OSM metric collection settings
        [osm_metric_collection_configuration]
          [osm_metric_collection_configuration.settings]
              # Namespaces to monitor
              monitor_namespaces = ["<namespace1>", "<namespace2>"]
    metadata:
      name: container-azm-ms-osmconfig
      namespace: kube-system
    
  5. Menjalankan perintah kubectl berikut ini

    kubectl apply -f container-azm-ms-osmconfig.yaml
    

Mungkin perlu waktu hingga 15 menit agar metrik muncul di Analisis Log. Anda bisa mencoba mengkueri tabel InsightsMetrics.

InsightsMetrics
| where Name contains "envoy"
| extend t=parse_json(Tags)
| where t.app == "namespace1"
  1. Akses kluster Kubernetes Anda yang terhubung dengan Arc menggunakan tautan ini.
  2. Masuk ke Azure Monitor dan navigasi ke tab Laporan untuk mengakses buku kerja OSM.
  3. Pilih namespace rentang & waktu untuk mencakup layanan Anda.

Buku kerja OSM

Tab Permintaan

  • Tab ini memberi Anda ringkasan semua permintaan http yang dikirim melalui layanan ke layanan di OSM.
  • Anda dapat melihat semua layanan dan semua layanan yang berkomunikasi dengannya dengan memilih layanan dalam kisi.
  • Anda dapat melihat total permintaan, meminta latensi P90 tingkat & kesalahan.
  • Anda dapat menelusuri hingga ke tujuan dan melihat tren untuk kode kesalahan/keberhasilan HTTP, tingkat keberhasilan, pemanfaatan sumber daya pod, dan latencies pada persentil yang berbeda.

Tab Koneksi

  • Tab ini memberi Anda ringkasan semua sambungan antara layanan Anda di Open Service Mesh.
  • Koneksi keluar: jumlah total koneksi antara layanan Sumber dan tujuan.
  • Koneksi aktif keluar: jumlah terakhir koneksi aktif antara sumber dan tujuan dalam rentang waktu yang dipilih.
  • Koneksi gagal keluar: jumlah total koneksi yang gagal antara layanan sumber dan tujuan.

Meningkatkan ke versi OSM tertentu

Mungkin ada beberapa downtime dari control plane selama upgrade. Bidang data hanya akan terpengaruh selama peningkatan CRD.

Peningkatan yang didukung

Ekstensi OSM dapat ditingkatkan secara manual di seluruh versi minor dan utama. Namun, peningkatan otomatis (jika diaktifkan) hanya akan berfungsi di seluruh versi minor.

Meningkatkan ke versi OSM tertentu secara manual

Perintah berikut akan meningkatkan ekstensi OSM-Arc ke versi tertentu:

az k8s-extension update --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --release-train stable --name osm --version x.y.z

Mengaktifkan peningkatan otomatis

Jika peningkatan otomatis tidak diaktifkan secara default, perintah berikut dapat dijalankan untuk mengaktifkan peningkatan otomatis. Nilai --auto-upgrade-minor-version saat ini dapat diverifikasi dengan menjalankan az k8s-extension show perintah sebagaimana dirinci dalam tahap Memvalidasi penginstalan .

az k8s-extension update --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --release-train stable --name osm --auto-upgrade-minor-version true

Menghapus instalan OSM dengan dukungan Azure Arc

Gunakan perintah berikut:

az k8s-extension delete --cluster-type connectedClusters --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name osm -y

Verifikasi bahwa instans ekstensi telah dihapus:

az k8s-extension list --cluster-type connectedClusters --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP

Output ini tidak boleh mencakup OSM. Jika Anda tidak memiliki ekstensi lain yang diinstal pada kluster Anda, itu hanya akan menjadi array kosong.

Ketika Anda menggunakan perintah az k8s-extension untuk menghapus ekstensi OSM, namespace arc-osm-system tidak dihapus, dan sumber daya aktual di dalam namespace (seperti konfigurasi webhook yang bermutasi dan osm-controller Pod) akan memakan waktu sekitar ~10 menit untuk dihapus.

Catatan

Gunakan CLI az k8s-extension untuk menghapus instalasi komponen OSM yang dikelola oleh Arc. Menggunakan OSM CLI untuk menghapus instalasi tidak didukung oleh Arc dan dapat mengakibatkan perilaku yang tidak diinginkan.

Pemecahan Masalah

Lihat panduan pemecahan masalah yang tersedia di sini.

Tanya jawab umum

Apakah ekstensi zona OSM dengan dukungan Azure Arc berlebihan?

Ya, semua komponen OSM dengan dukungan Azure Arc disebarkan pada zona ketersediaan dan karenanya zona redundan.

Langkah berikutnya

Ingin mencobanya?
Mulai dengan cepat menggunakan skenario Azure Arc Jumpstart menggunakan Cluster API.