k8s集群安装以及kubeedge部署前准备

date
Jun 10, 2024
slug
install-k8s-and-prep-before-deploy-kubeedge
status
Published
tags
流程记录
云原生
summary
安装k8s前,需要先安装containerd。kubeedge边端只需要安装containerd就好了,云端需要安装k8s。
type
Post
实验环境:Debian GNU/Linux 12 (bookworm) x86_64

安装containerd

安装k8s前,需要先安装containerd。kubeedge边端只需要安装containerd就好了,云端需要安装k8s。

安装k8s前准备

设置流量转发

修改 iptables 的配置,启用“br_netfilter”模块,让 kubernetes 可以检查和转发网络流量。

关闭Linux Swap分区

基于安全性(如在官方文档中承诺的 Secret 只会在内存中读写,不会落盘)、利于保证节点同步一致性等原因,从 1.8 版开始,Kubernetes 就在它的文档中明确声明了它默认不支持 Swap 分区,在未关闭 Swap 分区的机器中,集群将直接无法启动。

注册apt软件源

选择清华镜像源,官方文档为:https://mirrors.tuna.tsinghua.edu.cn/help/kubernetes/
新建/etc/apt/sources.list.d/kubernetes.list,内容为:
然后

安装kubeadm,kubelet,kubectl

三个工具的作用请自行学习。
个人没有锁定版本,如果有锁定版本的需要,请阅读参考文章。 查看安装结果:
了解后续需要的镜像版本:

初始化集群控制面

1.启动kubelet,保证开机执行
2.开始部署,这里切换到root账号
参数解释(这里直接摘抄原参考文章啦):
  • -image-repository:从阿里云服务器上拉取上面需要的基础镜像,如果不设置,就得去 Google 服务器拉取;
  • -pod-network-cidr:设置集群中 Pod 的网络地址段,这是给后面安装网络插件 Flannel 使用的;
  • -kubernetes-version:指定 Kubernetes 版本;
  • -v=5:显示详细的跟踪日志,可以参考这里
  • -apiserver-advertise-address:指定 api-server 的 IP 地址,如果有多张网卡,请明确选择哪张网卡。由于 apiserver 在 Kubernetes 集群中有很重要的地位,很多配置(如 ConfigMap 资源等)都直接存储了该地址,后续更改起来十分麻烦,所以要慎重。 3.按照日志提示进行kube config配置 我的做法是在root下,后续kubeedge部署时,默认的config文件就在$HOME/.kube/config,也就是/root/.kube/config

安装网络插件

关于k8s的网络插件,请自行学习,我也需要再学习一下... 这里我们按照原参考文章一样选择Flannel。 从 Github 获取安装文件 kube-flannel.yml,然后对其进行修改:
将上面的 Network 调整为我们之前初始化集群时设置的 pod 网段:
最后我们使用 kubectl apply 进行安装:
也可以按照flannel官网的方式直接
感觉版本的话都可以问题不大,但是不管怎么样pod网段应该都需要配置的。

有一个小问题需要注意

在后续运行edgemesh测试案例的过程中,发现部署在边端的pod始终处于ContainerCreating的状态,边端的edgecore日志显示原因是/run/flannel/subnet.env不存在,把云端的这个文件内容复制到边端之后才可以正常部署。因此可以留意一下这个问题,在部署edgemesh的时候我还会再说一遍。

关于镜像

在没有设置containerd的代理之前,我遇到了flannel镜像无法拉取的问题,我推荐一个我使用的国内镜像源替代的方法。 在渡渡鸟镜像同步站搜索相关的镜像,kubectl edit pod/deployment/daemonset ** -n **直接替换为国内的镜像。如果渡渡鸟镜像同步站没有相关镜像的话,也可以按照网站的使用指南进行添加。

移除master上的污点

移除污点是为了让 master 节点可以部署业务服务,当时部署cloudcore的时候就因为这个问题耽误了一些时间...
参考文章中的调整NodePort范围,目前我还没有遇到问题,因此先跳过了,需要的请阅读参考文章。 增加Worker节点也暂时没有必要,需要的请阅读参考文章。

安装Docker

此外,在运行联合推理案例时,需要构建联合推理头盔检测大小模型的镜像(运行案例中的build_image.sh脚本,这个到时候也会说),因此需要安装docker ce。 清华镜像源安装docker ce,官方文档:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/ 另外Docker也最好配置代理和国内镜像,请自行搜索方法。

参考文章


© Shemol 2022 - 2024