kubernetes - 使用 Kubernetes API 管理 Statefulsets 的扩展
问题描述
- 我想扩展我的 statefulset,并希望使用 Kubernetes API(http 请求)从 pod(容器)内部到 kubernetes 休息服务器启动这种扩展。
- 我尝试使用扩展 statefulset pod
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
给出一个错误:
"message": "statefulsets.apps "app-4x" 被禁止:用户 "system:serviceaccount::default" 无法在命名空间 ""","reason" 中的 API 组 "apps" 中获取资源 "statefulsets/scale": “禁止”,
参考:https ://v1-14.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.14/
有人可以帮我吗?
解决方案
您需要使用和授权服务帐户执行所需的操作来定义RBACRole
RoleBinding
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
的服务帐户来扩展命名空间的假设。RoleBinding
default
default
statefulsets
default
推荐阅读
- react-native - 在 React Native Web 上编译失败
- android - UI Thread 和运行 TCP Client 的 Worker 线程之间的持续数据传输
- javascript - 获取“不允许的方法:/users/update_contact/”
- laravel - 在laravel中查询相关模型表的所有内容
- javascript - Object.values 似乎不适用于枚举类型
- c# - 在没有警告的情况下从 Entity Framework Core 执行动态 SQL
- java - 关注JLS的词汇
- spacy - 如何获得用于计算 NER 模型指标的混淆矩阵?
- php - 在 MySQL 中分组结果并显示在列表中
- r - 应用过滤器会显示变量的所有级别