Menyiapkan operator Cluster Services for OpenShift Telemetry

Dokumen ini menjelaskan cara menginstal operator Cluster Services for OpenShift Telemetry dan mengonfigurasinya untuk terhubung dengan cluster OpenShift yang berjalan di instance Compute Engine.

Setelah Anda menginstal dan mengonfigurasinya, operator telemetri ini akan men-deploy daemon telemetri host-network yang terus memantau kondisi cluster dan konfigurasi cluster. Operator mengirimkan metrik yang dikumpulkan ke Workload Manager. Kemudian, Anda dapat menggunakan evaluasi Workload Manager untuk memindai workload yang berjalan di cluster Anda untuk mengetahui penyimpangan dari praktik terbaik untuk cluster OpenShift.

Sebelum memulai

Sebelum menginstal dan mengonfigurasi operator telemetri, Anda harus memastikan bahwa prasyarat berikut terpenuhi:

Mengaktifkan akses ke Cloud API

Compute Engine merekomendasikan konfigurasi instance Anda untuk mengizinkan semua cakupan akses ke semua Cloud API dan hanya menggunakan izin IAM akun layanan instance untuk mengontrol akses keGoogle Cloud resource. Untuk mengetahui informasi selengkapnya, lihat Membuat VM yang menggunakan akun layanan yang dikelola pengguna.

Jika Anda membatasi akses ke Cloud API, operator Telemetri Layanan Cluster untuk OpenShift memerlukan cakupan akses Cloud API minimum berikut pada instance komputasi host:

https://www.googleapis.com/auth/cloud-platform

Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik cakupan.

Jika Anda menjalankan cluster OpenShift pada instance komputasi yang tidak memiliki alamat IP eksternal, Anda harus mengaktifkan Akses Google Pribadi di subnet instance agar operator Cluster Services for OpenShift Telemetry dapat mengakses Google API dan layanan Google. Untuk mengetahui informasi tentang cara mengaktifkan Akses Google Pribadi, lihat Mengonfigurasi Akses Google Pribadi.

Mengautentikasi pengguna ke cluster OpenShift

Untuk melakukan tindakan administratif, Anda atau pengguna Anda harus diautentikasi ke cluster OpenShift menggunakan OpenShift CLI. Untuk mengautentikasi pengguna ke cluster OpenShift, Anda dapat memilih dari opsi berikut:

  • Jalankan perintah berikut dan ikuti perintahnya:

    oc login "https://api.CLUSTER_DOMAIN:6443" -u kubeadmin
    
  • Atau, dapatkan token autentikasi sesi untuk digunakan dengan biner oc. Untuk mendapatkan token ini, buka URL berikut di browser web:

    https://oauth-openshift.apps.CLUSTER_DOMAIN/oauth/token/request
    

Ganti CLUSTER_DOMAIN dengan domain cluster OpenShift Anda. Contoh: mycluster.google.com.

Mengautentikasi operator ke Google Cloud

Agar operator telemetri dapat melakukan autentikasi dan mengakses Google Cloud resource, Anda harus membuat akun layanan untuknya di project Google Cloud Anda.

Anda dapat mengautentikasi operator telemetri sebagai akun layanan menggunakan opsi berikut:

Mengautentikasi operator menggunakan Workload Identity Federation

Untuk mengautentikasi operator telemetri sebagai akun layanan dengan menggunakan Workload Identity Federation, selesaikan langkah-langkah berikut:

  1. Di terminal, ekstrak manifes CredentialsRequest dari paket operator telemetri ke direktori lokal:

    mkdir -p credrequests
    oc image extract us-docker.pkg.dev/workload-agent-products/cluster-services-for-openshift-telemetry/bundle:VERSION --path /manifests/:./credrequests --confirm
    

    Ganti VERSION dengan nomor versi yang Anda daftarkan untuk operator telemetri di OperatorHub. Anda dapat melihat daftar nomor versi bersertifikasi untuk operator telemetri di Red Hat Ecosystem Catalog.

  2. Dengan menggunakan utilitas ccoctl, proses manifes CredentialsRequest yang diekstrak dan sediakan kredensial dan binding Identity and Access Management (IAM) Google Cloud :

    ccoctl gcp create-all \
      --name=cso-telemetry \
      --region=REGION \
      --project=PROJECT_ID \
      --credentials-requests-dir=./credrequests \
      --output-dir=./ccoctl-out
    

    Ganti kode berikut:

    • REGION: region Compute Engine tempat cluster OpenShift Anda berjalan
    • PROJECT_ID: project ID dari Google Cloud project tempat cluster OpenShift Anda berjalan
  3. Terapkan penyedia OpenID Connect (OIDC), peran IAM, dan manifes rahasia yang dihasilkan ke cluster:

    oc apply -f ./ccoctl-out/manifests/
    

Langkah-langkah sebelumnya membuat akun layanan di project Google Cloud Anda dan menetapkan peran IAM berikut kepadanya:

Mengautentikasi operator menggunakan kunci akun layanan

Jika organisasi Anda tidak mendukung penggunaan Workload Identity Federation untuk tujuan autentikasi, Anda dapat mengautentikasi operator telemetri dengan menggunakan kunci akun layanan.

Untuk mengautentikasi operator telemetri sebagai akun layanan dengan menggunakan kunci akun layanan, selesaikan langkah-langkah berikut:

  1. Di terminal, ekstrak manifes CredentialsRequest dari paket operator telemetri ke direktori lokal:

    mkdir -p credrequests
    oc image extract us-docker.pkg.dev/workload-agent-products/cluster-services-for-openshift-telemetry/bundle:VERSION --path /manifests/:./credrequests --confirm
    
  2. Di project Google Cloud , buat akun layanan untuk operator telemetri:

    gcloud iam service-accounts create cso-telemetry-agent \
      --description="Service account for OpenShift Telemetry Operator" \
      --display-name="CSO Telemetry Agent" \
      --project=PROJECT_ID
    

    Ganti PROJECT_ID dengan ID projectGoogle Cloud tempat cluster OpenShift Anda berjalan.

  3. Agar akun layanan dapat mengakses resource Google Cloud , berikan peran IAM yang ditentukan dalam manifes CredentialsRequest kepada akun layanan. Manifes ini mencakup kumpulan minimum peran IAM berikut yang diperlukan operator:

    Untuk setiap peran IAM yang ditentukan dalam manifes ini, jalankan perintah berikut:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:cso-telemetry-agent@PROJECT_ID.iam.gserviceaccount.com" \
      --role="IAM_ROLE"
    

    Ganti IAM_ROLE dengan peran IAM yang ingin Anda berikan ke akun layanan.

  4. Buat dan download kunci pribadi untuk akun layanan:

    gcloud iam service-accounts keys create ./sa_key.json \
      --iam-account=cso-telemetry-agent@PROJECT_ID.iam.gserviceaccount.com \
      --project=PROJECT_ID
    
  5. Di namespace openshift-operators, buat secret bernama telemetry-agent-sa untuk kunci akun layanan yang Anda buat:

    oc create secret generic telemetry-agent-sa \
      --from-file=workload_agent_sa_key.json=./sa_key.json \
      -n openshift-operators
    

Menginstal operator Cluster Services for OpenShift Telemetry

Anda dapat menginstal operator Cluster Services for OpenShift Telemetry menggunakan konsol web Red Hat OpenShift Container Platform atau manifes YAML berlangganan deklaratif. Untuk mengetahui informasi tentang opsi ini, lihat dokumen Red Hat Menambahkan Operator ke cluster.

Konsol web OpenShift

Untuk menginstal operator telemetri di cluster OpenShift menggunakan konsol web OpenShift Container Platform, selesaikan langkah-langkah berikut:

  1. Login ke konsol web Red Hat OpenShift.
  2. Pastikan Anda berada di perspektif Administrator.
  3. Di navigasi sebelah kiri, luaskan bagian Operators, lalu klik OperatorHub.
  4. Di kotak penelusuran di bagian Semua item, masukkan Cluster Services for OpenShift Telemetry.

    Atau, Anda dapat melakukan penelusuran dengan memasukkan Google. Hal ini memfilter operator yang disediakan oleh Google, yang mencakup operator Cluster Services for OpenShift Telemetry.

  5. Klik kartu bernama Cluster Services for OpenShift Telemetry.

  6. Di panel Cluster Services for OpenShift Telemetry, klik Install.

  7. Di halaman Install Operator, selesaikan langkah-langkah berikut:

    1. Di kolom Update channel, pilih stable.
    2. Di kolom Installation mode, pilih A specific namespace on the cluster.
    3. Di kolom Installed Namespace, pilih project openshift-operators atau buat namespace pemantauan kustom.
    4. Di kolom Approval Strategy, pilih Automatic atau Manual.
    5. Klik Instal.
  8. Untuk memverifikasi bahwa operator berhasil diinstal, selesaikan langkah-langkah berikut:

    1. Buka Operator > Operator Terinstal.
    2. Dalam daftar operator, telusuri dan verifikasi bahwa operator Cluster Services for OpenShift Telemetry ada.
    3. Pastikan kolom Status menampilkan nilai Berhasil atau Up to date.
    4. Atau, klik operator untuk melihat detailnya.

OpenShift CLI

Untuk menginstal operator telemetri di cluster OpenShift menggunakan OpenShift CLI dan manifes YAML Subscription deklaratif, selesaikan langkah-langkah berikut:

  1. Buat manifes resource kustom Subscription bernama subscription.yaml dengan konfigurasi berikut:

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: google-cloud-cluster-services-for-openshift-telemetry
      namespace: openshift-operators
    spec:
      channel: stable
      installPlanApproval: Automatic
      name: google-cloud-cluster-services-for-openshift-telemetry
      source: certified-operators
      sourceNamespace: openshift-marketplace
    
  2. Terapkan langganan ke cluster Anda:

    oc apply -f subscription.yaml
    
  3. Pastikan operator telemetri berhasil diinstal dengan memeriksa status ClusterServiceVersion:

    oc get csv -n openshift-operators
    

    Di output, verifikasi bahwa nilai di kolom PHASE untuk cluster-services-for-openshift-telemetry adalah Succeeded.

Mengaktifkan pengumpulan metrik

Agar operator dapat mengumpulkan metrik dari cluster OpenShift, Anda harus menerapkan resource kustom TelemetryConfig. Resource ini men-deploy pod daemon di node cluster Anda untuk Agen untuk Compute Workloads.

Untuk mengizinkan operator mengumpulkan metrik dari cluster OpenShift Anda, selesaikan langkah-langkah berikut:

  1. Buat manifes resource kustom TelemetryConfig bernama telemetryconfig.yaml:

    • Jika Anda telah menyiapkan autentikasi untuk operator telemetri dengan menggunakan Workload Identity Federation, gunakan resource kustom minimum berikut. Resource kustom ini otomatis mengambil kredensial yang disimpan di secret google-cloud-cluster-services-telemetry-agent-wif-secret.

      apiVersion: cluster-services-openshift.cloud.google.com/v1alpha1
      kind: TelemetryConfig
      metadata:
        name: telemetryconfig
        namespace: openshift-operators
      spec:
        enabled: true
      
    • Jika Anda telah menyiapkan autentikasi untuk operator telemetri dengan menggunakan kunci akun layanan, gunakan resource kustom berikut:

      apiVersion: cluster-services-openshift.cloud.google.com/v1alpha1
      kind: TelemetryConfig
      metadata:
        name: telemetryconfig
        namespace: openshift-operators
      spec:
        enabled: true
        serviceAccountCredentialsSecretName: telemetry-agent-sa
        serviceAccountCredentialsPath: SERVICE_ACCOUNT_KEY_PATH
      

      Ganti SERVICE_ACCOUNT_KEY_PATH dengan jalur tempat Anda memasang kunci akun layanan. Nama pemasangan harus cocok dengan file JSON kunci akun layanan. Contoh: /var/run/secrets/google/workload_agent_sa_key.json.

  2. Terapkan resource kustom ke cluster Anda:

    oc apply -f telemetryconfig.yaml
    
  3. Pastikan status pod agen telemetri adalah Running:

    oc get pods -n openshift-operators -l app.kubernetes.io/name=workloadagent-operator
    

    Anda juga dapat memverifikasi pengumpulan metrik dengan memeriksa log pod:

    "openshiftmetrics/openshiftmetrics.go:126","msg":"Metric payload after collection","pid":5,"context":"OpenShiftMetricCollection","payload":"version:\"v0.1.0-pre\" agent_version:\"1.3\"

Melihat log operator di Cloud Logging

Secara default, log dari operator Cluster Services for OpenShift Telemetry dikirim ke Cloud Logging. Anda dapat melihat log ini di Logging. Untuk melihat log operator di Logging, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Di panel kueri, masukkan kueri:

    • Untuk memfilter log untuk project Google Cloud , gunakan kueri berikut:

      logName="projects/PROJECT_ID/logs/google-cloud-workload-agent"

      Ganti PROJECT_ID dengan project ID dari projectGoogle Cloud tempat cluster OpenShift Anda berjalan.

    • Jika Anda menjalankan beberapa cluster di project Google Cloud dan ingin memfilter log dari cluster tertentu, gunakan kueri berikut:

      resource.labels.instance_id=("COMPUTE_INSTANCE_ID_1" OR "COMPUTE_INSTANCE_ID_2" OR "COMPUTE_INSTANCE_ID_3")

      Ganti COMPUTE_INSTANCE_ID dengan ID Instance instance Compute Engine yang menjalankan cluster OpenShift Anda. Untuk mengetahui informasi tentang cara menemukan ID instance komputasi Anda, lihat Melihat detail VM.

  3. Klik Run query.

Menyiapkan kebijakan pemberitahuan berbasis log

Secara default, log dari operator telemetri dikirim ke Cloud Logging. Sebaiknya konfigurasi kebijakan pemberitahuan berdasarkan log operator telemetri, yang memberi tahu Anda saat pesan tertentu muncul di log. Peringatan ini membantu Anda memantau fungsi operator dan memecahkan masalah.

Untuk mengonfigurasi kebijakan pemberitahuan berdasarkan log yang dihasilkan oleh operator telemetri, selesaikan langkah-langkah berikut:

  1. Pastikan Anda telah memenuhi prasyarat yang dijelaskan di bagian "Sebelum memulai" pada artikel Mengonfigurasi kebijakan pemberitahuan berbasis log.

  2. Di konsol Google Cloud , buka halaman Logs Explorer.

    Buka Logs Explorer

  3. Di panel kueri, masukkan kueri yang diperlukan:

    logName="projects/PROJECT_ID/logs/google-cloud-workload-agent"
    severity=SEVERITY_LEVEL

    Ganti SEVERITY_LEVEL dengan nilai tingkat keparahan yang didukung, yang mencakup: DEBUG, INFO, WARNING, dan ERROR. Sebaiknya gunakan ERROR atau nilai tingkat log yang lebih tinggi.

  4. Klik Run query untuk memvalidasi kueri.

  5. Buat pemberitahuan log.

    Untuk mempelajari cara membuat pemberitahuan ini, lihat langkah ketiga dalam prosedur yang dijelaskan di Membuat kebijakan pemberitahuan berbasis log menggunakan Logs Explorer.

Opsional: Mengaktifkan evaluasi khusus produksi

Dari praktik terbaik yang didukung Workload Manager untuk cluster OpenShift, beberapa hanya diterapkan pada lingkungan produksi. Workload Manager membuat perbedaan ini dengan memeriksa cluster, deployment, atau pod Anda untuk label environment. Jika nilai yang terkait dengan label ini adalah production, maka Workload Manager menganggap resource tersebut sebagai resource produksi.

Untuk memberi tahu Workload Manager bahwa cluster termasuk dalam lingkungan produksi, selesaikan langkah-langkah berikut:

  1. Buat namespace workloadmanager:

    oc create namespace workloadmanager
    
  2. Buat ConfigMap di namespace workloadmanager menggunakan konfigurasi berikut:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: wlm-cluster-environment
      namespace: workloadmanager
    data:
      # Options: "production" or "non-production"
      environment: "production"
    

Untuk memberi tahu Workload Manager bahwa deployment atau pod termasuk dalam lingkungan produksi, tambahkan label bernama environment ke definisi resource menggunakan salah satu opsi berikut:

  • Terapkan konfigurasi berikut secara manual:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-app
      labels:
        # Options: "production" or "non-production"
        environment: "production"
    spec:
    ...
    
  • Jalankan perintah berikut:

    oc label --overwrite deployments DEPLOYMENT_NAME environment=production
    

    Ganti DEPLOYMENT_NAME dengan nama deployment Anda.

Jika Anda menerapkan label environment di cluster OpenShift serta deployment atau pod yang berjalan di cluster, Workload Manager akan memprioritaskan nilai label yang ditetapkan untuk deployment atau pod daripada nilai label yang ditetapkan untuk cluster.

Opsional: Memicu pengumpulan metrik

Setelah Anda berhasil menyiapkan operator Cluster Services for OpenShift Telemetry di cluster OpenShift, operator akan mengumpulkan metrik dari cluster dan mengirimkannya ke Workload Manager setiap 30 menit.

Secara opsional, alih-alih menunggu 30 menit untuk pengumpulan metrik terjadwal, Anda dapat memicu operator secara manual untuk mengumpulkan metrik dan mengirimkannya ke Workload Manager.

Untuk memicu operator secara manual untuk pengumpulan metrik, selesaikan langkah-langkah berikut:

  1. Buka terminal Anda.

  2. Temukan nama pod yang sedang berjalan:

    POD_NAME=$(oc get pods -l app.kubernetes.io/name=workloadagent-operator --field-selector=status.phase=Running -o=name)
    
  3. Memicu operator untuk mengumpulkan dan mengirim metrik:

    oc debug -t $POD_NAME -- /openshift-docker-entrypoint.sh
    

Langkah berikutnya