Невозможно использовать контекст из файла kubeconfig - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь добавить новый кластер и его контекст в файл kubeconfig, используя имя пользователя и пароль, но это не удалось. Ниже приведены команды, которые я использую для установки контекста.

kubectl config  set-cluster lab101 --server=https://api-kube.example.com:8443 --insecure-skip-tls-verify --context=lab101
kubectl config set-credentials kubeadmin --username=kubeadmin --password=xxxxxxx --cluster=lab101
kubectl config  set-context lab101 --cluster=lab101 --namespace=default --user=kubeadmin
kubectl config use-context lab101

Журналы:

GET https://api-kube.example.com:8443/api?timeout=32s 403 Forbidden in 19 milliseconds
I0422 11:37:31.741005   18972 round_trippers.go:411] Response Headers:
I0422 11:37:31.741005   18972 round_trippers.go:414]     Cache-Control: no-cache, private
I0422 11:37:31.741005   18972 round_trippers.go:414]     Content-Type: application/json
I0422 11:37:31.741005   18972 round_trippers.go:414]     X-Content-Type-Options: nosniff
I0422 11:37:31.741005   18972 round_trippers.go:414]     Content-Length: 188
I0422 11:37:31.741005   18972 round_trippers.go:414]     Date: Wed, 22 Apr 2020 15:37:31 GMT
I0422 11:37:31.762977   18972 request.go:897] Response Body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"forbidden: User \"system:anonymous\" cannot get path \"/api\"","reason":"Forbidden","details":{},"code":403}

Примечание. Если я использую того же пользователя, введите пароль с oc login они работают нормально. Не понимает, почему это не сработает, если я установлю kubeconfig вручную.

1 Ответ

1 голос
/ 22 апреля 2020

Маловероятно, что OpenShift Kubernetes разрешит аутентификацию, используя имя пользователя и пароль . Команда oc login выполняет внутреннюю аутентификацию с использованием имени пользователя и пароля на сервере oAuth , чтобы получить токен-носитель, который автоматически сохраняется в файле kubeconfig, используемом kubectl. При выполнении любой команды kubectl этот токен используется для аутентификации в кластере Kubernetes.

Вы можете проверить токен с помощью oc config view. Вы можете получить токен и установить его с помощью kubectl config set-credentials kubeadmin --token=bearertoken, и он должен работать.

Обратитесь к документации здесь .

В качестве альтернативы вы можете выполнить следующее: c здесь , чтобы получить жетон на предъявителя.

...