Kubernetes MirrorMaker2 无法加载 Secret

Kubernetes MirrorMaker2 Cannot Load Secret

我有一个奇怪的问题,没人能查明。为了确保这不是 Azure Kubernetes 问题,我还启动了 minikube 以在本地进行测试,但我遇到了同样的错误。 MirrorMaker2 的 Strimzi 0.28 的共同点。

您可以在此处阅读整个主题,以备不时之需。我们陷入了死胡同。整个讨论的 link 是 strimzi 下的 github;

我移动了它,因为我不想发送垃圾邮件,因为一位名叫 scholzj 的绅士提供了帮助并提供了一些很好的建议。但似乎没有任何效果。

这是我所做的。

创造秘密

为了发布目的,用 替换了实际数据。

cat <<EOF | kubectl apply -n kafka-cloud -f - 
apiVersion: v1
kind: Secret
metadata:
  name: eventhubssecret
  namespace: kafka-cloud
type: Opaque
stringData:
  eventhubspassword: Endpoint=sb://<name>.servicebus.windows.net/;SharedAccessKeyName=<keyName>;SharedAccessKey=<password>
EOF

已验证并显示命名空间“kafka-cloud”中存在的值。

运行 镜子制造商 2

cat <<EOF | kubectl apply -n kafka-cloud -f -
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker2
metadata:
  name: mirror-maker-eventhub
spec:
  version: 3.1.0
  replicas: 1
  connectCluster: "eventhub"
  clusters:
  - alias: "my-kafka-cluster"
    bootstrapServers: my-cluster-kafka-bootstrap:9092
  - alias: "eventhub"
    bootstrapServers: <name>.servicebus.windows.net:9093
    config:
      config.storage.replication.factor: 1
      offset.storage.replication.factor: 1
      status.storage.replication.factor: 1
      producer.connections.max.idle.ms: 180000
      producer.metadata.max.age.ms: 180000
    authentication: 
      type: plain 
      username: $ConnectionString
      passwordSecret: 
        secretName: eventhubssecret 
        password: eventhubspassword
    tls:
      trustedCertificates: []
  mirrors:
  - sourceCluster: "my-kafka-cluster"
    targetCluster: "eventhub"
    sourceConnector:
      config:
        replication.factor: 1
        offset-syncs.topic.replication.factor: 1
        sync.topic.acls.enabled: "false"
    heartbeatConnector:
      config:
        heartbeats.topic.replication.factor: 1
    checkpointConnector:
      config:
        checkpoints.topic.replication.factor: 1
    topicsPattern: ".*"
    groupsPattern: ".*"
EOF

它被创建了;

然后在描述中我们在另一台机器上的 azure 和 minikube 中都得到了这个。共同点是 strimzi 0.28 v1beta2。我在 azure 和 mirrormaker2 上看到的所有例子都比较老。但是我们想不通为什么secret没有传出去??

Status:
  Conditions:
    Last Transition Time:  2022-03-17T00:13:53.909810Z
    Message:               PLAIN authentication selected, but username or password configuration is missing.
    Reason:                InvalidResourceException
    Status:                True
    Type:                  NotReady
  Observed Generation:     1
  Replicas:                0
Events:                    <none>

以前有没有人见过这种行为,如果有,我错过了什么?或者这是 strimzi 和 Mirrormaker2 的错误?我只需要测试将数据从 Kafka 移动到 Event Hub,并认为 MirrorMaker2 是可行的方法。但是过了两天,我开始怀疑了。

谢谢。

问题是使用 cat <

我认为这是因为用户名中的 $。 EH 需要这个作为连接的实际用户名。一旦我将上面的内容变成 cat <<EOF and the last EOF 之间的文件,它就从 CLI 运行 不做任何更改。

成功了。

kubectl apply -n kafka-cloud -f fileName.yaml

使用 EH 使用文件时,不要 cat <