使用tidb-operator 1.3.2版本,对于PD里面的ssl配置要求

问一个问题,如果我这边operator的版本使用1.3.2的话,并且设置:


图中标记的值为true,那么pd的configmap中,还默认必须得加上ca.crt信息吗?
目前我用1.2.6版本的operator,开启mysql客户端和tidb实例之间的ssl之后,PD的configmap还是有这个配置,需要在secret里面加上ca证书的信息实例才能被重启。如果我开启问题中的那个免去CA认证的配置之后,还必须在secret里面加上ca证书的信息吗?

看代码是不需要了,可以测一下。如果是不设置 ca 也不设置 cert 和 key,pd dashboard 发到 tidb-server 的请求不是 tls 加密的,同时设置了 disableClientAuthn,则 tidb-server 不检查客户端证书。

这个你找个环境测试一下

刚试了一下:
spec.tidb 这样配置

    tlsClient:
      enabled: true
      disableClientAuthn: false
      skipInternalClientCA: true

自动生成的 pd cm 是

  config-file: |
    [dashboard]
      internal-proxy = true
      tidb-cert-path = "/var/lib/tidb-client-tls/tls.crt"
      tidb-key-path = "/var/lib/tidb-client-tls/tls.key"

可以达到你要的效果。
spec.tidb 这样配置

    tlsClient:
      enabled: true
      disableClientAuthn: true
      skipInternalClientCA: false

自动生成的 pd cm 是

  config-file: |
    [dashboard]
      internal-proxy = true
      tidb-cacert-path = "/var/lib/tidb-client-tls/ca.crt"
      tidb-cert-path = "/var/lib/tidb-client-tls/tls.crt"
      tidb-key-path = "/var/lib/tidb-client-tls/tls.key"

则不行,还是需要 ca。

也可以设置 mountClusterClientSecret: false,然后通过 设置 spec.pd.config、spec.pd.additionalVolumes、spec.pd.additionalVolumeMounts 来自定义 证书挂载。

1 个赞

感谢,清楚了~之前我这边不是想在环境升级下operator到1.3.2失败了吗,就没办法测tlsClient.
disableClientAuthn 这个api配置的影响,现在清楚了。等公司这边把k8s版本升上去成功部署1.3.2版本的operator之后我再试试

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。