1、检查docker环境
安装docker
# 更新yum
yum update -y
# 安装docker的依赖包,yum-utils(提供yum-config-manager功能),device-mapper-persistent-data,lvm2(devicemapper驱动依赖)
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置yum源为阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker
yum install -y docker-ce
# 检查docker版本
docker -v
# 启动docker
systemctl start docker
# 设置镜像源
vim /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"registry-mirrors": [
"https://1yh9wsu2.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
# 刷新daemon
systemctl daemon-reload
systemctl restart docker
2、系统初始化
# 关闭防火墙
# 临时关闭防火墙
systemctl stop firewalld
# 永久关闭防火墙
systemctl disable firewalld
# 关闭selinux
# 永久关闭
sed -ri '/selinux/s/enforcing/disabled/' /etc/selinux/config
# 临时关闭
setenforce 0
# 关闭swap
# 永久关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab
# 临时关闭
swapoff -a
# 设置主机名称(集群里面的每台主机设置的名称需要唯一)
hostnamectl set-hostname master
# 查看当前主机名称
hostname
# 修改hosts中的映射关系
vim /etc/hosts
# 将桥接的 IPv4 流量传递到 iptables 的链(所有节点都设置)
#设置
cat > /etc/sysctl.d/kubernetes.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
#使kubernetes.conf配置的参数临时生效
sysctl --system
# 时间同步,让各个节点(虚拟机)中的时间与本机时间保持一致。
yum install ntpdate -y
ntpdate time.windows.com
3、添加阿里云yum源
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
4、kubeadm、kubelet、kubectl 的安装
#下载软件
yum install -y kubelet-1.19.9 kubeadm-1.19.9 kubectl-1.19.9
#开机自启动
systemctl enable kubelet
5、在 Master 节点中部署集群
# 如果是高版本k8s需要修改containerd配置
vim /etc/containerd/config.toml
# 将disabled_plugins : ["cri"] 注释或者修改为disabled_plugins : []
# 重启容器
systemctl restart containerd
# 根据实际修改master节点修改IP及kubernetes版本号
kubeadm init \
--apiserver-advertise-address=192.168.96.136 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.19.9 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
6、将node节点加入集群
# 开启 kubectl 工具的使用 master节点执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 将node节点加入master集群(node节点执行)
kubeadm join 192.168.96.136:6443 --token yaioik.t81sef3rvdede9u4 \
--discovery-token-ca-cert-hash sha256:9bd9a8b74de8a7637379b516a1de1b595d44dba388526ebf8c3eddfa639455d1
7、安装calico网络插件
calico下载地址
使用docker下载calico依赖的image镜像包
docker pull calico/cni:v3.14.2
docker pull calico/pod2daemon-flexvol:v3.14.2
docker pull calico/node:v3.14.2
docker pull calico/kube-controllers:v3.14.2
修改calicoIP
# kubernetes集群添加calico资源
kubectl apply -f calico.yaml
8、修改K8S
# 添加镜像下载等待时间
vim /etc/default/kubelet
KUBELET_OPTS=–image-pull-progress-deadline=60m
# 重启kubectl
systemctl restart kubelet