全部产品
Search
文档中心

Container Service for Kubernetes:Instal HistoryServer di ACK

更新时间:Jul 02, 2025

Dashboard Ray hanya tersedia saat kluster sedang berjalan. Setelah kluster dihentikan, pengguna tidak dapat mengakses log historis dan data pemantauan. Topik ini menjelaskan fitur HistoryServer RayCluster yang mengumpulkan log node secara real-time selama operasi kluster dan menyimpannya secara persisten di Object Storage Service (OSS), memungkinkan Anda untuk meninjau catatan historis bahkan setelah kluster didaur ulang.

Prasyarat

  • Setelah HistoryServer diaktifkan, PostStartHook dari pod yang dibuat oleh RayCluster akan ditimpa. Jika Anda ingin menggunakan PostStartHook, tambahkan skrip berikut. Skrip ini menulis nodeid Ray ke file /tmp/ray/init.log, sehingga sidecar HistoryServer Collector dapat membaca dan menggunakannya.

GetNodeId(){
  while true;
  do
    nodeid=$(ps -ef | grep raylet | grep node_id | grep -v grep | grep -oP '(?<=--node_id=)[^ ]*' | tr -d '\n')
    if [ -n "$nodeid" ]; then
      echo "$(date) raylet started: \"$(ps -ef | grep raylet | grep node_id | grep -v grep | grep -oP '(?<=--node_id=)[^ ]*')\" => ${nodeid}" >> /tmp/ray/init.log
      echo $nodeid > /tmp/ray/alibabacloud_raylet_node_id
      break
    else
      echo "$(date) raylet not start >> /tmp/ray/init.log"
      sleep 1
    fi
  done
}
GetNodeId
    
  • Setelah HistoryServer diaktifkan, ServiceAccount dari pod yang dibuat oleh RayCluster akan diganti. Aturan penamaan baru untuk ServiceAccount adalah ServiceAccountPrefix-RayClusterName. Jika Anda ingin menggunakan ServiceAccount kustom, pastikan konfigurasinya sesuai dengan aturan pembuatan.

  • Versi Kuberay yang diinstal harus lebih baru dari 1.2.1.5. Untuk informasi lebih lanjut, lihat Instal KubeRay di ACK.

1. Aktifkan fitur RRSA untuk kluster

  1. Masuk ke Konsol ACK. Di panel navigasi sisi kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel sisi kiri, klik Cluster Information.

  3. Aktifkan fitur RAM Roles for Service Accounts (RRSA) OpenID Connect (OIDC) untuk kluster. Di halaman kluster, pilih Cluster Information > Basic Information > Keamanan dan Audit, lalu klik Aktifkan di sebelah parameter RRSA OIDC. Untuk informasi lebih lanjut tentang operasi tersebut, lihat Aktifkan selama pembuatan kluster.

image

2. Buat peran RRSA

  1. Buat peran RRSA.

    Masuk ke Konsol RAM sebagai administrator RAM.Di panel navigasi sisi kiri, pilih Identities > Roles. Di halaman Roles, klik Create Role dan pilih Identity Provider sebagai tipe entitas tepercaya.

    1. Tambahkan entitas utama.

      Tipe Penyedia Identitas: Pilih kluster tempat RRSA OIDC diaktifkan.

      image

    2. Tambahkan kondisi.

      Asosiasikan ServiceAccount tertentu. Setelah peran RRSA dibuat, asosiasikan peran RRSA dengan ServiceAccount tertentu di kluster.image

      Kondisi

      Nilai

      Kunci

      oidc:sub

      Operator

      StringLike

      Nilai

      system:serviceaccount:*:ray-historyserver*

      Catatan
      • Karakter asterisk (*) mewakili karakter wildcard, dan <ray-historyserver> sesuai dengan serviceAccountPrefix dalam operasi selanjutnya.

      • ray-historyserver adalah bagian kustom yang harus sama dengan serviceAccountPrefix saat menginstal HistoryServer.

      Catatan

      Jika Anda menggunakan akun layanan kustom, Anda harus mengklik Add statement untuk menambahkan dua entitas utama dalam peran RRSA yang sama, serta menambahkan kondisi berikut untuk setiap entitas utama:

      • Entitas Utama 1: Penyedia Identitas

        Kondisi

        Nilai

        Kunci

        oidc:sub

        Operator

        StringEquals

        Nilai

        system:serviceaccount:kuberay:ray-historyserver

      • Entitas Utama 2: Penyedia Identitas

        Kondisi

        Nilai

        Kunci

        oidc:sub

        Operator

        StringLike

        Nilai

        system:serviceaccount:*:rhs*

      Dua akun layanan tersebut adalah system:serviceaccount:kuberay:ray-historyserver dan system:serviceaccount:*:rhs*, di mana rhs adalah bagian yang dapat dikustomisasi.

  2. Tambahkan izin ke peran RRSA.

    1. Tambahkan izin AliyunARMSReadOnlyAccess ke peran untuk akses baca-saja ke Application Real-Time Monitoring Service (ARMS).

      image

    2. Tambahkan izin AliyunOSSFullAccess ke peran untuk mengelola OSS. Langkah-langkahnya sama seperti di atas.

      Penting

      Topik ini memberikan peran izin OSS penuh. Dalam skenario nyata, kami sarankan Anda menggunakan otorisasi presisi untuk mengontrol ruang lingkup izin.

3. Buat aplikasi OAuth

  1. Buat dan konfigurasikan aplikasi perusahaan OAuth.

    Penting

    Untuk informasi lebih lanjut tentang cara terhubung ke HistoryServer melalui Internet, lihat Konfigurasikan akses Internet.

    image

    Catatan

    Alamat callback adalah: http://localhost:8080/auth/callback. localhost:8080 adalah nama domain HistoryServer, yang sesuai dengan CallbackServiceName dalam operasi selanjutnya dan harus ditentukan saat menginstal HistoryServer. /auth/callback adalah akhiran jalur tetap.

  2. Konfigurasikan aplikasi OAuth.

    1. Tambahkan cakupan OAuth.

      • aliuid

        Dapatkan UID Alibaba Cloud (RAM User atau ID Akun Alibaba).

      • profile

        Dapatkan profil seperti nama pengguna pengguna. (Akses login akun utama mendapatkan nama login, dan login pengguna RAM mendapatkan nama prinsipal pengguna dan nama tampilan.)

      image

    2. Buat dan simpan Secret aplikasi OAuth.

      image

      Penting

      Catat Application ID dan AppSecretValue Anda, yang akan digunakan saat membuat Secret di namespace kuberay dalam operasi selanjutnya.

  3. Hubungkan ke kluster dan buat Secret di namespace kuberay.

    Untuk informasi lebih lanjut tentang cara terhubung ke kluster Container Service for Kubernetes (ACK), lihat Hubungkan ke kluster.

    kubectl create ns kuberay
    kubectl create secret -n kuberay generic webapp-secret --from-literal=webapp-id="yours-AppID" --from-literal=webapp-secret=yours-AppSecretValue

    Parameter

    Deskripsi

    webapp-secret

    Nama Secret yang akan dibuat, yang dapat dikustomisasi.

    webapp-id

    ID aplikasi OAuth.

    webapp-secret

    AppSecretValue dari kunci OAuth.

4. Konfigurasikan parameter KubeRay

  1. Instal komponen Kuberay.

    Untuk informasi lebih lanjut, lihat Instal KubeRay.

  2. Konfigurasikan parameter Kuberay-Operator.

    Parameter

    Deskripsi

    Aktifkan HistoryServer

    Pilih untuk mengaktifkan HistoryServer.

    CallbackServiceName

    Nama domain callback untuk autentikasi OAuth HistoryServer, yang harus sesuai dengan nama domain dalam alamat callback aplikasi OAuth. Misalnya, jika konfigurasi OAuth adalah http://xx.com/oauth/callback, maka atur parameter ini ke xx.com.

    CloudRoleName

    Nama peran RRSA yang terkait dengan HistoryServer.

    OSSBucket

    Nama bucket OSS yang digunakan oleh HistoryServer.

    OSSEndPoint

    Titik akhir bucket OSS yang digunakan oleh HistoryServer.

    OSSHistoryServerRootDir

    Direktori tempat HistoryServer menyimpan log dan metadata.

    OSSRegion

    Wilayah OSS yang digunakan oleh HistoryServer, seperti cn-hangzhou dan ap-southeast-1.

5. Buat RayCluster

Untuk mengaktifkan fitur HistoryServer dalam RayCluster, tambahkan anotasi ray.alibabacloud.com/enable-historyserver: "true" saat mengirimkan RayCluster. Berikut adalah contoh konfigurasi YAML.

Lihat file YAML

apiVersion: ray.io/v1
kind: RayCluster
metadata:
  annotations:
    ray.alibabacloud.com/enable-historyserver: "true"
  labels:
    ray.io/cluster: wukun
  generateName: wukun-ray240-
  namespace: default
spec:
  suspend: false
  autoscalerOptions:
    env: []
    envFrom: []
    idleTimeoutSeconds: 60
    imagePullPolicy: Always
    resources:
      limits:
        cpu: 200m
        memory: 200Mi
      requests:
        cpu: 200m
        memory: 200Mi
    securityContext: {}
    upscalingMode: Default
  enableInTreeAutoscaling: false
  headGroupSpec:
    rayStartParams:
      dashboard-host: 0.0.0.0
      num-cpus: "0"
    serviceType: ClusterIP
    template:
      metadata:
        labels:
          test: wukun
      spec:
        affinity:
        containers:
        - env:
          image: xxxx
          imagePullPolicy: Always
          name: ray-head
          resources:
            limits:
              cpu: "5"
              memory: 10G
            requests:
              cpu: "1"
              memory: 1G

        tolerations:
        - key: ray
          operator: Equal
          value: cpu
  workerGroupSpecs:
  - groupName: cpu
    maxReplicas: 1000
    minReplicas: 0
    numOfHosts: 1
    rayStartParams: {}
    replicas: 2
    template:
      metadata:
        labels:
          test: wukun
      spec:
        imagePullSecrets:
        containers:
        - env:

          image: xxxx
          imagePullPolicy: Always
          name: ray-worker
          resources:
            limits:
              cpu: "1"
              memory: 1G
            requests:
              cpu: "1"
              memory: 1G
          volumeMounts:
        tolerations:
        - key: ray
          operator: Equal
          value: cpu
        volumes:

6. Hubungkan ke HistoryServer

Hubungkan ke HistoryServer menggunakan localhost

Secara default, HistoryServer perlu diakses menggunakan port-forward. Buka jendela terminal dan jalankan perintah berikut:

kubectl -n kuberay port-forward svc/ray-history-server --address 0.0.0.0 8080:80

Setelah dikonfigurasi, Anda dapat mengakses HistoryServer dengan mengunjungi localhost:8080 di browser Anda. Pada titik ini, Anda tidak dapat melihat data pemantauan di HistoryServer. Untuk melihat data pemantauan, Anda harus menjalankan perintah port-forward tambahan.

kubectl -n kuberay port-forward svc/ray-history-server --address 0.0.0.0 3000:3000

Konfigurasikan akses Internet

Penting

Contoh ini untuk tujuan demonstrasi. Untuk keamanan data aplikasi Anda, kami sarankan Anda juga mengaktifkan fitur Kontrol Akses dalam lingkungan produksi.

Masuk ke Konsol ACK. Di panel navigasi sisi kiri, klik Clusters. Klik nama kluster yang ingin Anda kelola untuk masuk ke halaman detail kluster. Seperti yang ditunjukkan pada gambar berikut, konfigurasikan layanan internet sesuai dengan nomor urut. Atur alamat callback aplikasi OAuth ke layanan internet yang telah dibuat, dalam format http://${externalIP}/auth/callback. Untuk informasi lebih lanjut tentang pengaturan aplikasi OAuth secara rinci, lihat 3. Buat aplikasi OAuth.image

image