kubernetes - 无法使用 kubeconfig 文件中的上下文
问题描述
我正在尝试使用用户名和密码在 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 它将不起作用。
解决方案
OpenShift Kubernetes 不太可能允许使用username 和 password进行身份验证。该oc login
命令使用用户名和密码对oAuth 服务器进行内部身份验证,以获取不记名令牌,该不记名令牌自动存储在 kubectl 使用的 kubeconfig 文件中。当您执行任何 kubectl 命令时,该令牌用于向 Kubernetes 集群进行身份验证。
您可以通过检查令牌 oc config view
。您可以获得令牌并使用它进行设置kubectl config set-credentials kubeadmin --token=bearertoken
,它应该可以工作。
请参阅此处的文档。
或者,您可以在此处关注此文档以获取不记名令牌。
推荐阅读
- javascript - 如何在 JavaScript 中检测 Android 浏览器上已选择文本?
- opentest - OpenTest:如何将 Opentest 与 linux jenkins 服务器集成?
- oauth-2.0 - 使用 MFA 为 Azure AD 用户执行密码授权身份验证
- express - 我可以使用 Express res.sendFile() 发送 XLS/XLSX 文件吗?
- javascript - 如何将我的 expo 应用程序发布到 Apple 应用商店?
- json - 将 pandas 数据帧转换为具有特定格式的 json
- javascript - 如何在产品列表中添加切换“全部显示”、“全部隐藏”
- python - 为什么这没有返回预期的升序?
- spring-boot - Springboot + Elastic Search:如何构建模糊的 LIKE 查询?
- javascript - 来自数组的动态 HTML 行