跳到主要内容

环境检测参数

以 CentOS 7.9 服务器为例

User

说明:运行脚本时的用户

要求:因使用到 docker,所以需要 root 用户或者具有 root 权限的用户

Selinux

说明:Linux 安全系统

要求:因使用到 docker,需关闭 Selinux

临时关闭:setenforce 0

永久关闭:修改 /etc/selinux/config 中的 SELINUX=enforcing 或 SELINUX=permissiveSELINUX=disabled

Firewalld

说明:自带的防火墙工具。建议关闭防火墙,容易与 iptables 规则冲突,云服务器可使用安全组规则进行网络控制

临时关闭:systemctl stop firewalld(关闭防火墙后需要重启 docker 服务,否则规则会有可能丢失导致网络异常)

永久关闭:systemctl disable firewalld

CPU

说明:处理器核心数量

要求:最低 8 核

Memory

说明:内存大小

要求:最低 32G 内存容量

docker

说明:环境变量中需要有 docker 命令且可执行成功

要求:通过 RPM 安装后会自动添加至 PATH 环境变量,二进制安装需手动添加至环境变量

dockerd

说明:环境变量中需要有 dockerd 命令且可执行成功

要求:通过 RPM 安装后会自动添加至 PATH 环境变量,二进制安装需手动添加至环境变量

container

说明:容器内进程实际可用的文件描述符限制。Docker v29 同步更新 containerd v2.1.5 后,容器会使用 systemd 默认的 LimitNOFILEulimit -n 可能降至 1024。该变化会影响所有容器,可能导致数据库、中间件等服务因文件句柄不足,出现启动失败或运行异常。

调整方法:修改或新建 /etc/docker/daemon.json,增加 default-ulimits 配置,并将 nofile 设置为 102400

{
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Soft": 102400,
"Hard": 102400
}
}
}

调整后需重启 docker 服务生效。

MaxMapCount

说明:限制一个进程可以拥有的 VMA(虚拟内存区域)的数量,内置 Elasticsearch 需要调整才可成功启动

临时调整:sysctl -w vm.max_map_count=262144

永久调整:/etc/sysctl.conf 文件增加 vm.max_map_count=262144

SysFileNr

说明:操作系统级别的文件描述符限制

临时调整:sysctl -w fs.file-max=2048000

永久调整:/etc/sysctl.conf 文件增加 fs.file-max=2048000

IPv4Forward

说明:docker 对外提供服务需要开启

临时调整:sysctl -w net.ipv4.ip_forward=1

永久调整:/etc/sysctl.conf 文件增加 net.ipv4.ip_forward=1

DockerCgroupDrive

说明:docker 容器使用的 Cgroup 驱动。如检测结果为 systemd,可能出现容器内文件描述符数量不足的问题;如提示 dockerd is not running,则需要先启动 docker 服务:systemctl start docker

调整方法:修改或新建 /etc/docker/daemon.json,增加 exec-opts 配置,将 Cgroup 驱动设置为 cgroupfs

{
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}

调整后重启 docker 服务生效。

DockerdFileNr

说明:docker 内的文件描述符数量,如为 dockerd is not running 则需要启动 dockerd systemctl start docker

永久调整:例如通过 systemd 启动 docker 服务,则在 docker.service 文件中设置 LimitNOFILE=102400

DockerdVersion

说明:docker 运行版本,如低于指定版本则可能产生权限异常或未知异常

要求:升级 Docker 版本大于等于20.10.16

Umask

说明:umask 值用于设置用户在创建文件时的默认权限

临时调整:umask 0022

永久调整:在 /etc/profile 文件中追加 umask 0022 一行

调整过后,先在安装管理器目录下执行 bash service.sh stopall 停止服务,再执行 bash service.sh start 启动服务,访问页面重新进行初始化操作