Управляйте масштабированием наборов состояний с помощью Kubernetes API

  • Я хочу масштабировать свой набор состояний и хочу инициировать это масштабирование изнутри модуля (контейнера) с помощью API Kubernetes (HTTP-запрос) на сервер отдыха kubernetes.
  • Я попытался увеличить количество модулей с набором состояний, используя

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

  • но у меня это не сработало.

Даже попытался получить данные о масштабе указанного набора состояний, используя

ПОЛУЧИТЬ / 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.apps app-4x запрещено: Пользовательская система: serviceaccount :: default не может получить набор состояний / масштаб ресурсов в приложениях группы API в пространстве имен, причина: Запрещено,

  • Ссылка: https://v1-14.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.14/.

Кто-нибудь может мне с этим помочь?


comment
сообщение об ошибке указывает, что учетная запись службы не имеет разрешения на просмотр наборов состояний. попросите администратора Kubernetes назначить разрешение для этой учетной записи службы   -  person Dashrath Mundkar    schedule 21.08.2020
comment
@DashrathMundkar да, была проблема с разрешением в отношении учетной записи службы. Спасибо за помощь.   -  person himanshu    schedule 22.08.2020


Ответы (1)


Вам необходимо определить RBAC, используя Role и 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 пространстве имен.

person Arghya Sadhu    schedule 21.08.2020