eip-work / kuboard-press

Kuboard 是基于 Kubernetes 的微服务管理界面。同时提供 Kubernetes 免费中文教程,入门教程,最新版本的 Kubernetes v1.23.4 安装手册,(k8s install) 在线答疑,持续更新。
https://kuboard.cn/
22.27k stars 1.51k forks source link

nginx有128个线程,占用内存5GB,太大了 #389

Open dignfei opened 1 year ago

dignfei commented 1 year ago

因为电脑是128核心,docker版本的kuboard会自动设置nginx的配置,无法修改进程数,导致进程数默认128个,占用内存5gb,太大了

dignfei commented 1 year ago

内存占用太大,只能弃用kuboard。希望提供一个配置,能修改worker_processes的参数,或者取消 “worker_processes auto”,让我能自定义nginx的进程数

hellowillwan commented 1 year ago

也发现这个问题,版本 v3.5.2.3 和 v3.5.2.4,由于以下报错会循环重启,大约一小时会占用完系统全部 8GB 内存,导致 oom kill ,错误日志如下: AuthUserInGroup GLOBAL/admin.administrators kuboard_1 | [LOG] 2023/04/26 - 18:32:35.019 | /initializekuboard.processEtcdObject 124 | info | - 更新对象:KuboardAuthGlobalRoleBinding GLOBAL/group.administrators.administrator kuboard_1 | [LOG] 2023/04/26 - 18:32:35.021 | /login.AddLoginRoutes 28 | error | 认证模块初始化失败:Get "http://127.0.0.1:5556/sso/.well-known/openid-configuration": dial tcp 127.0.0.1:5556: connect: connection refused kuboard_1 | panic: runtime error: invalid memory address or nil pointer dereference kuboard_1 | [signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0xd73477] kuboard_1 | kuboard_1 | goroutine 1 [running]: kuboard_1 | github.com/coreos/go-oidc.(*Provider).Verifier(...) kuboard_1 | /usr/src/kuboard/third-party/go-oidc/verify.go:111 kuboard_1 | github.com/shaohq/kuboard/server/login.AddLoginRoutes(0xc0004249c0) kuboard_1 | /usr/src/kuboard/server/login/login.go:30 +0xf7 kuboard_1 | main.getRoutes() kuboard_1 | /usr/src/kuboard/server/kuboard-server.go:191 +0x345 kuboard_1 | main.main() kuboard_1 | /usr/src/kuboard/server/kuboard-server.go:65 +0x185 kuboard_1 | kuboard_1 | 启动 kuboard-server 失败,此问题通常是因为 Etcd 未能及时启动或者连接不上,系统将在 15 秒后重新尝试: kuboard_1 | 1. 如果您使用 docker run 的方式运行 Kuboard,请耐心等候一会儿或者执行 docker restart kuboard; kuboard_1 | 2. 如果您将 Kuboard 安装在 Kubernetes 中,请检查 kuboard/kuboard-etcd 是否正常启动。 ...

请问这个报错如何处理?

pycgo commented 1 year ago

看起来后端后更新配置文件 所以无法挂载替换解决 [LOG] 11/09/2023 - 17:04:43.814 | /kuboard/k8scluster. AggiornamentoNginxConfig 38 | info | UpdateNginxConfig per cluster: test Porta: 35001

临时解决方案 容器内部执行 apt update & & apt install vim 然后修改 vim /etc/nginx/nginx.conf

nginx -s reload 重启只能临时生效 容器重启还会变化

只能等作者改了

pycgo commented 1 year ago

有解决办法 挂载一个修改过后nginx.conf 在本地先 chattr +i nginx.conf

前提是你的k8s集群已经加好了然后进去拷贝配置出来替换,如果后期增加新的k8s集群需要再手动更换一次nginx.conf

然后重跑

version: "3"
services:
  kuboard:
    image: eipwork/kuboard:v3
    ports:
      - "80:80"
      - "10081:10081"
    environment: 
      - KUBOARD_ENDPOINT=http://10.176.200.199:80
      - KUBOARD_AGENT_SERVER_TCP_PORT=10081
    volumes:
      - /root/kuboard-data/nginx.conf:/etc/nginx/nginx.conf
      - /root/kuboard-data:/data
    networks:
      - webnet
networks:
  webnet:

日志会提示 LOG] 2023/09/13 - 17:52:33.789 | /kuboard/k8scluster.UpdateNginxConfig 98 | warning | cannot update /etc/nginx/nginx.conf. open /etc/nginx/nginx.conf: operation not permitted

哈哈他改不了文件了 只能是我们挂载的文件

然后ps 看一下 完美解决

[root@docker kuboard-data]# ps -ef|grep nginx root 3334 3215 0 17:52 ? 00:00:00 nginx: master process nginx 33 3335 3334 0 17:52 ? 00:00:00 nginx: worker process root 3357 1444 0 17:55 pts/0 00:00:00 grep --color=auto nginx [root@docker kuboard-data]#