【问题标题】:Manage scaling of Statefulsets using Kubernetes API使用 Kubernetes API 管理 Statefulsets 的扩展
【发布时间】:2020-12-10 15:21:40
【问题描述】:
  • 我想扩展我的 statefulset 并希望从 pod(容器)内部使用 将 Kubernetes API(http 请求)发送到 Kubernetes 休息服务器。
  • 我尝试使用
  • 扩展 statefulset pod

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

  • 但它对我不起作用。

甚至尝试使用获取指定 statefulset 的规模数据

“GET /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

给出错误:

有人可以帮我吗?

【问题讨论】:

  • 错误消息指出服务帐户没有查看 statefulsets 的权限。请您的 Kubernetes 管理员为该服务帐户分配权限
  • @DashrathMundkar 是的,服务帐户存在一些权限问题。感谢您的帮助。

标签: kubernetes containers microservices kubernetes-statefulset kubernetes-apiserver


【解决方案1】:

您需要使用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 服务帐户在default 命名空间中扩展statefulsets 的假设。

【讨论】:

    猜你喜欢
    • 2021-11-10
    • 2021-07-04
    • 1970-01-01
    • 2016-08-13
    • 2017-10-10
    • 2018-08-22
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    相关资源
    最近更新 更多