2

无法在 Kubernetes版本中创建 Pod:v1.10.0-beta.3

当我在主节点上创建 pod 时,我遇到以下错误:

kubectl create -f ./nginx-rc.yaml

ERROR:
No API token found for service account \"default\", retry after the token is automatically created and added to the service account\
  1. 执行命令:openssl genrsa -out /tmp/serviceaccount.ket 2048

  2. 修改/etc/kubernetes/apiserver文件以添加以下内容:

    KUBE_API_ARGS="--service_account_key_file=/tmp/serviceaccount.key"
    
  3. 修改/etc/kubernetes/controller-manager并添加以下内容:

    KUBE_CONTROLLER_MANAGER_ARGS="--
    service_account_private_key_file=/tmp/serviceaccount.key"
    
  4. 重新启动了 Kubernetes,但我仍然面临同样的错误:

    No API token found for service account \"default\", retry after the token is automatically created and added to the service account\
    

另一种方法在 apiservice 上删除 SecurityContextDeny,ServiceAccount 之前:

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"

后:

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,LimitRanger,ResourceQuota"

仍然错误:

No API token found for service account \"default\", retry after the token is automatically created and added to the service account\

我该如何解决?

4

1 回答 1

0

我遇到了同样的问题,并按照以下步骤操作。

  1. 检查下一页的最后一部分并根据您的 Kubernetes 版本匹配 --admission-control https://kubernetes.io/docs/admin/admission-controllers/
  2. Kube-Api 服务器必须有“--service-account-key-file”,它应该指向 API 服务器用于认证的公钥
  3. Kube-Controller 必须有 "--service-account-private-key-file" 并且它应该指向 API server 用于认证的私钥
  4. 确保 API 服务器先启动,然后控制器服务启动,并确保控制器服务在启动时没有抛出任何错误。

验证以下内容

  1. kubectl get serviceaccounts --> 输出必须显示具有一个密码的默认帐户。 在此处输入图像描述

  2. kubectl get secrets --> 输出必须具有服务帐户的默认令牌 在此处输入图像描述

  3. kubectl describe secrets/default-token-qxxw6 --> 它必须在 Data 部分显示 ca.crt 和 token 在此处输入图像描述

如果没有任何效果,则停止您的集群,主节点和节点上的所有服务。然后删除干净的 ETCD 数据库,将您的网络配置加载到 ETCD 并将集群作为新集群启动。

于 2018-03-24T18:37:39.783 回答