Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pengguna admin klaster juga perlu menyiapkan Kubernetes role-based access control (RBAC)
Opsi 1: Siapkan RBAC menggunakan bagan Helm
Tim SageMaker HyperPod layanan menyediakan sub-bagan Helm untuk menyiapkan RBAC. Untuk mempelajari selengkapnya, lihat Instal paket di kluster Amazon EKS menggunakan Helm.
Opsi 2: Siapkan RBAC secara manual
Buat ClusterRole
dan ClusterRoleBinding
dengan hak istimewa minimum, dan buat Role
dan RoleBinding
dengan izin mutasi.
Untuk membuat ClusterRole
& ClusterRoleBinding
untuk peran IAM ilmuwan data
Buat file cluster_level_config.yaml
konfigurasi tingkat cluster sebagai berikut.
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: hyperpod-scientist-user-cluster-role
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["list"]
- apiGroups: [""]
resources: ["nodes"]
verbs: ["list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: hyperpod-scientist-user-cluster-role-binding
subjects:
- kind: Group
name: hyperpod-scientist-user-cluster-level
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: hyperpod-scientist-user-cluster-role # this must match the name of the Role or ClusterRole you wish to bind to
apiGroup: rbac.authorization.k8s.io
Terapkan konfigurasi ke cluster EKS.
kubectl apply -f cluster_level_config.yaml
Untuk membuat Peran dan RoleBinding di namespace
Ini adalah operator pelatihan namespace yang menjalankan pekerjaan pelatihan dan Ketahanan akan memantau secara default. Job auto-resume hanya dapat mendukung di kubeflow
namespace atau namespace awalan. aws-hyperpod
Buat file konfigurasi peran namespace_level_role.yaml
sebagai berikut. Contoh ini menciptakan peran dalam kubeflow
namespace
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: kubeflow
name: hyperpod-scientist-user-namespace-level-role
###
# 1) add/list/describe/delete pods
# 2) get/list/watch/create/patch/update/delete/describe kubeflow pytroch job
# 3) get pod log
###
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["create", "get"]
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["get", "create"]
- apiGroups: ["kubeflow.org"]
resources: ["pytorchjobs", "pytorchjobs/status"]
verbs: ["get", "list", "create", "delete", "update", "describe"]
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["create", "update", "get", "list", "delete"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["create", "get", "list", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
namespace: kubeflow
name: hyperpod-scientist-user-namespace-level-role-binding
subjects:
- kind: Group
name: hyperpod-scientist-user-namespace-level
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: hyperpod-scientist-user-namespace-level-role # this must match the name of the Role or ClusterRole you wish to bind to
apiGroup: rbac.authorization.k8s.io
Terapkan konfigurasi ke cluster EKS.
kubectl apply -f namespace_level_role.yaml
Membuat entri akses untuk grup Kubernetes
Setelah Anda mengatur RBAC menggunakan salah satu dari dua opsi di atas, gunakan perintah contoh berikut untuk menggantikan informasi yang diperlukan.
aws eks create-access-entry \ --cluster-name
<eks-cluster-name>
\ --principal-arn arn:aws:iam::<AWS_ACCOUNT_ID_SCIENTIST_USER>
:role/ScientistUserRole \ --kubernetes-groups '["hyperpod-scientist-user-namespace-level","hyperpod-scientist-user-cluster-level"]'
Untuk principal-arn
parameter, Anda perlu menggunakanPengguna IAM untuk ilmuwan.