使用Kubernetes API管理Statefulsets的缩放

问题描述

  • 我想按比例放大状态集,并希望使用以下方法从pod(容器)内部进行按比例放大 kubernetes rest服务器的Kubernetes API(http请求)。
  • 我尝试使用
  • 扩展statefulset窗格

PUT / apis / apps / v1 /名称空间/ {namespace} / statefulsets / {name} / scale

  • 但这对我不起作用。

甚至尝试使用以下方式获取指定状态集的比例数据:

“获取/ apis / apps / v1 /名称空间/ {namespace} / statefulsets / {name} / scale”

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

给出错误:

有人可以帮我吗?

解决方法

您需要使用RoleRoleBinding来定义RBAC,以授权服务帐户执行所需的操作

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

RoleRoleBinding之上的假设是,您使用default命名空间的default服务帐户来扩展{{1}中的statefulsets }命名空间。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...