天天看点

K8S集群节点操作系统基础配置

作者:诶蒙IT狗

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

继续阅读