淘先锋技术网

首页 1 2 3 4 5 6 7
前面一篇文章介绍了  Kubernetes **Master 节点** 的 部署,那么,在部署 **Master 节点**后,怎么向集群中增加 **工作节点** 呢?  这就是下面要介绍的内容。
安装好 **kubelet, kubectl , kubeadm** , 启动  **docker**  与 **kubelet.service**  服务: 
systemctl enable docker.service 
systemctl start docker.service
systemctl enable kubelet.service 
systemctl start kubelet.service 
然后,需要重新配置 一下  容器运行时 **containerd**  以支持 Kubernetes: 
### 生成 containerd 的默认配置文件
containerd config default > /etc/containerd/config.toml 
### 查看 sandbox 的默认镜像仓库在文件中的第几行 
cat /etc/containerd/config.toml | grep -n "sandbox_image"  
### 使用 vim 编辑器 定位到 sandbox_image,将 仓库地址修改成 k8simage/pause:3.6
vim /etc/containerd/config.toml  
sandbox_image = "k8simage/pause:3.6"  
### 重启 containerd 服务  
systemctl daemon-reload  
systemctl restart containerd.service 

接下来,创建 并 初始化 Master 节点 ,前面的 文章 是 使用配置 文件 来 初始化 Master 节点的,这次 使用 命令行 选项 与 参数 来配置 Master 节点,运行下面的命令 :

# --image-repository  用来 指定 初始化 Master 节点 时 使用的 镜像仓库
# --kubernetes-version='v1.26.2' 用来指定 Kubernetes 的版本,因为 kubernetes 更新迭代的速度很快
# 如果不指定 版本,有可能造成 kubernetes 出新版本了 而 配置的 镜像仓库 没有  最新版 的镜像,从而拉取镜像失败
# --apiserver-advertise-address 就是  Master 节点  的 ip 地址,读者请根据实际情况 改成自己的 ip  
kubeadm init --image-repository='k8simage' --kubernetes-version='v1.26.2' --apiserver-advertise-address='10.0.2.5' 

在这里插入图片描述

请留意 圈出来的部分,很重要,看到类似上面的输出,就表示成功了。
运行 命令 查看 集群 当中的 节点:

kubectl get nodes
结果 报错了: ' E0322 01:36:09.693871  148936 memcache.go:238] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused ' 。 这个 报错就 跟上面 红圈 里面的内容 有关 ,可以通过 配置 KUBECONFIG 环境 变量 或者 将 生成的 配置文件 /etc/kubernetes/admin.conf  复制到  $HOME/.kube/config  解决:
# 如果是  root 用户,执行下面这个
export KUBECONFIG=/etc/kubernetes/admin.conf
# 如果是 普通用户,执行下面这组命令
mkdir -p $HOME/.kube 
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 
sudo chown $(id -u):$(id -g) $HOME/.kube/config

再 运行 kubectl get nodes 命令查看一下,就不会报错了:
在这里插入图片描述
但是,注意到上面的 node 状态 是 NotReady , 这个是因为没有 配置 网络 插件 CNI 。 这里将 使用 calico 来 充当 CNI 插件。 在 github 上面,找到 calico 项目 https://github.com/projectcalico/calico , 在 manifests 文件 夹里面 即: https://github.com/projectcalico/calico/tree/master/manifests
有一个 calico.yaml 的文件,这个文件就是 部署 calico 的 清单文件。选择 raw 格式 下载 :

wget https://raw.githubusercontent.com/projectcalico/calico/master/manifests/calico.yaml 

将 calico.yaml 文件 下载到 Master 节点 后, 部署 calico 组件:

kubectl create -f calico.yaml 

在这里插入图片描述