You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Kubernetes YAML生成用户认证CSR失败求助

解决Kubernetes CSR创建失败的问题

从你提供的错误信息和YAML文件来看,有两个核心问题导致了创建失败:

1. CSR请求的Base64数据损坏

错误信息里明确提到 decode base64: illegal base64 data at input byte 76,这是因为你的spec.request字段中混入了大量无效的非Base64字符(比如中文乱码:击倒长时间Y二十这类内容)。Base64编码仅允许包含A-Z、a-z、0-9、+、/和=这些字符,任何其他字符都会直接导致解码失败。

修复方法:

  • 先用OpenSSL生成合法的CSR文件:
    # 生成私钥和对应的CSR文件,按提示填写信息即可
    openssl req -new -newkey rsa:2048 -nodes -keyout akshay.key -out akshay.csr
    
  • 将生成的CSR文件转换为无换行的Base64编码(Kubernetes要求不能有换行):
    cat akshay.csr | base64 | tr -d '\n'
    
  • 把上面命令输出的结果完全替换到YAML的spec.request字段中。

2. API版本过时且字段取值不兼容

你使用的certificates.k8s.io/v1beta1版本已经被官方废弃(从Kubernetes 1.19开始,推荐使用v1版本),并且v1版本的spec.usages字段要求使用驼峰式枚举值,而不是v1beta1中的空格分隔字符串。

修复方法:

  • 将API版本改为certificates.k8s.io/v1
  • 将usages中的client auth修改为clientAuth(这是v1版本的合法取值)

修正后的完整YAML示例

apiVersion: certificates.k8s.io/v1
kind: CertificateSigningRequest
metadata:
  name: akshay
spec:
  groups:
  - system:authenticated
  usages:
  - clientAuth
  # 替换成你自己生成的合法Base64编码的CSR内容
  request: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ1ZqQ0NBVDRDQVFBd0VURVBNQTBHQTFVRUF3d0dZV3R6YUdGNU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRgpBQU9DQVE4QU1JSUJDZ0tDQVFFQTdoSWlVNHVyV0thdzliSStyK2MvWFh3clZjSGE2Y0ZFbTBrVElOOCtCcW05Ck5ZdW1T OHYrZVFab1NPWEFzdnliTHZWaHphMGZBSllPZzloOGpIZnFzM1ZubXJBa3FPdXJ6ZEdwSXR6aHlP S0IKaGZXVXcxZlpqUE85bUZVM3NaYzVHSVpOU3p0Q2M5eU5oNk1sN1ZUT1JqN1RSbDhrOWs9Ci0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQo=

验证创建

修复完成后,执行以下命令创建CSR:

kubectl apply -f cert.yaml

可以用这条命令查看CSR的状态:

kubectl get csr akshay

内容的提问来源于stack exchange,提问作者naveen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:22:37