1.安装docker
- k8s默认(CRL容器运行时)为Docker,因此需要先安装Docker
#安装Docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum list docker-ce --showduplicates | sort -r #查看yum查看软件源里包的版本并排序
yum -y install docker-ce-18.06.3.ce-3.el7
systemctl enable docker && systemctl start docker
#docker版本信息查看
docker version
- 设置docker镜像加速器
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
#使用docker镜像加速器生效
systemctl daemon-reload
systemctl restart docker
docker info
2.添加阿里云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
3.安装kubeadmin、kubelet和kubectl
#由于版本更新频繁,这里指定版本号部署
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
#为了实现Docker使用的cgroup drvier和kubelet使用的cgroup drver一致,建议修改"/etc/sysconfig/kubelet"文件的内容
vim /etc/sysconfig/kubelet
# 修改
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
#设置kubelet开机自动动
systemctl enable kubelet
4.部署k8s的Master节点
- 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里需要指定阿里云镜像仓库地址,运行后需要等待数分钟
kubeadm init \
--apiserver-advertise-address=192.168.23.12 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.4 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
说明:
- –apiserver-advertise-address 集群通告地址
- –image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
- –kubernetes-version k8s版本,与上面安装的一致
- –service-cidr 集群内部虚拟网络,Pod统一访问入口
- –pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致

kubeadm join 192.168.23.12:6443 --token 2gczl8.rxp4cqsvckv9t3vo \
--discovery-token-ca-cert-hash sha256:6ccddd959c2169ceee925ccd74be0a978df904f51124c6552faa51f2039f67a9
- 创建文件夹拷贝配置文件
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
#查看master节点初始化情况
kubectl get nodes -o wide

- 在master节点上获取node节点的join参数(默认有效期是2小时,2小时内可以用来添加任意数量的node节点)
kubeadm token create --print-join-command - 若要生成一个永久有效的join参数,运行以下命令
kubeadm token create --ttl 0
5.添加k8s的Node节点
-
在192.168.23.9和192.168.23.10上添执行如下命令,将node节点,添加到master集群进行集中管理:
kubeadm join 192.168.23.12:6443 --token 2gczl8.rxp4cqsvckv9t3vo \ --discovery-token-ca-cert-hash sha256:6ccddd959c2169ceee925ccd74be0a978df904f51124c6552faa51f2039f67a9 -
如果加入失败,可以使用如下命令,重新配置
kubeadm reset
ifconfig cni0 down && ip link delete cni0
ifconfig flannel.1 down && ip link delete flannel.1
rm -rf /var/lib/cni/
6.master服务器部署CNI网络插件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
kubectl get pods -n kube-system #查看部署CNI网络插件进度,等待全部READY变成1/1
kubectl get nodes #在Master节点使用kubectl工具查看节点状态
kubectl get cs #查看集群监控状态
kubectl cluster-info #查看集群信息
7.k8s集群的删除
kubeadm reset -f #重置,重装使用
yum erase -y kubelet kubectl kubeadm kubernetes-cni
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd
原创文章,作者:jacky,如若转载,请注明出处:https://kubiyun.com/archives/368