これは ZOZO Advent Calendar 2024 カレンダー Vol.9 の 4日目の記事です。
はじめに
昨日はKubernetesのNamespaceごとに構築したRay Clusterへの参照をアクセス時のパスで切り替えるというタイトルで、Ray Clusterに関する記事を投稿しました。
昨日に引き続き、本日もRay Cluster関連の投稿になります。Ray Clusterについては1日目の記事(GKE上に構成したRay Clusterに外部Load Balancer経由でアクセスする)で簡単に説明しているため、ご参照ください。
今回はRay ClusterのWorker NodeのPodについて、認証するKubernetesのService Accountを指定する方法を紹介します。
Service Accountの指定
以下のように、RayClusterのオブジェクト作成時にspec.workerGroupSpecs[].template.spec.serviceAccountName
で指定可能です。
Worker NodeのPodで認証するKubernetesのService AccountをWorker Groupごとに指定できます。
apiVersion: ray.io/v1
kind: RayCluster
metadata:
name: raycluster-autoscaler
labels:
...省略
spec:
workerGroupSpecs:
- groupName: small-group
...省略
template:
spec:
serviceAccountName: raycluster-worker
Google CloudのService Acccountと連携することでRayのWorker Node内でもIAMで認証して、Google Cloudのリソースにアクセス可能です。
apiVersion: v1
kind: ServiceAccount
metadata:
annotations:
iam.gke.io/gcp-service-account: mlops-ray-worker@example-project.iam.gserviceaccount.com
name: raycluster-worker
Google Kubernets EngineにおけるKubernetesのService AccountとGoogle CloudのService Accountの連携については公式ドキュメントをご参照ください。