selectdb / doris-operator

Doris kubernetes operator
Apache License 2.0
66 stars 33 forks source link

operator设置doris管理员AdminUser配置项不生效 #131

Closed anthony-yau closed 3 months ago

anthony-yau commented 3 months ago

版本:1.4.1(当前最新)

通过设置 AdminUser 后不能完成设置管理员密码的功能,是还没实现吗?

intelligentfu commented 3 months ago

已经实现,请贴一下现象,doriscluster的yaml以及环境。

anthony-yau commented 3 months ago

已经实现,请贴一下现象,doriscluster的yaml以及环境。

yaml文件:

apiVersion: doris.selectdb.com/v1
kind: DorisCluster
metadata:
  labels:
    app.kubernetes.io/name: doris-testxx
    app.kubernetes.io/instance: doris-testxx
    app.kubernetes.io/part-of: doris-operator
  name: doris-testxx
  namespace: default
spec:
  adminUser:
    name: dsadmin
    password: DSf@x2412
  # FE配置
  feSpec:
    # 指定参与选举的数量,其他的为仲裁节点
    electionNumber: 3
    # 副本数, 1主2从
    replicas: 3
    image: xxx
    # 配置服务类型, 如果要在集群外访问,需要使用LoadBalancer等类型
    service:
      type: "ClusterIP"
    # 资源配置
    requests:
      cpu: 8
      memory: 16Gi
    limits:
      cpu: 16
      memory: 32Gi
    # 持久化配置
    persistentVolumes:
    - mountPath: /opt/apache-doris/fe/doris-meta
      name: femeta
      persistentVolumeClaimSpec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 200Gi
    - mountPath: /opt/apache-doris/fe/log
      name: felog
      persistentVolumeClaimSpec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 200Gi
    # 初始配置
    systemInitialization:
      command: [ "/sbin/sysctl", "-w", "vm.max_map_count=2000000" ]
  # BE配置
  beSpec:
    # 副本数
    replicas: 3
    image: xxx
    # 资源配置
    requests:
      cpu: 8
      memory: 16Gi
    limits:
      cpu: 16
      memory: 64Gi
    # 持久化配置
    persistentVolumes:
    - mountPath: /opt/apache-doris/be/storage
      name: bedata
      persistentVolumeClaimSpec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 200Gi
    - mountPath: /opt/apache-doris/be/log
      name: belog
      persistentVolumeClaimSpec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 200Gi
    # 初始配置
    systemInitialization:
      command: [ "/sbin/sysctl", "-w", "vm.max_map_count=2000000" ]

kubectl version

Client Version: version.Info{Major:"1", Minor:"22+", GitVersion:"v1.22.5-tke.15", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"22+", GitVersion:"v1.22.5-tke.15", Compiler:"gc", Platform:"linux/amd64"}

doris operator

spec: containers:

anthony-yau commented 3 months ago

没看到什么具体错误现象,就是没有创建Yaml里面定义的user。operator日志也没搜索到相关日志(或者搜索错了)。

image

intelligentfu commented 3 months ago

AdminUser的使用场景是创建出集群后,更改了root的密码。这个时候需要新建管理节点的用户并赋值密码,然后配置到AdminUser,或者配置root 的用户名密码。 adminUser的使用场景是节点管理时使用。

anthony-yau commented 3 months ago

AdminUser的使用场景是创建出集群后,更改了root的密码。这个时候需要新建管理节点的用户并赋值密码,然后配置到AdminUser,或者配置root 的用户名密码。 adminUser的使用场景是节点管理时使用。

好的,谢谢,那没看懂文档部分描述了。

那有没有可能实现,初装集群后,把root密码设置下的能力。

intelligentfu commented 3 months ago

AdminUser的使用场景是创建出集群后,更改了root的密码。这个时候需要新建管理节点的用户并赋值密码,然后配置到AdminUser,或者配置root 的用户名密码。 adminUser的使用场景是节点管理时使用。

好的,谢谢,那没看懂文档部分描述了。

那有没有可能实现,初装集群后,把root密码设置下的能力。

不能这么干,自动设置密码肯定是固定的,这么做会导致集群拥有后门,是一个很大的安全漏洞。而且,如果用户改了密码,那么后期节点重启有可能出现无法启动,集群也无法恢复的情况。注意能力设计的最根本的原则要包括安全。

intelligentfu commented 3 months ago

纵观所有数据库,没有帮忙初始化密码的,这是最基本的安全底线,doris operator也不会这么干。

anthony-yau commented 3 months ago

纵观所有数据库,没有帮忙初始化密码的,这是最基本的安全底线,doris operator也不会这么干。

那太绝对了吧,MySQL就是因为安全性,默认生成一个密码。

intelligentfu commented 3 months ago

纵观所有数据库,没有帮忙初始化密码的,这是最基本的安全底线,doris operator也不会这么干。

那太绝对了吧,MySQL就是因为安全性,默认生成一个密码。

https://github.com/mysql/mysql-operator/blob/trunk/mysqloperator/sidecar_main.py#L109 image