gpt4 book ai didi

kubernetes - K3s - 使用客户端证书创建用户

转载 作者:行者123 更新时间:2023-12-02 03:01:07 25 4
gpt4 key购买 nike

我尝试使用客户端证书创建用户帐户。

我遵循了两个教程,但在消息错误中坚持使用这两个选项

https://medium.com/better-programming/k8s-tips-give-access-to-your-clusterwith-a-client-certificate-dfb3b71a76fe

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

我设置了正确的用户、服务器和正确的上下文。我设置了命名空间但仍然是同样的错误。

> kubectl get pods
You must be logged in to the server (Unauthorized)

有人经历过类似的事情吗?或者有人知道我做错了什么?

我的k3s集群版本是1.15.4。

最佳答案

根据您发布的错误,您的用户仅在身份验证阶段失败(HTTP 错误代码:401),您可以使用以下方法验证相同内容:

$ k get pods -v=6
...
I0123 16:34:18.842853 29373 helpers.go:203] server response object: [{
...
"code": 401
}]
F0123 16:34:18.842907 29373 helpers.go:114] error: You must be logged in to the server (Unauthorized)

使用以下步骤调试您的设置:

  1. 验证您是否按照预期使用了正确的上下文和正确的用户(当前列中带有 *):

    $ kubectl config get-contexts 
    CURRENT NAME CLUSTER AUTHINFO NAMESPACE
    * context-user-ca-signed kubernetes user-user-ca-signed ns1
    kubernetes-admin@kubernetes kubernetes kubernetes-admin
  2. 验证 Kubernetes API 服务器的 CA 证书(假设 API 服务器作为 Pod 运行):

    $ sudo cat /etc/kubernetes/manifests/kube-apiserver.yaml | grep -i "\-\-client-ca-file"
    - --client-ca-file=/etc/kubernetes/pki/ca.crt

    $ openssl x509 -in /etc/kubernetes/pki/ca.crt -text -noout | grep -i "Issuer:\|Subject:"
    Issuer: CN = kubernetes
    Subject: CN = kubernetes
  3. 验证您的用户证书是否由上述 CA 签名(用户证书的颁发者 CN 与 CA 证书的主题 CN 相同,此处为“kubernetes”),该证书在 API 服务器中配置:

    $ kubectl config view --raw -o jsonpath="{.users[?(@.name == \"user-user-ca-signed\")].user.client-certificate-data}" | base64 -d > client.crt

    $ openssl x509 -in client.crt -text -noout | grep -i "Issuer:\|Subject:"
    Issuer: CN = kubernetes
    Subject: C = IN, ST = Some-State, O = Some-Organization, CN = user-ca-signed

如果上述步骤适合您创建的用户,您应该传递 Authentication阶段。但是Authorization阶段仍然需要使用 RBAC、ABAC 或任何其他支持的授权模式进行配置,否则您仍然可能会收到 HTTP 错误代码:403

$ kubectl get pods -v=6
I0123 16:59:41.350501 28553 helpers.go:203] server response object: [{
...
"code": 403
}]
F0123 16:59:41.351080 28553 helpers.go:114] Error from server (Forbidden): pods is forbidden: User "user-ca-signed" cannot list resource "pods" in API group "" in the namespace "ns1": No policy matched.

关于kubernetes - K3s - 使用客户端证书创建用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59940927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com