# #macos #gcloud #kubectl
#macos #gcloud #кубектл
Вопрос:
Мак здесь, на случай, если это что-то изменит. Я работаю над 2 отдельными проектами GCP/gcloud/GKE/Kubernetes, и для каждого из них у меня есть два разных gmail:
- Проект 1: флим-флам, где моя электронная почта myuser1@gmail.example.com (притворись, что это gmail)
- Проект 2: фу-бар, где находится моя электронная почта myuser2@gmail.example.com
Я захожу в свою myuser1@gmail.example.com
учетную запись через gcloud auth login
и подтверждаю, что я вошел в систему под этой учетной записью. Например, я захожу в консоль GCP и проверяю (в пользовательском интерфейсе), что я действительно вошел в систему как myuser1@gmail.example.com
. Более того, когда я бегу gcloud config configurations list
, я получаю:
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION flim-flam True myuser1@gmail.example.com flim-flam foo-bar False myuser2@gmail.example.com foo-bar
В моем flim-flam
проекте при запуске kubectl delete ns flimflam-app
я получаю ошибки разрешений:
Error from server (Forbidden): namespace "flimflam-app" is forbidden: User "myuser2@gmail.example.com" cannot delete resource "namespaces" in API group "" in the namespace "flimflam-app": requires one of ["container.namespaces.delete"] permission(s).
Итак, gcloud думает, что я вошел в систему как myuser1
, но kubectl думает, что я вошел в систему как myuser2
. Как мне это исправить?
Комментарии:
1. Почему ДВ? Вопрос был по теме, не был обманом и был полностью воспроизводим. Подумайте о том, чтобы удалить DV и вместо этого предоставить комментарий с предложением по улучшению. Мои вопросы здесь на высшем уровне, так что.
Ответ №1:
gcloud
и kubectl
обмениваться удостоверениями пользователей, но их конфигурация находится в разных файлах.
Использование gcloud auth login
не обновляет (!) существующие (!) kubectl
конфигурации. Первые (в Linux) хранятся в ${HOME}/.config/gcloud
, а вторые-в ${HOME}/.kube/config
.
У меня нет копии под рукой, но , если вы проверите ${HOME}/.kube/config
, она, скорее всего, ссылается на другую учетную запись Google. Вы можете либо дублировать users
запись, либо ссылаться на нее из context
. Или вы можете отредактировать существующую users
запись.
На самом деле, еще лучше использовать gcloud container clusters get-credentials
для обновления kubectl
конфигурации с текущим активным gcloud
пользователем. Эта команда обновляется ${HOME}/.kube/config
для вас.