#kubernetes #openshift #kubernetes-secrets
#kubernetes #openshift #kubernetes-секреты
Вопрос:
Я хотел бы восстановить токен учетной записи службы kubernetes из резервной копии (которая на самом деле является просто экспортом соответствующего секрета):
apiVersion: v1
kind: Secret
metadata:
name: my-service-account-token-lqrvp
annotations:
kubernetes.io/service-account.name: my-service-account
type: kubernetes.io/service-account-token
data:
token: bXktc2ltcGxlLXRva2VuCg==
Секрет был успешно применен и добавлен в учетную запись службы:
# kubectl apply -f my-service-account.yaml
secret/my-service-account-token-lqrvp created
# kubectl describe sa my-service-account
Name: my-service-account
Namespace: my-namespace
Labels: <none>
Annotations: kubernetes.io/service-account.name: my-service-account
Image pull secrets: my-service-account-dockercfg-lv9hp
Mountable secrets: my-service-account-token-lv9hp
Tokens: my-service-account-token-lqrvp
Events: <none>
К сожалению, каждый раз, когда я пытаюсь получить доступ к api с помощью токена, я всегда получаю сообщение об ошибке «Предоставленный токен недействителен или истек»:
# kubectl login https://api.my-k8s-cluster.mydomain.com:6443 --token=my-simple-token
error: The token provided is invalid or expired
Я знаю, что токен обычно автоматически генерируется контроллером-менеджером, но поддерживается ли восстановление токена kubernetes?
Комментарии:
1. Является ли ваш реальный токен JWT? Насколько я помню, будут работать только токены JWT github.com/kubernetes/kubernetes/blob /… но я могу ошибаться
2. В дополнение к предыдущему комментарию, не могли бы вы добавить
$ kubectl describe secret my-service-account-token-lqrvp
? Я попытался воспроизвести вашу настройку, и в секрете также были другие ключи и значения данных, такие какnamespace
иca.crt
. У вас также есть разные секреты, упомянутые в вашем описании serviceaccount (lqrvp
иlv9hp
)