0.操作系统需要
- RHEL/CentOS7.3.1611以上
- 内核版本3.10.0-693.el7.x86_64及以上
1. selinux
关闭selinux
1 | sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config |
2.防火墙
开启防火墙
1 2 | systemctl start firewalld.service systemctl enable firewalld.service |
防火墙规则配置
关闭ssh服务
1 2 3 4 5 | firewall-cmd --permanent --zone=public --add-port=1-21/tcp firewall-cmd --permanent --zone=public --add-port=23-65535/tcp firewall-cmd --permanent --zone=public --add-port=1-21/udp firewall-cmd --permanent --zone=public --add-port=23-65535/udp firewall-cmd --remove-service=ssh --permanent |
允许指定IP访问22端口
#以下3个为堡垒系统的IP firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=11.2.64.32 port port=22 protocol=tcp accept' firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=11.2.64.33 port port=22 protocol=tcp accept' firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=11.2.64.34 port port=22 protocol=tcp accept' #以下3个为Rancher集群的主机IP,请根据实际情况修改 firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=11.8.17.190 port port=22 protocol=tcp accept' firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=11.8.17.191 port port=22 protocol=tcp accept' firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=11.8.17.192 port port=22 protocol=tcp accept' |
刷新防火墙规则
1 | firewall-cmd --reload |
#如果操作系统安装了图形化界面,需要添加用就防火墙伪装IP
防火墙伪装IP
1 | firewall-cmd --permanent --add-masquerade |
附:防火墙配置流程梳理
- 1 docker安装后检查iptables规则是存在iptables -L,如果不存在,重启docker
- 2 添加自定义的防火墙规则,并reload,查看是否添加成功firewall-cmd --list-all
- 3 添加上面一小节中的6行iptables规则
注意:2和3不可以颠倒
防火墙reload后执行以下命令
因为CentOS上的防火墙会有一些隐藏的限制
1 2 3 4 5 6 | iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X |
附:常用操作
firewall
1 2 3 4 5 6 7 8 | # 列出所有防火墙规则 firewall-cmd --list-all # 重载防火墙规则 firewall-cmd --reload # 列出某个区域的开放端口 firewall-cmd --zone=public --list-ports |
iptables
1 2 3 4 5 | # 重定向iptables规则 iptables-save > /tmp/3 # 列出iptables规则 iptables -L |
netstat
1 2 | # 查看主机监听端口 netstat -ntlup | grep 6443 |
防火墙伪装IP开启
1 2 3 4 5 6 | firewall-cmd --query-masquerade # 检查是否允许伪装IP firewall-cmd --add-masquerade # 允许防火墙伪装IP firewall-cmd --remove-masquerade# 禁止防火墙伪装IP firewall-cmd --permanent --add-masquerade firewall-cmd --permanent --remove-masquerade |
3.配置内核参数
配置内核参数
1 2 3 4 5 6 | echo " net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 " >> /etc/sysctl.conf sysctl -p |
4. swap关闭
1 2 3 4 5 | # 临时关闭 swapoff -a # 永久关闭 vi /etc/fstab 注释掉swap相关的行 |
5. docker配置
- 版本docker 17.03.2
- 安装包:docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm以及docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm,切到到rpm所在目录,执行命令rpm -ivh *.rpm安装
/var/lib/docker盘的格式化选择
xfs (RHEL 7.2 and higher), but only with d_type=true enabled. Use xfs_info to verify that the ftype option is set to 1. To format an xfs filesystem correctly, use the flag -n ftype=1. 基于XFS文件系统的overlayfs下使用docker,为何要使用d_type=1
1 2 3 4 5 | # 格式化磁盘 mkfs.xfs -n ftype=1 /path/to/your/device # 验证 xfs_info /path/to/your/device |
storage-driver选择
内核版本高于3.10.0-514就可以用overlay2。完整如下
/etc/docker/daemon.json
1 2 3 4 5 6 7 8 9 10 | { "insecure-registries" : ["0.0.0.0/0"], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" }, "storage-driver": "overlay2", "storage-opts": ["overlay2.override_kernel_check=true"] } |
如果修改了参数,重启docker需重载配置
1 2 3 4 | systemctl daemon-reload systemctl restart docker #设为开机启动 systemctl enable docker |
6.查看机器时区是否一致
1 2 3 4 5 | # 查看本机时间 date # 查看时区配置文件 cat /etc/localtime |
7. desktop版卸载桌面组件
1 | yum remove *desk* -y |
8.设定默认启动方式为console
1 | systemctl set-default multi-user.target |