首页 > 解决方案 > 使用 Kubernetes API 管理 Statefulsets 的扩展

问题描述

PUT /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale

甚至尝试使用获取指定 statefulset 的比例数据

“获取 /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale”

请求: curl -s -k -H "授权:承载 $TOKEN" -X GET https://kubernetes.default.svc:443/apis/apps/v1/namespaces/$Namespace/$Kind/$PodNamePrefix/scale

给出一个错误:

有人可以帮我吗?

标签: kubernetescontainersmicroserviceskubernetes-statefulsetkubernetes-apiserver

解决方案


您需要使用和授权服务帐户执行所需的操作来定义RBACRoleRoleBinding

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: ss-role
rules:
- apiGroups: ["apps"]
  resources: ["statefulsets/scale" ]
  verbs: ["get", "list", "create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  namespace: default
  name: ss-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: ss-role
subjects:
- kind: ServiceAccount
  name: default
  namespace: default

以上是基于您使用命名空间Role的服务帐户来扩展命名空间的假设。RoleBindingdefaultdefaultstatefulsetsdefault


推荐阅读