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:
- Anda menggunakan Red Hat OpenShift Container Platform versi 4.18 atau yang lebih baru.
- Anda telah men-deploy cluster OpenShift di satu atau beberapa instance komputasi.
- Administrator Anda telah memberi Anda peran ClusterAdmin untuk cluster Anda di Red Hat OpenShift Container Platform.
- Anda telah mendownload dan menginstal Google Cloud CLI di terminal Anda. Jika Anda menggunakan Cloud Shell, Anda dapat melewati prasyarat ini.
- Anda telah menginstal OpenShift CLI (
oc) di cluster Anda. Untuk mengetahui informasi tentang cara menginstal CLI ini, lihat dokumen Red Hat Menginstal OpenShift CLI. - Anda telah menginstal utilitas Cloud Credentials Operator (
ccoctl). Untuk mengetahui informasi tentang cara menginstal utilitas ini, lihat dokumen Red Hat Cara mendapatkan alatccoctluntuk OpenShift 4. - Anda telah meninjau region yang didukung tempat Anda dapat membuat evaluasi Workload Manager.
- Administrator Anda telah memberi Anda peran IAM yang diperlukan untuk membuat dan menjalankan evaluasi Workload Manager.
- Anda telah mengaktifkan akses ke Cloud API.
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 kubeadminAtau, 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:
- (Direkomendasikan) Autentikasi menggunakan Workload Identity Federation
- Autentikasi menggunakan kunci akun layanan
Mengautentikasi operator menggunakan Workload Identity Federation
Untuk mengautentikasi operator telemetri sebagai akun layanan menggunakan Workload Identity Federation, selesaikan langkah-langkah berikut:
Di terminal Anda, ekstrak manifes
CredentialsRequestdari 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 --confirmGanti
VERSIONdengan 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.Dengan menggunakan utilitas
ccoctl, proses manifesCredentialsRequestyang 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-outGanti kode berikut:
REGION: region Compute Engine tempat cluster OpenShift Anda berjalanPROJECT_ID: project ID dari Google Cloud project tempat cluster OpenShift Anda berjalan
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:
- Untuk mengumpulkan metrik dari instance komputasi:
Compute Viewer (
roles/compute.viewer) - Untuk menulis data ke data warehouse Workload Manager:
Workload Manager Insights Writer (
roles/workloadmanager.insightWriter) - Untuk mengirim log operator ke Cloud Logging:
Logs Writer (
roles/logging.logWriter)
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:
Di terminal Anda, ekstrak manifes
CredentialsRequestdari 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 --confirmDi 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_IDGanti
PROJECT_IDdengan ID Google Cloud project tempat cluster OpenShift Anda berjalan.Agar akun layanan dapat mengakses Google Cloud resource, berikan peran IAM yang ditentukan dalam
CredentialsRequestmanifes ke akun layanan. Manifes ini mencakup kumpulan minimum peran IAM berikut yang diperlukan operator:- Untuk mengumpulkan metrik dari instance komputasi:
Compute Viewer (
roles/compute.viewer) - Untuk menulis data ke data warehouse Workload Manager:
Workload Manager Insights Writer (
roles/workloadmanager.insightWriter) - Untuk mengirim log operator ke Cloud Logging:
Logs Writer (
roles/logging.logWriter)
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_ROLEdengan peran IAM yang ingin Anda berikan ke akun layanan.- Untuk mengumpulkan metrik dari instance komputasi:
Compute Viewer (
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_IDDi namespace
openshift-operators, buat rahasia bernamatelemetry-agent-sauntuk 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:
- Login ke konsol web Red Hat OpenShift.
- Pastikan Anda berada dalam perspektif Administrator.
- Di navigasi kiri, luaskan bagian Operators , lalu klik OperatorHub.
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.
Klik kartu bernama Cluster Services for OpenShift Telemetry.
Di panel Cluster Services for OpenShift Telemetry, klik Install.
Di halaman Install Operator, selesaikan langkah-langkah berikut:
- Di kolom Update channel, pilih stable.
- Di kolom Installation mode, pilih A specific namespace on the cluster.
- Di kolom Installed Namespace, pilih project openshift-operators atau buat namespace pemantauan kustom.
- Di kolom Approval Strategy, pilih Automatic atau Manual.
- Klik Install.
Untuk memverifikasi bahwa operator berhasil diinstal, selesaikan langkah-langkah berikut:
- Buka Operators > Installed Operators.
- Dalam daftar operator, telusuri dan verifikasi bahwa operator Cluster Services for OpenShift Telemetry ada.
- Verifikasi bahwa kolom Status menampilkan nilai Succeeded atau Up to date.
- 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:
Buat manifes resource kustom
Subscriptionbernamasubscription.yamldengan 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-marketplaceTerapkan langganan ke cluster Anda:
oc apply -f subscription.yamlVerifikasi bahwa operator telemetri berhasil diinstal dengan memeriksa status
ClusterServiceVersion:oc get csv -n openshift-operatorsDalam output, verifikasi bahwa nilai di kolom
PHASEuntukcluster-services-for-openshift-telemetryadalahSucceeded.
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:
Buat manifes resource kustom
TelemetryConfigbernamatelemetryconfig.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: trueJika 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_PATHGanti
SERVICE_ACCOUNT_KEY_PATHdengan 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.
Terapkan resource kustom ke cluster Anda:
oc apply -f telemetryconfig.yamlVerifikasi bahwa status pod agen telemetri adalah Running:
oc get pods -n openshift-operators -l app.kubernetes.io/name=workloadagent-operatorAnda 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:
Di Google Cloud konsol, buka halaman Logs Explorer.
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_IDdengan 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_IDdengan 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.
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:
Pastikan Anda telah memenuhi prasyarat yang dijelaskan di bagian "Sebelum memulai" di Mengonfigurasi kebijakan pemberitahuan berbasis log.
Di Google Cloud konsol, buka halaman Logs Explorer.
Di panel kueri, masukkan kueri yang diperlukan:
logName="projects/PROJECT_ID/logs/google-cloud-workload-agent" severity=SEVERITY_LEVEL
Ganti
SEVERITY_LEVELdengan nilai tingkat keparahan yang didukung, yang mencakup:DEBUG,INFO,WARNING, danERROR. Sebaiknya gunakanERRORatau nilai tingkat log yang lebih tinggi.Klik Run query untuk memvalidasi kueri.
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:
Buat namespace
workloadmanager:oc create namespace workloadmanagerBuat
ConfigMapdi namespaceworkloadmanagermenggunakan 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=productionGanti
DEPLOYMENT_NAMEdengan 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:
Buka terminal Anda.
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)Picu operator untuk mengumpulkan dan mengirim metrik:
oc debug -t $POD_NAME -- /openshift-docker-entrypoint.sh
Langkah berikutnya
- Membuat dan menjalankan evaluasi
- Mempelajari praktik terbaik Workload Manager untuk OpenShift