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 pada instance Compute Engine.

Setelah Anda menginstal dan mengonfigurasinya, operator telemetri ini akan men-deploy daemon telemetri jaringan host yang terus memantau status health cluster dan konfigurasi cluster. Operator akan 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 dari akun layanan instance untuk mengontrol akses ke resource.Google Cloud Untuk mengetahui informasi selengkapnya, lihat Membuat VM yang menggunakan akun layanan yang dikelola pengguna.

Jika Anda membatasi akses ke Cloud API, operator Cluster Services for OpenShift Telemetry memerlukan cakupan akses Cloud API 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 di 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 mengautentikasi dirinya sendiri dan mengakses Google Cloud resource, Anda harus membuat akun layanan untuknya di Google Cloud project 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 menggunakan Workload Identity Federation, selesaikan langkah-langkah berikut:

  1. Di terminal Anda, 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 langgan untuk operator telemetri di OperatorHub. Anda dapat melihat daftar nomor versi bersertifikasi untuk operator telemetri di Katalog Ekosistem Red Hat.

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

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

    Ganti kode berikut:

  3. Terapkan manifes penyedia OpenID Connect (OIDC), peran IAM, dan 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 ke akun layanan tersebut:

Mengautentikasi operator menggunakan kunci akun layanan

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

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

  1. Di terminal Anda, 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 Anda, 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 Google Cloud project tempat cluster OpenShift Anda berjalan.

  3. Agar akun layanan dapat mengakses Google Cloud resource, berikan peran IAM yang ditentukan dalam CredentialsRequest manifes ke 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 rahasia 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 langganan 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 dalam perspektif Administrator.
  3. Di navigasi kiri, luaskan bagian Operators , lalu klik OperatorHub.
  4. Di kolom penelusuran di bagian All items, masukkan Cluster Services for OpenShift Telemetry.

    Atau, Anda dapat menelusuri dengan memasukkan Google. Tindakan ini akan 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 Install.
  8. Untuk memverifikasi bahwa operator berhasil diinstal, selesaikan langkah-langkah berikut:

    1. Buka Operators > Installed Operators.
    2. Dalam daftar operator, telusuri dan verifikasi bahwa operator Cluster Services for OpenShift Telemetry ada.
    3. Verifikasi bahwa kolom Status menampilkan nilai Succeeded atau Up to date.
    4. Secara opsional, 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. Verifikasi bahwa operator telemetri berhasil diinstal dengan memeriksa status ClusterServiceVersion:

    oc get csv -n openshift-operators
    

    Dalam 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, Anda harus menerapkan resource kustom TelemetryConfig. Resource ini men-deploy pod daemon di node cluster Anda untuk Agent for Compute Workloads.

Agar operator dapat 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 menggunakan Workload Identity Federation, gunakan resource kustom minimum berikut. Resource kustom ini secara otomatis mengambil kredensial yang disimpan dalam rahasia 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 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. Verifikasi bahwa 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 Google Cloud konsol, buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Di panel kueri, masukkan kueri:

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

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

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

    • Jika Anda menjalankan beberapa cluster di Google Cloud project Anda 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 Instance ID dari 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 konfigurasikan kebijakan pemberitahuan berdasarkan log operator telemetri, yang akan memberi tahu Anda saat pesan tertentu muncul di log. Pemberitahuan 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" di Mengonfigurasi kebijakan pemberitahuan berbasis log.

  2. Di Google Cloud konsol, 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 ke 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, Workload Manager akan 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. Picu operator untuk mengumpulkan dan mengirim metrik:

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

Langkah berikutnya