Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:RBAC permissions for ack-cluster-agent

Son Güncelleme:Oct 06, 2026

Kaydedilmiş kümeler, küme kaynaklarına ack-cluster-agent bileşeni üzerinden erişir ve tüm işlem izinleri, ack-cluster-agent kurulumu sırasında oluşturulan ack ServiceAccount ile sınırlıdır. Kısıtlı mod ve yönetici modu kullanılabilir. Bu konu, kaydedilmiş bir kümede ack-cluster-agent tarafından gereken RBAC izinlerini açıklar.ack ServiceAccount, kaydedilmiş kümenizdeki ACK konsol erişimini kontrol etmek için kullanılır.

İki temel izin modu bulunur:

Mod Konsol yetenekleri Ne zaman kullanılır
Kısıtlı mod İş yükü görünürlüğü kullanılamaz. Bileşen yönetimi ve Managed Service for Prometheus (Prometheus) ile Simple Log Service (SLS) gibi hizmetlere onectl aracılığıyla erişilebilir. En az ayrıcalık gerektiren ortamlar
Yönetici modu Tüm konsol özellikleri kullanılabilir Tam konsol erişimi gerektiğinde

Bileşenleri yüklemek, düğüm havuzları oluşturmak, günlük sorgularını etkinleştirmek veya kaynakları salt okunur modda görüntülemek için ek izinler gerekir.

Ön koşullar

Aşağıdaki koşulların sağlandığından emin olun:

  • ack-cluster-agent sürümü 1.13.1.105-g8ee9abb-aliyun veya daha yenisi yüklüdür. Bkz. Bileşenleri yönetin.

Kısıtlı mod izinlerini verin

Kısıtlı mod, kube-system ve kube-public ad alanlarında ConfigMap'ler için okuma erişimi gerektirir. Aşağıdaki Rolleri ve RoleBinding'leri uygulayın:

---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: ack-agent-create-cm-role
  namespace: kube-system
  labels:
    ack/creator: "ack"
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: ack-agent-update-cm-role
  namespace: kube-system
  labels:
    ack/creator: "ack"
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  resourceNames:
  - ack-agent-config
  - provider
  verbs:
  - update
  - get

---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: ack-agent-read-cm-role
  namespace: kube-public
  labels:
    ack/creator: "ack"
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  resourceNames:
  - kube-root-ca.crt
  verbs:
  - get

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: ack-agent-create-cm-rolebinding
  namespace: kube-system
  labels:
    ack/creator: "ack"
subjects:
- kind: ServiceAccount
  name: ack
  namespace: kube-system
roleRef:
  kind: Role
  name: ack-agent-create-cm-role
  apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: ack-agent-update-cm-rolebinding
  namespace: kube-system
  labels:
    ack/creator: "ack"
subjects:
- kind: ServiceAccount
  name: ack
  namespace: kube-system
roleRef:
  kind: Role
  name: ack-agent-update-cm-role
  apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: ack-agent-read-cm-rolebinding
  namespace: kube-public
  labels:
    ack/creator: "ack"
subjects:
- kind: ServiceAccount
  name: ack
  namespace: kube-system
roleRef:
  kind: Role
  name: ack-agent-read-cm-role
  apiGroup: rbac.authorization.k8s.io
---
Kısıtlı modda iş yükü görünürlüğü kullanılamaz. Bileşenleri yönetmek ve Prometheus ile SLS gibi hizmetlere erişmek için onectl kullanın . onectl, geçici olarak yönetici izinlerine yükseltilir ve işlem tamamlandığında veya kesildiğinde bu izinleri geri alır.

Yönetici modu izinlerini verin

Yönetici modu, tüm küme kaynaklarına tam erişim sağlar. Bu ClusterRole'u ack ServiceAccount'a uygulayın:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ack-admin
  labels:
    ack/creator: "ack"
rules:
- apiGroups: ["*"]
  resources: ["*"]
  verbs: ["*"]

Bileşen yönetimi için izinleri verin

terway-eniip veya logtail-ds gibi bileşenleri yüklemek veya güncellemek için geçici yönetici izinleri gerekir. Aşağıdaki iş akışını izleyin:

1. Adım: Yönetici izinlerine yükseltin

Yönetici modu izinlerini verin bölümündeki ClusterRole'u uygulayın.

2. Adım: Bileşeni yükleyin veya güncelleyin

Bileşeni yükleyin veya güncelleyin.

3. Adım: İzinleri en aza indirin

Yükleme veya güncelleme tamamlandıktan sonra ClusterRole'u en az ayrıcalıklı duruma geri yükleyin:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ack-admin
  labels:
    ack/creator: "ack"
rules:
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get","list","watch"]
- apiGroups: [""]
  resources: ["configmaps"]
  resourceNames: ["ack-agent-config","provider"]
  verbs: ["get","list","watch","update"]
- apiGroups: [""]
  resources: ["configmaps"]
  resourceNames: ["autoscaler-meta"]
  verbs: ["get","list","watch","update"]
- apiGroups: ["*"]
  resources: ["daemonsets", "deployments"]
  resourceNames: ["terway-eniip","security-inspector","ack-cluster-agent","gatekeeper","ack-virtual-node","metrics-server","logtail-ds","resource-controller","aliyun-acr-credential-helper","migrate-controller","ack-kubernetes-cronhpa-controller","tiller-deploy"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["*"]
  resources: ["daemonsets", "deployments"]
  resourceNames: ["cluster-autoscaler"]
  verbs: ["get", "list", "watch", "update"]
- apiGroups: [""]
  resources: ["pods","secrets"]
  verbs: ["list"]

Düğüm havuzu oluşturma için izinleri verin

Terway'i yüklemek veya düğüm havuzları oluşturmak da geçici yönetici izinleri gerektirir. Önce yükseltip sonra geri alma iş akışını izleyin:

1. Adım: Yönetici izinlerine yükseltin

Yönetici modu izinlerini verin bölümündeki ClusterRole'u uygulayın.

2. Adım: Düğüm havuzunu oluşturun veya Terway'i yükleyin

Düğüm havuzunu oluşturun veya Terway'i yükleyin.

3. Adım: İzinleri en aza indirin

İşlem tamamlandıktan sonra ClusterRole'u en az ayrıcalıklı duruma geri yükleyin:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ack-admin
  labels:
    ack/creator: "ack"
rules:
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get","list","watch"]
- apiGroups: [""]
  resources: ["configmaps"]
  resourceNames: ["ack-agent-config","provider","autoscaler-meta","eni-config"]
  verbs: ["get","list","watch","update"]
- apiGroups: ["*"]
  resources: ["daemonsets", "deployments"]
  resourceNames: ["terway-eniip", "cluster-autoscaler"]
  verbs: ["get", "list", "watch", "update"]

SLS günlük sorguları için izinleri verin

Kaydedilmiş kümede SLS'yi etkinleştirdikten sonra, ACK konsolunda günlükleri sorgulamak için aşağıdaki ClusterRole ve ClusterRoleBinding'i uygulayın:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ack-agent-role-log
  labels:
    ack/creator: "ack"
rules:
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["get","list","watch"]
- apiGroups: ["apps"]
  resources: ["daemonsets", "deployments"]
  resourceNames: ["alibaba-log-controller", "logtail-ds", "kube-proxy-master"]
  verbs: ["get", "list", "watch"]
- apiGroups: [""]
  resources: ["configmaps"]
  resourceNames: ["alibaba-log-configuration"]
  verbs: ["get","list","watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: ack-agent-binding-log
  labels:
    ack/creator: "ack"
subjects:
- kind: ServiceAccount
  name: ack
  namespace: kube-system
roleRef:
  kind: ClusterRole
  name: ack-agent-role-log
  apiGroup: rbac.authorization.k8s.io

Salt okunur izinleri verin

ACK konsolunda Kubernetes kaynaklarını değişiklik yapmadan görüntülemek için aşağıdaki ClusterRole ve ClusterRoleBinding'i uygulayın:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ack-readonly-clusterrole
rules:
- apiGroups:
  - ""
  resources:
  - nodes
  - namespaces
  - pods
  - pods/log
  - pods/exec
  - configmaps
  - endpoints
  - events
  - limitranges
  - persistentvolumeclaims
  - podtemplates
  - replicationcontrollers
  - resourcequotas
  - serviceaccounts
  - services
  verbs:
  - get
  - list
- apiGroups:
  - apps
  resources:
  - deployments
  - daemonsets
  - statefulsets
  - replicasets
  verbs:
  - get
  - list
- apiGroups:
  - batch
  resources:
  - jobs
  - cronjobs
  verbs:
  - get
  - list
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - get
  - list
- apiGroups:
  - discovery.k8s.io
  resources:
  - endpointslices
  verbs:
  - get
  - list
- apiGroups:
  - events.k8s.io
  resources:
  - events
  verbs:
  - get
  - list
- apiGroups:
  - extensions
  resources:
  - daemonsets
  - deployments
  - ingresses
  - networkpolicies
  - replicasets
  verbs:
  - get
  - list
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  - networkpolicies
  verbs:
  - get
  - list
- apiGroups:
  - policy
  resources:
  - poddisruptionbudgets
  verbs:
  - get
  - list
- apiGroups:
  - rbac.authorization.k8s.io
  resources:
  - rolebindings
  - roles
  verbs:
  - get
  - list
- apiGroups:
  - storage.k8s.io
  resources:
  - csistoragecapacities
  verbs:
  - get
  - list

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: ack-readonly-clusterrolebinding
  labels:
    ack/creator: "ack"
subjects:
- kind: ServiceAccount
  name: ack
  namespace: kube-system
roleRef:
  kind: ClusterRole
  name: ack-readonly-clusterrole
  apiGroup: rbac.authorization.k8s.io