正如我们默认情况下创建Strimzi-Kafka用户时所知,用户会在Kubernetes secrets-manager中创建自己的user.crt和user.key,但是我想使用自己的user.crt和user.key,是吗?可行吗?
而不是先创建用户,然后用我们自己的密钥替换!我们是否可以选择在运行时用户创建时传递自己的crt键?我们可以在部署文件中指定某种方式吗?
来自官方文档:我得到了这个https://strimzi.io/docs/master/#installing-your-own-ca-certificates-str,但它是kind:Kafka
而不是kind:KafkaUser
的,因为我们知道kind:KafkaUser
用于创建用户。
但是,我尝试为kind:KafkaUser
添加generateCertificateAuthority:以避免strmzi为用户准备密钥和crt并存储在k8s secrects-manager中,以便在用户创建后为用户添加我自己的密钥,但是没有运气。您能否分享最好的方法或简单的Yaml来达到相同的目的?
apiVersion: kafka.strimzi.io/v1alpha1
kind: KafkaUser
metadata:
name: vegeta
labels:
strimzi.io/cluster: kafkacluster
spec:
authentication:
type: tls
clusterCa:
generateCertificateAuthority: false
clientsCa:
generateCertificateAuthority: false
我自己回答我的问题!
STEP1:
kubectl -n <namespace> create secret generic <ca-cert-secret> --from-file=ca.crt=<ca-cert-file>
例如:
kubectl -n kafka create secret generic custom-strimzi-user --from-file=ca.crt=ca-decoded.crt --from-file=user.crt=user-decoded.crt --from-file=user.key=user-decoded.key -o yaml
STEP2:
kubectl -n <namespace> label secret <ca-cert-secret> strimzi.io/kind=<Kafka or KafkaUser> strimzi.io/cluster=<my-cluster>
例如:
kubectl -n kafka label secret custom-strimzi-user strimzi.io/kind=KafkaUser strimzi.io/cluster=kafka
STEP3:现在为上面创建的用户启用ACL和TLS:
Apply Strimzi正式提供的create user yaml部署文件(kind:KafkaUser)格式后,将用户名替换为上面创建的用户名,然后执行:
kubectl apply -f kafka-create-user.yml
注意:在这里,如果我们像在STEP1和STEP2中那样在创建自定义用户之前运行kubectl apply -f kafka-create-user.yml
,则Strimzi将使用自己的user.crt
和user.key
]创建一个用户。
FYI,我共享的是用于用户自定义crt
和用户自定义key,但是对于操作员群集CA(crt和密钥),我们在此处提供官方文档:https://strimzi.io/docs/master/#installing-your-own-ca-certificates-str关于,Sudhir Tataraju