Kubernetes API 身份验证

Kubernetes API authentication

我关注了these instructions for setting up a kubernetes cluster on AWS using kops.

然后我就能够 运行 kubectl create -f ... 命令来获取应用程序 运行ning。

我可以在我的浏览器中访问(我认为是)https://api.useast1.dev.example.com/ 处的 API。

这会提示进行身份验证,我通过 运行ning

获得的凭据
kubectl config view --minify

根据 these instructions from the kops github

然后API显示:

{
  "paths": [
    "/apis",
    "/apis/",
    "/apis/apiextensions.k8s.io",
    "/apis/apiextensions.k8s.io/v1beta1",
    "/healthz",
    "/healthz/etcd",
    "/healthz/ping",
    "/healthz/poststarthook/generic-apiserver-start-informers",
    "/healthz/poststarthook/start-apiextensions-controllers",
    "/healthz/poststarthook/start-apiextensions-informers",
    "/metrics",
    "/swagger-2.0.0.json",
    "/swagger-2.0.0.pb-v1",
    "/swagger-2.0.0.pb-v1.gz",
    "/swagger.json",
    "/swaggerapi",
    "/version"
  ]
}

现在我正在尝试设置 GitLab CI,它请求一个 API 端点和一个服务令牌。

我使用 these instructions from kubernetes 创建了一个服务令牌,但我还没有完成 imagePullSecret 部分。

但是,当我尝试在 kubernetes 集群上进行任何操作时(例如安装 Helm Tiller),它给了我:Kubernetes error: Unauthorized。我认为这是因为我没有给它任何访问该 API 的凭据。

如何设置 kubernetes 集群,使 Gitlab 不需要这些凭据来访问 API?

好的,对于令牌是什么有点困惑。

获取令牌的最佳方式是:

kubectl get secrets

列出秘密

然后

kubectl describe secret SECRET_NAME

取回令牌。