从零搭建k8s集群-使用kubeadm部署k8s

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

说明:

  1. –apiserver-advertise-address 集群通告地址
  2. –image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
  3. –kubernetes-version k8s版本,与上面安装的一致
  4. –service-cidr 集群内部虚拟网络,Pod统一访问入口
  5. –pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致
从零搭建k8s集群-使用kubeadm部署k8s
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
从零搭建k8s集群-使用kubeadm部署k8s
  • 在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

(0)
上一篇 2026-01-26 10:23
下一篇 2026-01-30 09:42

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注