Вы можете сделать это следующим образом:
cat <<EOF | kubectl create -f -
apiVersion: certificates.k8s.io/v1beta1
kind: CertificateSigningRequest
metadata:
name: rasa-service.default
spec:
groups:
- system:authenticated
request: $(cat server.csr | base64 | tr -d '\n')
usages:
- digital signature
- key encipherment
- server auth
EOF
Таким образом, он не сломается, или вам нужно поместить жестко закодированный вывод cat server.csr | base64 | tr -d '\n'
в файл yaml.
РЕДАКТИРОВАТЬ:
Я полагаю, что созданный вами CSR имеет некоторые проблемы.Вы можете запустить следующие три команды, чтобы проверить, можете ли вы создать CSR
openssl genrsa -out admin.key 2048
openssl req -new -key admin.key -out admin.csr -subj "/O=system:masters/CN=kubernetes-admin"
cat <<EOF | kubectl create -f -
apiVersion: certificates.k8s.io/v1beta1
kind: CertificateSigningRequest
metadata:
name: admin_csr
spec:
groups:
- system:authenticated
- system:masters
request: $(cat admin.csr | base64 | tr -d '\n')
usages:
- digital signature
- key encipherment
- client auth
EOF
Затем проверьте, сгенерировано admin_csr
или нет
EDIT2:
Я использовалто же самое руководство, которое вы упомянули в комментарии, и я могу создать CSR:
[root@ip-10-**-**-** cerificates]# cat <<EOF | cfssl genkey - | cfssljson -bare server
> {
> "hosts": [
> "ba***ta.default.svc.cluster.local",
> "ba***ta-57f6c65474-8rdhz.default.pod.cluster.local",
> "10.**.86.73",
> "192.**.13.10"
> ],
> "CN": "ba***ta-57f6c65474-8rdhz.default.pod.cluster.local",
> "key": {
> "algo": "ecdsa",
> "size": 256
> }
> }
> EOF
2018/12/05 12:00:11 [INFO] generate received request
2018/12/05 12:00:11 [INFO] received CSR
2018/12/05 12:00:11 [INFO] generating key: ecdsa-256
2018/12/05 12:00:12 [INFO] encoded CSR
[root@ip-10-**-**-** cerificates]# ls
server.csr server-key.pem
[root@ip-10-0-1-99 cerificates]# cat <<EOF | kubectl create -f -
> apiVersion: certificates.k8s.io/v1beta1
> kind: CertificateSigningRequest
> metadata:
> name: ba***ta.default
> spec:
> groups:
> - system:authenticated
> request: $(cat server.csr | base64 | tr -d '\n')
> usages:
> - digital signature
> - key encipherment
> - server auth
> EOF
certificatesigningrequest.certificates.k8s.io "ba***ta.default" created
[root@ip-10-**-**-** cerificates]# kubectl get csr
NAME AGE REQUESTOR CONDITION
ba***ta.default 6s kubernetes-admin Pending
csr-9dcz6 59m system:node:ip-10-**-**-**.ec2.internal Approved,Issued
[root@ip-10-0-1-99 cerificates]#