k8s node 용 vm os 설정에는 각 용도마다 설정 항목이 조금씩 다르다.
모든 node 에 같은 설정을 하기 보다는 node 의 용도에 맞게 설정하는 것이 좋다.
아래 rook-ceph, opensearch, minio 등 storage 는 보통 전용 node 를 구성하므로 개별적으로 node 용도에 맞게 os 설정을 한다.
# modify sysctl
sudo tee /etc/sysctl.conf<<EOF
# vm 최적화
vm.swappiness = 1
vm.dirty_ratio = 40
vm.dirty_background_ratio = 10
vm.vfs_cache_pressure = 50
vm.max_map_count = 262144
# 파일시스템 최적화
fs.aio-max-nr = 1048576
fs.file-max = 2097152
# 네트워크 성능 최적화
net.core.rmem_max = 268435456
net.core.wmem_max = 268435456
net.core.rmem_default = 134217728
net.core.wmem_default = 134217728
net.core.netdev_max_backlog = 50000
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_no_metrics_save = 1
EOF
# modify ulimit
sudo tee /etc/security/limits.conf<<EOF
* soft nofile 1048576
* hard nofile 1048576
* soft nproc 1048576
* hard nproc 1048576
EOF
# apply
sudo sysctl --system
# modify sysctl
sudo tee /etc/sysctl.conf<<EOF
# vm 최적화
vm.swappiness = 1
vm.max_map_count = 262144
# 파일시스템 최적화
fs.file-max = 100000
# 네트워크 성능 최적화
net.core.somaxconn = 65535
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_max_syn_backlog = 4096
net.core.netdev_max_backlog = 50000
EOF
# modify ulimit
sudo tee /etc/security/limits.conf<<EOF
* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096
EOF
# apply
sudo sysctl --system
# modify sysctl
sudo tee /etc/sysctl.conf<<EOF
# vm 최적화
vm.max_map_count = 262144
# 파일시스템 최적화
fs.file-max = 100000
# 네트워크 성능 최적화
net.core.somaxconn = 1024
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
EOF
# modify ulimit
sudo tee /etc/security/limits.conf<<EOF
* soft nofile 65536
* hard nofile 65536
EOF
# apply
sudo sysctl --system