cat <<EOF > /etc/sysctl.d/k8s.conf
net.ipv6.conf.all.disable_ipv6 = 1 #禁用ipv6
net.ipv6.conf.default.disable_ipv6 = 1 #禁用ipv6
net.ipv6.conf.lo.disable_ipv6 = 1 #禁用ipv6
net.ipv4.neigh.default.gc_stale_time = 120 #决定检查过期多久邻居条目
net.ipv4.conf.all.rp_filter = 0 #关闭反向路由校验
net.ipv4.conf.default.rp_filter = 0 #关闭反向路由校验
net.ipv4.conf.default.arp_announce = 2 #始终使用与目标IP地址对应的最佳本地IP地址作为ARP请求的源IP地址
net.ipv4.conf.lo.arp_announce = 2 #始终使用与目标IP地址对应的最佳本地IP地址作为ARP请求的源IP地址
net.ipv4.conf.all.arp_announce = 2 #始终使用与目标IP地址对应的最佳本地IP地址作为ARP请求的源IP地址
net.ipv4.ip_forward = 1 #启用ip转发功能
net.ipv4.tcp_max_tw_buckets = 5000 #表示系统同时保持TIME_WAIT套接字的最大数量
net.ipv4.tcp_syncookies = 1 #表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理
net.ipv4.tcp_max_syn_backlog = 1024 #接受SYN同包的最大客户端数量
net.ipv4.tcp_synack_retries = 2 #活动TCP连接重传次数
net.bridge.bridge-nf-call-ip6tables = 1 #要求iptables对bridge的数据进行处理
net.bridge.bridge-nf-call-iptables = 1 #要求iptables对bridge的数据进行处理
net.bridge.bridge-nf-call-arptables = 1 #要求iptables对bridge的数据进行处理
net.netfilter.nf_conntrack_max = 2310720 #修改最大连接数
fs.inotify.max_user_watches=89100 #同一用户同时可以添加的watch数目
fs.may_detach_mounts = 1 #允许文件卸载
fs.file-max = 52706963 #系统级别的能够打开的文件句柄的数量
fs.nr_open = 52706963 #单个进程可分配的最大文件数
vm.overcommit_memory=1 #表示内核允许分配所有的物理内存,而不管当前的内存状态如何
vm.panic_on_oom=0 #内核将检查是否有足够的可用内存供应用进程使用
vm.swappiness = 0 #关注swap
net.ipv4.tcp_keepalive_time = 600 #修复ipvs模式下长连接timeout问题,小于900即可
net.ipv4.tcp_keepalive_intvl = 30 #探测没有确认时,重新发送探测的频度
net.ipv4.tcp_keepalive_probes = 10 #在认定连接失效之前,发送多少个TCP的keepalive探测包
vm.max_map_count=524288 #定义了一个进程能拥有的最多的内存区域
EOF
sysctl --system
内核优化
cat >> /etc/sysctl.conf <<EOF
# linux打开文件句柄数
fs.file-max = 65535
# 关闭SysRq
kernel.sysrq = 0
# 生成core文件,后缀是否带pid 1:带; 0 :不带
kernel.core_uses_pid = 1
vm.max_map_count = 1000000
fs.nr_open = 10000000
fs.file-max = 11000000
#网络优化
# 关闭ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
# 决定检查过期多久邻居条目
net.ipv4.neigh.default.gc_stale_time=120
#使用arp_announce / arp_ignore解决ARP映射问题
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
# 避免放大攻击
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 开启恶意icmp错误消息保护
net.ipv4.icmp_ignore_bogus_error_responses = 1
# 关闭路由转发
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# 开启反向路径过滤
# 开启rp_filter参数 减少DDoS攻击 防止IP Spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
#处理无源路由的包
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# 开启SYN洪水攻击保护
# 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭
net.ipv4.tcp_syncookies = 1
#修改消息队列长度
kernel.msgmnb = 65536
kernel.msgmax = 65536
#timewait的数量,默认180000
# 在 TIME_WAIT 数量等于 tcp_max_tw_buckets 时,不会有新的 TIME_WAIT 产生
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
# 与 tcp_wmem 类似,不过它表示的是为自动调优所使用的接收缓冲区的值
net.ipv4.tcp_rmem = 4096 87380 4194304
# 为自动调优定义每个 socket 使用的内存
# 第一个值是为 socket 的发送缓冲区分配的最少字节数
# 第二个值是默认值(该值会被wmem_default覆盖),缓冲区在系统负载不重的情况下可以增长到这个值
# 第三个值是发送缓冲区空间的最大字节数(该值会被 wmem_max 覆盖)
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
# 定义发送窗口的最大大小;对于更大的 BDP 来说,这个大小也应该更大
net.core.wmem_max = 873200
# 指定了接收套接字缓冲区大小的最大值(以字节为单位)
net.core.rmem_max = 873200
# 每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog = 262144
# 限制仅仅是为了防止简单的DoS 攻击
net.ipv4.tcp_max_orphans = 3276800
# 未收到客户端确认信息的连接请求的最大值
# 表示SYN队列长度,默认1024,改成8192,可以容纳更多等待连接的网络连接数
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
#内核放弃建立连接之前发送SYNACK 包的数量
net.ipv4.tcp_synack_retries = 1
#内核放弃建立连接之前发送SYN 包的数量
net.ipv4.tcp_syn_retries = 1
#启用timewait 快速回收
net.ipv4.tcp_tw_recycle = 1
# 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1
# 确定 TCP 栈应该如何反映内存使用;每个值的单位都是内存页(通常是 4KB)
# 第一个值是内存使用的下限
# 第二个值是内存压力模式开始对缓冲区使用应用压力的上限
# 第三个值是内存上限。在这个层次上可以将报文丢弃,从而减少对内存的使用。对于较大的 BDP 可以增大这些值(但是要记住,其单位是内存页,而不是字节)
net.ipv4.tcp_mem = 94500000 915000000 927000000
# 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.ipv4.tcp_fin_timeout = 1
#当keepalive 起用的时候,TCP 发送keepalive 消息的频度。缺省是2 小时
net.ipv4.tcp_keepalive_time = 1800
# 如果对方不予应答,探测包的发送次数
net.ipv4.tcp_keepalive_probes = 3
# keepalive探测包的发送间隔
net.ipv4.tcp_keepalive_intvl = 30
#允许系统打开的端口范围
net.ipv4.ip_local_port_range = 5000 65000
#修改防火墙表大小,默认65536
net.netfilter.nf_conntrack_max=655350
net.netfilter.nf_conntrack_tcp_timeout_established=1200
# 确保无人能修改路由表
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
# 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为30分钟。
# Linux kernel参数,表示socket监听的backlog(监听队列)上限
net.core.somaxconn = 10240
# 在丢弃激活(已建立通讯状况)的TCP连接之前﹐需要进行多少次重试。默认值为1
net.ipv4.tcp_retries2 = 5
net.ipv4.conf.lo.arp_ignore = 0
net.ipv4.conf.lo.arp_announce = 0
net.ipv4.conf.all.arp_ignore = 0
EOF
sysctl -p >/dev/null 2>&1
#!/bin/bash
#Eren by 2020-06-30
#修改hosts文件
if [ `id -u` -ne 0 ]; then
echo "Please rerun this script as root"
exit 1
fi
HostName=$HOSTNAME
HostIP=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|grep -v 192.168 |awk '{print $2}'|tr -d "addr:"`
echo "$HostIP" " " "$HostName" >> /etc/hosts
#文件系统配置
pvcreate /dev/vdb
if [ $? -eq 0 ];then echo -e "逻辑卷创建完成" "\033[32m Success\033[0m"; else echo -e "未添加数据盘" "\033[31m Failure\033[0m"; echo ""; exit 2; fi
#创建逻辑卷
vgcreate appvg /dev/vdb
#
lvcreate -n boccfclv -L 5G appvg
mkfs.ext4 /dev/appvg/boccfclv
mkdir -p /home/boccfc
mount /dev/appvg/boccfclv /home/boccfc
#
lvcreate -n applv -L 30G appvg
mkfs.ext4 /dev/appvg/applv
mkdir -p /app
mount /dev/appvg/applv /app
#
lvcreate -n apploglv -l 90%free appvg
mkfs.ext4 /dev/appvg/apploglv
mkdir -p /applog
mount /dev/appvg/apploglv /applog
#
if [ $? -eq 0 ];then echo -e "文件系统创建完成" "\033[32m Success\033[0m"; else echo -e "文件系统创建失败" "\033[31m Failure\033[0m"; sleep 3; exit 3; fi
cat >> /etc/fstab << EOF
/dev/appvg/boccfclv /home/boccfc ext4 defaults 0 0
/dev/appvg/apploglv /applog ext4 defaults 0 0
/dev/appvg/applv /app ext4 defaults 0 0
EOF
#添加普通用户
#
groupadd -g 310 boccfc
useradd -g 310 -u 310 -d /home/boccfc -m -G boccfc boccfc
#cp -av /etc/skel/\.[[:alpha:]]* /home/boccfc
echo "1qaz@WSX" | passwd --stdin boccfc
#chage -d 0 boccfc
chown -R boccfc:boccfc /home/boccfc
#
groupadd -g 320 mauser
useradd -g 320 -u 320 -d /home/mauser -m -G mauser mauser
#cp -av /etc/skel/\.[[:alpha:]]* /home/mauser
echo "1qaz@WSX" | passwd --stdin mauser
chown -R mauser:mauser /home/mauser
#
chown -R boccfc:boccfc /app
chown -R boccfc:boccfc /applog
#
#修改时间服务地址
sed -i "s/^server /#server /g" /etc/chrony.conf
wget -qO- http://10.182.220.85/uat/ntp-gw.sh|bash
wget -P /etc/yum.repos.d http://10.182.220.85/uat/epel.repo
#gateway='route -n| awk 'BEGIN{OFS="\n"} NR!=2 && /Gateway/ || NR==3{print $2}''
#sed -a
timedatectl set-timezone Asia/Shanghai
systemctl restart chronyd.service
hwclock -w
chronyc tracking
chronyc -a makestep
#普通用户禁用定时任务
touch /etc/cron.allow
#openssh修复
sed -i 's|GSSAPIAuthentication yes|#GSSAPIAuthentication yes|' /etc/ssh/ssh_config
#
touch /etc/cron.allow
#
#HostName=$HOSTNAME
#HostIP=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|grep -v 192.168 |awk '{print $2}'|tr -d "addr:"`
#echo "$HostIP" " ""$HostName" >> /etc/hosts
#wget -P /tmp http://10.82.100.84/prod/prod-zabbix-agentd.tar.gz
#cd /tmp && tar xf prod-zabbix-agentd.tar.gz
#cd zabbix-agentd
#sh install.sh
#cat /var/log/zabbix/zabbix_agent2.log
#检查文件系统挂载
mount -a
#
df -Th
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|grep -v 192.168 |awk '{print $2}'
cat /etc/hosts