【发布时间】:2021-04-03 02:33:20
【问题描述】:
出于学习目的,我正在 Windows 环境中开发 Minikube 集群。我正在尝试一些身份验证和授权方法。以下是所涉及的步骤。
- 使用 openssl 创建了一个私钥
- 使用 openssl 创建了证书签名请求
- 为证书签名请求对象创建了 YAML 清单
apiVersion: certificates.k8s.io/v1
kind: CertificateSigningRequest
metadata:
name: student-csr
spec:
groups:
- system:authenticated
request: <encoded value>
signerName: kubernetes.io/kube-apiserver-client
usages:
- digital signature
- key encipherment
- client auth
我提供了证书内容的 base64 编码值作为请求字段的值。
- 已创建证书签名请求对象
kubectl create -f signing-request.yaml
- 已批准的证书签名请求
kubectl certificate approve student-csr
- 从证书签名请求中提取批准的证书,用base64解码并保存为证书文件
kubectl get csr student-csr -o jsonpath='{.status.certificate}' | base64 --decode > student.crt
现在,当我尝试通过提供密钥和证书来使用学生用户的凭据配置 kubectl 客户端配置时,
kubectl config set-credentials student --client-certificate=student.crt --client-key=student.key
它会引发以下错误。
error: Rel: can't make F:\CKAD\BasicLF\rbac\student.crt relative to C:\Users\Nilucshan\.kube
我正在从我的工作目录 (F:\CKAD\BasicLF\rbac) 执行我的 kubectl 命令。 kubectl.exe 放在C盘。
但如果我将密钥和证书文件放在C:\Users\Nilucshan\.kube 目录中,它会成功。
这里有什么问题?为什么将我的密钥和证书文件放在我的工作目录中时它不起作用?
【问题讨论】:
标签: kubernetes kubectl minikube