服务帐户x509:证书由未知授权机构签名

时间:2019-05-15 07:58:56

标签: kubernetes kubectl kops

我的服务帐户有问题。我创建了一个服务帐户,然后使用此指南创建了.key和.crt:

https://docs.bitnami.com/kubernetes/how-to/configure-rbac-in-your-kubernetes-cluster/

我使用了cluster_ca.key桶中的cluster_ca.crtKOPS_STATE_STORE(因为我使用kops创建集群)来创建用户ca.crt和{{1} }。然后我从秘密那里得到了令牌。

我这样设置上下文:

ca.key

使用该服务帐户令牌进行部署时,出现以下错误:

kubectl config set-cluster ${K8S_CLUSTER_NAME} --server="${K8S_URL}" --embed-certs=true --certificate-authority=./ca.crt
kubectl config set-credentials gitlab-telematics-${CI_COMMIT_REF_NAME} --token="${K8S_TOKEN}"
kubectl config set-context telematics-dev-context --cluster=${K8S_CLUSTER_NAME} --user=gitlab-telematics-${CI_COMMIT_REF_NAME}
kubectl config use-context telematics-dev-context

服务帐户,角色和RoleBinding YAML:

error: unable to recognize "deployment.yml": Get https://<CLUSTER_ADDRESS>/api?timeout=32s: x509: certificate signed by unknown authority

生成的--- apiVersion: v1 kind: ServiceAccount metadata: name: gitlab-telematics-dev namespace: telematics-dev --- kind: Role apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: telematics-dev-full-access namespace: telematics-dev rules: - apiGroups: ["", "extensions", "apps"] resources: ["deployments", "replicasets", "pods", "services"] verbs: ["*"] --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: telematics-dev-view namespace: telematics-dev subjects: - kind: ServiceAccount name: gitlab-telematics-dev namespace: telematics-dev roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: telematics-dev-full-access 对我来说很好:

kubeconfig

2 个答案:

答案 0 :(得分:0)

在这种情况下很难为您提供帮助。我在测试群集上复制了此内容,除了遵循Bitnami的分步教程并仔细检查名称之外,我没有其他建议。我能够成功创建用户gitlab-telematics-dev列表窗格,然后仅使用清单和链接的教程在telematics-dev名称空间中创建部署,因此问题不在配置或角色名称中。在我看来,您在此过程中不得不错过一些事情。

我可以建议您首先以创建的用户身份尝试命令。因此,当您能够列出Pod并以gitlab-telematics-dev身份创建部署时,您的部署也应该可以使用。

答案 1 :(得分:0)

我设法解决了这个问题。抱歉回复晚了。如果有人遇到相同问题,请发布此消息。

不需要以下行:

kubectl config set-cluster ${K8S_CLUSTER_NAME} --server="${K8S_URL}" --embed-certs=true --certificate-authority=./ca.crt

在我们发行令牌时,只能使用令牌。