一、环境准备
1、机器环境前置条件
当前演示准备3台虚拟机环境,或者是3台阿里云服务器都可
k8s-master01: 此机器用来安装k8s-master的操作环境
k8s-node01: 此机器用来安装k8s node节点的环境
k8s-node02: 此机器用来安装k8s node节点的环境
修改网络配置,确保虚拟机网络连通,Xshell连接
节点CPU核数必须是 :>= 2核 ,否则k8s无法启动
DNS网络: 最好设置为 本地网络连通的DNS,否则网络不通,无法下载一些镜像
linux内核: linux内核必须是 4 版本以上,因此必须把linux核心进行升级
前置环境准备完成
2、依赖环境安装配置
注:每一台机器都要安装此依赖环境
1、给每一台机器设置主机名
hostnamectl set-hostname k8s-master01
hostnamectl set-hostname k8s-node01
hostnamectl set-hostname k8s-node02
查看主机名
hostname
配置IP host映射关系
vi /etc/hosts
192.168.66.10 k8s-master01
192.168.66.11 k8s-node01
192.168.66.12 k8s-node02
2、安装依赖环境
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat
libseccomp wget vim net-tools git iproute lrzsz bash-completion tree bridge-
utils unzip bind-utils gcc
3、安装iptables,启动iptables,设置开机自启,清空iptables规则,保存当前规则到默认规则
关闭防火墙并设置开机禁用防火墙
systemctl stop firewalld && systemctl disable firewalld
置空iptables
yum -y install iptables-services && systemctl start iptables && systemctl enable
iptables && iptables -F && service iptables save
4、关闭selinux
闭swap分区【虚拟内存】并且永久关闭虚拟内存
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
5、升级Linux内核为4.44版本
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
安装内核
yum --enablerepo=elrepo-kernel install -y kernel-lt
查询已安装的内核
rpm -qa | grep kernel
查看默认启动项
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
上面命令中找到新内核的名称,替换后执行下面命令,令开机从新内核启动
grub2-set-default 'CentOS Linux (4.4.230-1.el7.elrepo.x86_64) 7 (Core)'
重启机器 注意:设置完内核后,需要重启服务器才会生效
reboot
重启后查询内核
uname -r
6、调整内核参数,对于k8s
cat > kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF
将优化内核文件拷贝到/etc/sysctl.d/文件夹下,这样优化文件开机的时候能够被调用
cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
手动刷新,让优化文件立即生效
sysctl -p /etc/sysctl.d/kubernetes.conf
上面手动刷新会有这个异常,忽略即可,是因为有一个组件没有加载
sysctl: cannot stat /proc/sys/net/netfilter/nf_conntrack_max: No such file or
directory
7、调整系统临时区 (如果已设置可略过)
设置系统时区为中国/上海
timedatectl set-timezone Asia/Shanghai
将当前的 UTC 时间写入硬件时钟
timedatectl set-local-rtc 0重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart crond
8、关闭系统不需要的服务
systemctl stop postfix && systemctl disable postfix
9、设置日志保存方式
创建保存日志的目录
mkdir /var/log/journal
创建配置文件存放目录
mkdir /etc/systemd/journald.conf.d
创建配置文件
cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF
[Journal]
Storage=persistent
Compress=yes
SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000
SystemMaxUse=10G
SystemMaxFileSize=200M
MaxRetentionSec=2week
ForwardToSyslog=no
EOF
重启systemd journald的配置
systemctl restart systemd-journald
10、打开文件数调整 (可忽略,不执行)
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf