一键换源
bash <(curl -sSL https://linuxmirrors.cn/main.sh)
设置系统相关参数
# 1、修改 hostname
# master 节点
hostnamectl set-hostname k8s-master-01
# worker 节点
hostnamectl set-hostname k8s-node-01
# 2、设置时区
timedatectl set-timezone "Asia/Shanghai"
# 查看时区设置是否生效
timedatectl
# 3、设置 locale
localectl set-locale LANG=zh_CN.utf8
# 查看是否生效(注意需要退出 SSH 再重新登陆才能生效)
localectl
关闭 firewalld、selinux、swap
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭 selinux
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 关闭 swap
# 因为 k8s 的特点是速度快,运行在内存中来保持高速,而 swap 分区的速度慢,k8s 不允许这样,这就是为什么 k8s 对环境有严格的要求
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
配置内核参数
桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 生效
时间同步
yum install ntpdate -y
ntpdate 10.213.120.3
echo "*/10 * * * * ntpdate 10.213.120.3" #设置时间同步
修改 ulimit
为了防止出现 too open many files 错误,需要修改系统的 ulimit
vim /etc/security/limit.conf
* soft nofile 1000000
* hard nofile 1000000
重启所有服务器
安装 docker
卸载系统下已经存在的Docker和相关依赖项以避免安装失败
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装最新版 Docker
安装软件包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 设置仓库地址,从该仓库进行下载和更新
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 安装过程中如果出现GPG密钥,请选择'y'
sudo yum install docker-ce docker-ce-cli containerd.io
安装指定版本 Docker
# 展示出仓库中所有可以使用的Docker版本
yum list docker-ce --showduplicates | sort -r
# 结果类似如下,其中第二列为版本号:
docker-ce.x86_64 3:19.03.6-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.5-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
# 获取指定版本的安装命令步骤如下:
# 1、假如此时需要安装的Docker的版本号为 3:19.03.6-3.el7
# 2、从第一个冒号截取到第一个中横线(如果没有冒号则从第一个字符开始)
# 3、得到19.03.6并运行命令
sudo yum install docker-ce-23.* docker-ce-cli-23.* containerd.io
设置开机自启,并启动docker
systemctl enable docker && systemctl start docker
查看docker版本
docker --version
修改docker默认路径
迁移/var/lib/docker目录下面的文件到 /home/docker
mkdir -p /home/docker
rsync -avz /var/lib/docker /home/docker #和cp类似,只不过是会自动过滤,目标目录有的文件不会重新拷贝
修改 /etc/docker/daemon.json文件
{
"data-root": "/home/docker",
"exec-opts": ["native.cgroupdriver=systemd"],
"live-restore": true,
"default-ulimits": {
"nofile": {
"Soft": 500000,
"Hard": 500000,
"Name": "nofile"
}
}
}
重启docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
docker info #查看默认路径师傅已经修改/home/docker
k8s 源配置
因为 k8s 的相关源都放在 google 的服务器上,除非翻墙,否则根本无法访问,因此必须配置 k8s 的源,使用 aliyun 的镜像:
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安装 Kubernetes 系统依赖包
yum install curl socat conntrack ebtables ipset ipvsadm -y
# 安装其他必备包,openEuler 也是奇葩了,默认居然都不安装tar,不装的话后面会报错
yum install tar -y