Menyiapkan operator Cluster Services for OpenShift Telemetry

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

Setelah Anda menginstal dan mengonfigurasinya, operator telemetri ini men-deploy daemon telemetri jaringan host yang terus memantau kesehatan 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 guna 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 resourceGoogle 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 setidaknya 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 pada instance komputasi yang tidak memiliki alamat IP eksternal, Anda harus mengaktifkan Akses Google Pribadi pada 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 CLI OpenShift. Untuk mengautentikasi pengguna ke cluster OpenShift, Anda dapat memilih dari opsi berikut:

  • Jalankan perintah berikut dan ikuti petunjuknya:

    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 resource Google Cloud, Anda harus membuat akun layanan untuk operator tersebut 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 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 langganan 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 binding dan kredensial Google Cloud Identity and Access Management (IAM):

    • (Direkomendasikan) Untuk OpenShift versi 4.22 atau yang lebih baru:

      Sebaiknya gunakan OpenShift versi 4.22 atau yang lebih baru dengan flag --key-storage-method=pool-jwk-file untuk menyimpan JSON Web Key Set (JWKS) cluster langsung di Workload Identity Pool Provider, sehingga tidak perlu membuat bucket Cloud Storage:

      ccoctl gcp create-all \
        --name=NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --credentials-requests-dir=./credrequests \
        --output-dir=./ccoctl-out \
        --key-storage-method=pool-jwk-file
      
    • Untuk OpenShift versi 4.18 hingga 4.21:

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

    Ganti kode berikut:

    • NAME: nama untuk kredensial dan resource yang dibuat oleh utilitas ccoctl. Sebaiknya tentukan nama yang unik dan sangat acak (seperti menyertakan akhiran alfanumerik acak) untuk cluster atau organisasi Anda.
    • REGION: region Compute Engine tempat cluster OpenShift Anda berjalan
    • PROJECT_ID: project ID dari project Google Cloud tempat cluster OpenShift Anda berjalan
  3. Terapkan penyedia OpenID Connect (OIDC), peran IAM, dan manifes secret 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. Dalam 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 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 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 Anda 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 sebelah kiri, luaskan bagian Operators, lalu klik OperatorHub.
  4. Di kotak 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 Instal.
  8. Untuk memastikan 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. Pastikan kolom Status menampilkan nilai Succeeded 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, pastikan 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 Workload Komputasi.

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 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 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 project Google Cloud Anda, 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, 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 memberi tahu Anda saat pesan tertentu muncul di log. Notifikasi 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 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 level log yang lebih tinggi.

  4. Klik Run query untuk memvalidasi kueri.

  5. Membuat 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 label environment pada cluster, deployment, atau pod Anda. 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 pada 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, daripada 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