Самый простой способ пропустить CLI gcloud, возможно, использовать опцию --token
. Вы можете получить токен с RBAC, создав учетную запись службы и связав ее с ClusterRole
или Role
с ClusterRoleBinding
или RoleBinding
.
Затем из командной строки:
$ kubectl --token <token-from-your-service-account> get pods
Вам все еще понадобится context
в вашем ~/.kube/config
:
- context:
cluster: kubernetes
name: kubernetes-token
В противном случае вам придется использовать:
$ kubectl --insecure-skip-tls-verify --token <token-from-your-service-account> -s https://<address-of-your-kube-api-server>:6443 get pods
Обратите внимание, что если вы не хотите, чтобы токен отображался в журналах, вы можете сделать что-то вроде этого:
$ kubectl --token $(cat /path/to/a/file/where/the/token/is/stored) get pods
Кроме того, обратите внимание, что это не мешает вам запускать ps -Af
на вашем ящике и захватывать токен оттуда в течение всего процесса kubectl
(рекомендуется вращать токены)
Edit:
Вы можете использовать --token-auth-file=/path/to/a/file/where/the/token/is/stored
с kubectl
, чтобы не пропускать его через $(cat /path/to/a/file/where/the/token/is/stored)