kubernetes - kube-apiserver身份验证(未授权)

标签 kubernetes kubectl minikube

我创建了用户teamcity,以便能够使用 kube-apiserver

kubectl create serviceaccount teamcity



使用下面的命令,我得到 secret 名称

kubectl get accourcissements teamcity -o yaml



为了找到我使用的最后一个命令生成的 token

kubectl get secret teamcity-token-lmr6z -o yaml



当我尝试通过curl连接时出现错误,我不知道我的错误在哪里:(
 curl -v -Sskk -H "Authorization: bearer ZXlKaGJH......wWHNIVzZ3" https://10.109.0.88:6443/api/v1/namespaces

 HTTP/1.1 401 Unauthorized
 Content-Type: application/json
 Date: Thu, 05 Jul 2018 13:14:00 GMT
 Content-Length: 165

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "Unauthorized",
  "reason": "Unauthorized",
  "code": 401
* Connection #0 to host 10.109.0.88 left intact

我在kubernetes上找到了一个简短的说明,说明为什么会出现此错误(部分:匿名请求)https://kubernetes.io/docs/reference/access-authn-authz/authentication/

但是我仍然不明白我的错误在哪里,因为使用kubectl可以正常工作
kubectl  --token=ZXlKaGJHY2lPaUpTVXpJ........swWHNIVzZ3 get svc
NAME                       TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
hello-kubernetes           NodePort    192.2.0.159   <none>        80:17502/TCP   13d
hello-kubernetes-olivier   NodePort    192.2.0.235   <none>        80:17296/TCP   13d
kubernetes                 ClusterIP   192.2.0.1     <none>        443/TCP        14d 

最佳答案

这可能是您的错别字,是“bearer”的一部分,我记得是“bearer”。

一些命令示例如下,Kubernetes - Accessing Clusters

$ APISERVER=$(kubectl config view | grep server | cut -f 2- -d ":" | tr -d " ")

$ TOKEN=$(kubectl describe secret $(kubectl get secrets | grep default | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d '\t')

$ curl $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure
{
  "kind": "APIVersions",
  "versions": [
    "v1"
  ],
  "serverAddressByClientCIDRs": [
    {
      "clientCIDR": "0.0.0.0/0",
      "serverAddress": "10.0.1.149:443"
    }
  ]
}

关于kubernetes - kube-apiserver身份验证(未授权),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51192493/

相关文章:

networking - Kubernetes GKE 错误拨号后端 : EOF on random exec command

Kubernetes kubectl按类型获取 secret 吗?

kubernetes - 从命令行配置客户端命令

kubernetes - 在GKE上进行集群更新后,容器日志不起作用

kubernetes - Windows 上的 minikube 启动失败并出现错误 - 获取互斥体超时

linux - 配置minikube时出现磁盘空间错误如何解决

Kubernetes的默认事件和准备情况探针

kubernetes - 如何在Google Kubernetes Engine上获取Pod的TCP或WebSocket连接数?

docker - Kubernetes 集群中的 Kafka - 如何从 Kubernetes 集群外部发布/使用消息

dns - Kubernetes 设置的 Gitlab DNS 条目?