192.168.80.10 k8s-master
192.168.80.20 k8s-node1
192.168.80.30 k8s-node2
(2)硬件配置:内存2GB或2G+,CPU 2核或CPU 2核+;
(3)集群内各个机器之间能相互通信;
(4)集群内各个机器可以访问外网,需要拉取镜像;
(5)禁止swap分区;
1、关闭防火墙【三台都操作】
systemctl stop firewalld
systemctl disable firewalld
2、关闭selinux【三台都操作】
sed -i 's/enforcing/disabled/' /etc/selinux/config #永久
setenforce 0 #临时
3、关闭swap(k8s禁止虚拟内存以提高性能)【三台都操作】
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久
swapoff -a #临时
4、修改主机名:【三台虚拟机分别改名字】
hostnamectl set-hostname k8s-master //192.168.80.10上执行
hostnamectl set-hostname k8s-node1 //192.168.80.20上执行
hostnamectl set-hostname k8s-node2 //192.168.80.30上执行
5、【分别重启三台虚拟机】:(此时可以看到,三台虚拟机的名字已更改)
[root@localhost ~]# reboot //重启
6、设置网桥参数【三台都操作】
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
#即时生效
7、时间同步【三台都操作】
yum install ntpdate -y //下载同步时间的工具
ntpdate time.windows.com //跟windows同步时间
二:所有服务器节点安装 Docker/kubeadm/kubelet/kubectl
Kubernetes 默认容器运行环境是Docker,因此首先需要安装Docker;
1、安装 Docker 【三台都操作】
更新docker的yum源
yum install wget -y //下载wget
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
安装指定版本的docker:
yum install docker-ce-19.03.13 -y
2、配置加速器加速下载 (https://cr.console.aliyun.com/)【三台都操作】
mkdir /etc/docker //先给给每台虚拟机建个docker文件夹,才可以进行下面的操作
vi /etc/docker/daemon.json //添加该配置文件,并写入以下内容
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
3、然后执行:【三台都操作】
systemctl restart docker.service
systemctl enable docker.service
4、添加k8s的阿里云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
到时候下载k8s的相关组件才能找到下载源;
5、安装 kubeadm,kubelet 和 kubectl :【三台都操作】
yum install kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 -y
然后执行:
systemctl enable kubelet.service
6、查看有没有安装:【三台都操作】
yum list installed | grep kubelet
yum list installed | grep kubeadm
yum list installed | grep kubectl
7、部署Kubernetes Master主节点(创建内容较多,时间较久)【在master操作】
[root@k8s-master ~]# kubeadm init --apiserver-advertise-address=192.168.80.10 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
8、在master机器上执行:(回到上面kubeadm init命令的结果复制)【在master操作】
[root@k8s-master ~]# mkdir -p $HOME/.kube
[root@k8s-master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
9、接下来把node节点加入Kubernetes master中,在两台node机器上执行;执行的命令就是kubeadm init最后输出的kubeadm join命令:(回到上面kubeadm init命令的结果复制--看自己的值是什么,不要复制我的)【粘贴到两台node节点上】
1、下载kube-flannel.yml文件【在master操作】
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yaml
//国内的网络可能下载不了
我在百度网盘分享了,下面是连接和提取码:
链接:https://pan.baidu.com/s/1xlDDCjMFEbvLhT7mFjESvg
提取码:kube
2、应用kube-flannel.yml文件得到运行时容器【在master操作】
kubectl apply -f kube-flannel.yaml
3、然后查看节点状态:【在master操作】
[root@k8s-master ~]# kubectl get nodes
NotReady说明还没有就绪,需要等一会儿,然后节点就就绪了;【在master操作】
至此我们的k8s环境就搭建好了。