Kubernetes: Как масштабировать развертывание из другого сервиса / модуля? - PullRequest
0 голосов
/ 20 января 2020

У меня есть 2 услуги. Служба A и Служба B. Они соответствуют развертываниям dA и dB.

Я настроил свой кластер и запустил обе службы / развертывания. Служба А достижима из внешнего мира. Внешний мир -> Служба A <-> Служба B.

Как я могу масштабировать дБ (изменить replicaCount и запустить kubectl применить ИЛИ шкалу kubectl) из Службы A, которая отвечает на запрос пользователя.

Например, если пользователь, который обслуживается службой А, хочет иметь в моем приложении какой-то дополнительный ресурс, я бы хотел добавить это, добавив дополнительный модуль в дБ. Как мне сделать это программно?

1 Ответ

3 голосов
/ 20 января 2020

Каждому Pod, если он не отказывается, добавлен токен ServiceAccount, который позволяет ему взаимодействовать с API kubernetes в соответствии с Role, связанным с ServiceAccount

Таким образом, можно использовать любое количество библиотек kubernetes, большинство из которых осведомлены «в кластере», что означает, что им не требуется дополнительная настройка, чтобы знать об этом введенном токене ServiceAccount и о том, как его использовать - для выдачи масштаба события для любого ресурса, которому ServiceAccount разрешено использовать

. Вы можете сделать его настолько простым или сложным, насколько захотите, но tl; dr сродни:

curl --cacert /var/run/secrets/kubernetes.io/ca.crt \
    --header "Accept: application/json" \
    --header "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/token)" \
    https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}/api/v1/namespaces
...