• 安装部署
  • v3.1.0版本启用可插拔组件时,会还原之前的一些修改

KubeSphere版本信息,例如:v3.1.0

问题描述:之前将ks-apiserver的svc改成NodePort方式了,在开启应用商店的时候,ks-apiserver的svc被还原成ClusterIP方式了。

    lingyun
    你所描述的情况确实是ks-installer的工作逻辑,在每次触发ks-installer部署操作后(如:启用新组件/重启Pod等),它都会将KubeSphere的每个组件apply一次,表现为你的改动被还原了。

    针对你这个特定的问题,建议为ks-apiserver创建一个新的NodePort Service,就不会受到ks-installer的影响了。

      kevendeng 好的,还有两个相关的问题:
      1、我之前有一次NodePort被还原了,但是我没有做任何事情,不知道它为啥会被还原,我看了下源码,有个每个月月初的定时任务,会不会是这个导致的

      2、我最近在构建一些组件的arm镜像,将镜像换成了自己打的镜像之后(tag不一样),也遇到了镜像还原的问题。那是不是只有两种解决方法:①、要么去更改ks-installer里指定的镜像版本,然后重新打包ks-installer;②、要么把镜像打成和原来的tag一样;还有其它的方法吗?

        lingyun

        1. ks-installer的执行是由 shell-operator 触发的,在./controller文件夹下的两个可执行文件 installRunner.pyschedule.sh 均放在了 shell-operator 的 hook 路径下,其中前者由ClusterConfiguration对象的增删触发,而后者由定时器定时触发。同时,若ks-installer所在Pod或Container重启,同样会触发执行。所以你所提到的情况是如何被触发的,需要进一步确认。
        2. 你的解决方案应该是正确的。此外,如果你不再需要ks-installer运行,也可以直接将它的deployment副本数scale到0。

          kevendeng 好的,谢谢,关于第二点还有一些疑问:
          1、如果我将ks-installer的副本数改为0之后,是不是只会影响了组件热插拔和多集群开启的功能,其它功能会影响吗?
          2、kubekey和ks-installer它俩的区别是:kubekey负责安装kubernetes,然后调用ks-installer,由ks-installer负责安装
          kubesphere吗?
          3、关于前面说的ks-installer修改还原的情况,是会当成问题在后面的版本修复吗?

            lingyun

            1. ks-installer的工作是安装/卸载 KS的各个组件,你指的其他功能是?
            2. 你的理解是正确的。
            3. 这一点最新版的ks-installer应该已经实现了

              kevendeng 好的,多谢指点。关于第一点的其它功能,我只是担心还有一些我没想到的功能,怕会受到影响,现在看来应该是没有了。