一. 基于阿里云的ECS环境搭建,使用了三台服务器用来安装搭建集群:
主机 | ip | 配置 |
master | 192.168.102.110 | 8核,16g内存,500g SSD |
node1 | 192.168.102.111 | 8核,16g内存,500g SSD |
node2 | 192.168.102.112 | 8核,16g内存,500g SSD |
1.修改HOSTS,并做SSH免密登录配置:
vim /etc/hosts
192.168.102.110 k8s-master
192.168.102.111 k8s-node1
192.168.102.112 k8s-node2
2.配置免密登陆,三台服务器都要配置互相免密登陆
ssh-copy-id -p22 root@k8s-master
ssh-copy-id -p22 root@k8s-node1
ssh-copy-id -p22 root@k8s-node2
3.K8S安装过程中需要关闭SWAP分区,所有服务器节点上都需要关闭
swapoff -a 注:临时关闭
4.所有节点修改内核参数
vim /etc/profile
modprobe br_netfilter
修改完成重新加载配置:source /etc/profile
vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
重新加载配置:sysctl -p /etc/sysctl.d/k8s.conf
5. 如果你是物理机或内部云网络可能还需要安装ntpdate服务用来保证集群间服务器时间的一致性,我这里用的阿里云就不需要安装ntpdate服务,阿里云自有的ntpdate会完成时间同步
6. 在所有服务器的节点上配置k8s的yum源,我这里使用的全是阿里云的
vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
二. 以上配置完成后需要先完成docker的安装
1.如果服务器上有自带的docker,那就需要先卸载掉
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate
2. 配置DOCKER的yum仓库,所有节点都需要配置
yum install -y yum-utils device-mapper-persistent-data lvm2
Dokcer镜像源换成阿里云的,默认的国外源速度太慢:
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.配置完成后所有节点安装docker
yum install docker-ce-20.10.9-3.el7 docker-ce-cli-20.10.9-3.el7 docker-compose-plugin containerd.io
4.安装完成后启动docker,并设置为开机自启动
#启动docker
systemctl start docker
#设置开机自启
systemctl enable docker
#验证安装
docker -v
5.Docker安装完成后,配置上阿里云镜像的加速器,阿里云的加速地址只支持阿里云的产品使用,使用介绍:https://help.aliyun.com/zh/acr/user-guide/accelerate-the-pulls-of-docker-official-images?spm=a2c4g.11186623.help-menu-60716.d_2_14_0.147f62466GFIBl&scm=20140722.H_60750._.OR_help-T_cn~zh-V_1
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://p59n3y39.mirror.aliyuncs.com"]
}
重新加载并重启
sudo systemctl daemon-reload
sudo systemctl restart docke
三. Docker安装完成后,开始安装K8S
1.K8S主要有 kubeadm、kubelet、kubectl 这三大组件,所有节点都需要执行以下的安装
kubeadm:初始化k8s集群
kubelet: 在集群的每个节点上用来启动 Pod 和容器
kubectl:k8s集群通信的命令行工具,查看,创建,更新和删除各种资源
2. 执行安装,会根据镜像源中的资源安装最新的版本
yum install -y kubelet* kubeadm* kubectl*
3. 安装完成后所有节点设置开机自启动
systemctl enable kubelet
4. 将主节点的集群HOSTS解析添加到所有服务器上
192.168.102.110 cluster-endpoint
5. 在Master节点上对K8S集群进行初始化操作
kubeadm init \
--apiserver-advertise-address=192.168.102.110 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version v1.23.17 \
--service-cidr=10.10.0.0/12 \
--pod-network-cidr=172.1.0.0/16
初始化执行后出现以下提示说明初始化成功:
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
6. 在别外两台服务器上执行初始化生成的添加命令,将两个 k8snode节点加入到集群中
kubeadm join cluster-endpoint:6443 --token e8enii.joiejbxxxxxxxxx \
-discovery-token-ca-cert-hash sha256:3369575651862xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
也可以用命令再次自定义生成token :
kubeadm token create --print-join-command