Начиная с сообщения об ошибке, ваш пользователь получает ошибку только на этапе аутентификации (код ошибки HTTP: 401 ), вы можете проверить то же самое, используя:
$ k get pods -v=6
...
I0123 16:34:18.842853 29373 helpers.go:203] server response object: [{
...
"code": 401
}]
F0123 16:34:18.842907 29373 helpers.go:114] error: You must be logged in to the server (Unauthorized)
Отладка настройте, используя следующие шаги:
Убедитесь, что вы используете правильный контекст и правильного пользователя, как вы ожидали (с * в столбце CURRENT):
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* context-user-ca-signed kubernetes user-user-ca-signed ns1
kubernetes-admin@kubernetes kubernetes kubernetes-admin
Проверьте сертификат CA для Kubernetes API Server (при условии, что сервер API работает как Pod):
$ sudo cat /etc/kubernetes/manifests/kube-apiserver.yaml | grep -i "\-\-client-ca-file"
- --client-ca-file=/etc/kubernetes/pki/ca.crt
$ openssl x509 -in /etc/kubernetes/pki/ca.crt -text -noout | grep -i "Issuer:\|Subject:"
Issuer: CN = kubernetes
Subject: CN = kubernetes
Убедитесь, что сертификат вашего пользователя подписан вышеуказанным CA (эмитент CN пользователя сертификат совпадает с субъектом CN сертификата CA (здесь «kubernetes»), который настраивается на сервере API:
$ kubectl config view --raw -o jsonpath="{.users[?(@.name == \"user-user-ca-signed\")].user.client-certificate-data}" | base64 -d > client.crt
$ openssl x509 -in client.crt -text -noout | grep -i "Issuer:\|Subject:"
Issuer: CN = kubernetes
Subject: C = IN, ST = Some-State, O = Some-Organization, CN = user-ca-signed
Если вышеуказанные действия подходят для созданного вами пользователя, Вы должны пройти Аутентификация фаза. Но фаза авторизации все еще должна быть настроена с использованием RBA C, ABA C или любого другого поддерживаемого режима авторизации, в противном случае вы все равно можете получить код ошибки HTTP: 403
$ kubectl get pods -v=6
I0123 16:59:41.350501 28553 helpers.go:203] server response object: [{
...
"code": 403
}]
F0123 16:59:41.351080 28553 helpers.go:114] Error from server (Forbidden): pods is forbidden: User "user-ca-signed" cannot list resource "pods" in API group "" in the namespace "ns1": No policy matched.