目录
1.切换为root用户
2.关闭防火墙,关闭swap分区和禁用SElinux
3.安装docker
4.更改daemon.json文件,指定 Docker 守护进程使用的 cgroup 驱动程序
5.重启docker服务
6.配置kubernetes.repo
7.安装Kubelet、Kubeadm、Kubectl
8.设置开机自启
9.准备拉取 Kubernetes 相关的 Docker 镜像,以便在启动 Kubernetes 集群时使用
10. 添加权限并执行sh
11.所有节点加入域名映射(所有节点都需要加入)
12.初始化master节点
13. 复制K8s集群的配置文件,设置权限,通过kubectl命令与 K8s 集群进行交互
14.安装网络插件
15. 将calico.yaml中定义的 Kubernetes 资源应用到 Kubernetes 集群中
16.加入node节点
17.查看集群中的node节点
1.切换为root用户
2.关闭防火墙,关闭swap分区和禁用SElinux
关闭防火墙
sudo systemctl stop firewalld禁用SELinux
sudo setenforce 0 # 临时禁用
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config # 永久禁用关闭swap分区
swapoff -a # 临时关闭
sed -i.bak '/swap/s/^/#/' /etc/fstab # 永久关闭
3.安装docker
这里不做过多叙述,具体步骤请参考:centos/linux在线安装docker
4.更改daemon.json文件,指定 Docker 守护进程使用的 cgroup 驱动程序
{"exec-opts": ["native.cgroupdriver=systemd"]
}
5.重启docker服务
systemctl restart docker
6.配置kubernetes.repo
配置kubernetes.repo文件,用于下载kubernetes
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[master]
name=master
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttp://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
7.安装Kubelet、Kubeadm、Kubectl
sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes
8.设置开机自启
sudo systemctl enable --now kubelet
因为还没有进行init,所以现在kubelet处于一个重启状态,并不会真正的启动。
9.准备拉取 Kubernetes 相关的 Docker 镜像,以便在启动 Kubernetes 集群时使用
sudo tee ./images.sh <<-'EOF'
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
EOF
其中kube-apiserver、kube-proxy、kube-controller-manager、kube-scheduler要和安装的K8s版本一致
10. 添加权限并执行sh
chmod +x ./images.sh && ./images.sh
到这一步可以直接克隆整个虚拟机作为node节点去使用,master主节点配置完,直接在node节点执行第16步就ok,也可以按照node节点配置流程去配置node节点。传送门:node节点配置流程
11.所有节点加入域名映射(所有节点都需要加入)
vim /etc/hosts
有几个节点写几个ip和对应的hostname
12.初始化master节点
sudo kubeadm init \
--kubernetes-version 1.20.9 \
--apiserver-advertise-address=192.168.47.138 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.245.0.0/16 \
--image-repository registry.aliyuncs.com/google_containers
kubernetes-version即k8s安装的版本,apiserver-advertise-address主机IP地址
现在kubelet才真正的启动并开始工作
13. 复制K8s集群的配置文件,设置权限,通过kubectl
命令与 K8s 集群进行交互
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
14.安装网络插件
目前没找到合适的calico.yaml网络插件,CSDN/知乎等知名网站上有好多相关的,找一个适合自己的,和下一步图片中运行结果一致的即为有效的yaml文件,反之则为无效
······
15. 将calico.yaml中定义的 Kubernetes 资源应用到 Kubernetes 集群中
kubectl apply -f calico.yaml
16.加入node节点
node节点加入master集群中,node节点执行第10步第一个图片中最后两行 kubeadm join
如在join时遇到问题请参考:K8S,node节点join失败,如有错误地方,欢迎指正
17.查看集群中的node节点
kubectl get nodes
到这里一个K8S集群就算是搭建完成了!