如何解决访问多个集群的参数 验证您的 CSR 对象验证您的 Bob 的证书
我想访问在私有云中运行的外部 k8s 集群。你知道我怎样才能得到这些参数吗?我应该怎么做才能生成它们?
${CLIENT_CERTIFICATE_DATA} 假证书文件 假密钥文件
apiVersion: v1
kind: Config
clusters:
- cluster:
certificate-authority-data: ${CLUSTER_CA}
server: ${CLUSTER_ENDPOINT}
name: ${CLUSTER_NAME}
users:
- name: ${USER}
user:
client-certificate-data: $**{CLIENT_CERTIFICATE_DATA}**
contexts:
- context:
cluster: ${CLUSTER_NAME}
user:
client-certificate: **fake-cert-file**
client-key: **fake-key-file**
name: ${USER}-${CLUSTER_NAME}
current-context: ${USER}-${CLUSTER_NAME}
解决方法
允许“bob”用户访问的步骤如下:
通过 openssl 创建一个新的 CSR
openssl req -new -newkey rsa:4096 -nodes -keyout bob-k8s.key -out bob-k8s.csr -subj "/CN=bob/O=devops"
创建 Kubernetes CertificateSigningRequest 对象
使用
kubectl create –edit -f k8s-csr.yaml
你应该输入以下内容
apiVersion: certificates.k8s.io/v1beta1
kind: CertificateSigningRequest
metadata:
name: bob-k8s-access
spec:
groups:
- system:authenticated
request: # replace with output from shell command: cat bob-k8s.csr | base64 | tr -d '\n'
usages:
- client auth
验证您的 CSR 对象
kubectl get csr
批准您的证书
kubectl certificate approve bob-k8s-access
验证您的 Bob 的证书
kubectl get csr bob-k8s-access -o jsonpath='{.status.certificate}' | base64 --decode > bob-k8s-access.crt
获取集群 CA 证书
kubectl config view -o jsonpath='{.clusters[0].cluster.certificate-authority-data}' --raw | base64 --decode - > k8s-ca.crt
设置 Bob 的 kubeconfig 文件
$ kubectl config set-cluster $(kubectl config view -o jsonpath='{.clusters[0].name}') --server=$(kubectl config view -o jsonpath='{.clusters[0].cluster.server}') --certificate-authority=k8s-ca.crt --kubeconfig=bob-k8s-config --embed-certs
执行此命令后,应使用 Bob 的 .kube 配置创建一个 bob-k8s-config
文件
设置 Bob 的凭据访问
kubectl config set-credentials bob --client-certificate=bob-k8s-access.crt --client-key=bob-k8s.key --embed-certs --kubeconfig=bob-k8s-config
在您的配置中创建上下文
kubectl config set-context bob --cluster=$(kubectl config view -o jsonpath='{.clusters[0].name}') --namespace=<ns-for-bob> --user=bob --kubeconfig=bob-k8s-config
在命名空间内分配角色
kubectl create rolebinding bob-admin --namespace=<ns-for-bob> --clusterrole=admin --user=bob
有关权限的更多信息,请查看Kubernetes configuration page
我已从 this guide 开始编写此说明,它更详尽!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。