如何创建自己的Kubernetes Strimzi Operator的Kafka用户证书和密钥?

问题描述 投票:1回答:1

正如我们默认情况下创建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
kubernetes apache-kafka kubernetes-helm kubernetes-pod strimzi
1个回答
0
投票

我自己回答我的问题!

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部署文件(kindKafkaUser)格式后,将用户名替换为上面创建的用户名,然后执行:

kubectl apply -f kafka-create-user.yml

注意:在这里,如果我们像在STEP1和STEP2中那样在创建自定义用户之前运行kubectl apply -f kafka-create-user.yml,则Strimzi将使用自己的user.crtuser.key]创建一个用户。

FYI,我共享的是用于用户自定义crt

和用户自定义key,但是对于操作员群集CA(crt和密钥),我们在此处提供官方文档:https://strimzi.io/docs/master/#installing-your-own-ca-certificates-str

关于,Sudhir Tataraju

© www.soinside.com 2019 - 2024. All rights reserved.