raspberrypi系统在加入k8s作为node节点时遇到的问题
新买的树莓派4b到货后就迫不及待的烧录上raspberrypi系统,将新派加入我的k8s集群,期间遇到了点小挫折,好歹也一个一个解决了;
一、kubelet版本不对导致无法加入k8s集群
在执行kubeadm join时,提示无法连接127.0.0.1:10248;去master节点上看了下这个端口对应的服务是kubelet,那就是kubelet无法启动,我手动强制启动也是失败的;后来查看了下master的kubelet版本,发现master的kubelet版本是v1.23.5;而我新树莓派上的kubelet是v1.24.2;node节点的kubelet版本比master上的还高,于是就果断卸载v1.24.2,安装跟master一致的版本;
apt-get remove kubelet kubeadm kubectl # 卸载当前的版本
apt-cache madison kubelet # 查看当前kubelet的所有版本
apt-get install kubelet=1.23.5-00 kubeadm=1.23.5-00 kubectl=1.23.5-00 # 安装kubelet v1.23.5(版本号要写用apt-cache madison命令查到的版本写)
为了避免kubeadm和kubectl也因为版本高而无法加入k8s集群,同样卸载安装了跟master一致的版本;
二、因为时区问题导致无法加入k8s集群
kubelet版本没有问题之后,执行kubeadm join发现还是无法加入k8s集群,看报错是时间问题,用date命令发现竟然不是CST时间,于是开始更改时区为Asia/Shanghai
dpkg-reconfigure tzdata


三、因为“missing required cgroups: memory”报错导致无法加入k8s集群
看了下github上老外的解释:出现这个的原因是因为树莓派5.x以上的内核缺少cgroup; https://github.com/raspberrypi/linux/issues/3644
CGROUPS_MEMORY: missing
CGROUPS_PIDS: enabled
CGROUPS_HUGETLB: missing
[WARNING SystemVerification]: missing optional cgroups: hugetlb
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR SystemVerification]: missing required cgroups: memory
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher
在执行以下方式之前需要将前面执行kubeadm jion生成的配置文件删除掉,路径:/etc/kubernetes/kubelet.conf和/etc/kubernetes/pki/ca.crt
以下两种方式二选一即可
方式1:直接忽略该错误 ,加入--ignore-preflight-errors all参数
root@pinode1:/etc/kubernetes # kubeadm join 192.168.31.85:6443 --token ejdy9l.3p2bae948grk4mr8 --discovery-token-ca-cert-hash sha256:ecbf80d7c76e21074d6ef09107cf222c4aba350b36fa56bbce6e2ede483a1116 --ignore-preflight-errors all
方式2:编辑/boot/cmdline.txt(推荐)
添加cgroup_enable=memory cgroup_memory=1参数
console=serial0,115200 console=tty1 root=PARTUUID=0a27722f-02 rootfstype=ext4 fsck.repair=yes rootwait cgroup_enable=memory cgroup_memeory=1
编辑完保存之后,需要reboot重启树莓派;
再次执行kubeadm jion加入k8s集群,不再有“missing required cgroups: memory”错误;

master节点上查看新的pinode2节点也加入了k8s集群

raspberrypi系统在加入k8s作为node节点时遇到的问题的更多相关文章
- 第三章 k8s的node节点配置
一.修改主机名 hostnamectl set-hostname xxx 二.修改hosts文件vim /etc/hosts 三.将写好的hosts文件拷贝到其他节点 scp /etc/hosts r ...
- k8s的node节点无法调度的问题
1.现象,创建deployment时 2.查看污点 [fedora@k8s-cluster--ycmwlao4q5wz-master- ~]$ kubectl describe node k8s-cl ...
- k8s的node节点,执行kubectl get XXX报错
报错现象: [root@localhost ~]# kubectl get nodes The connection to the server localhost:8080 was refused ...
- k8s node节点部署(v1.13.10)
系统环境: node节点 操作系统: CentOS-7-x86_64-DVD-1908.iso node节点 IP地址: 192.168.1.204 node节点 hostname(主机名, 请和保持 ...
- k8s集群添加node节点(使用kubeadm搭建的集群)
1.安装docker.kubelet.kubectl.kubeadm.socat # cat kubernets.repo[kubernetes]name=Kubernetesbaseurl=http ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...
- K8s集群部署(三)------ Node节点部署
之前的docker和etcd已经部署好了,现在node节点要部署二个服务:kubelet.kube-proxy. 部署kubelet(Master 节点操作) 1.二进制包准备 [root@k8s-m ...
- Node节点如何加入K8S集群
k8s集群中,有时候发现有些节点状态为 NotReady,如何修复为Ready状态呢? [root@k8s-master~]# kubectl get nodes NAME STATUS ROLES ...
- K8S踩坑篇-master节点作为node节点加入集群
前面我们二进制部署K8S集群时,三台master节点仅仅作为集群管理节点,所以master节点上中并未部署docker.kubelet.kube-proxy等服务.后来我在部署mertics-serv ...
随机推荐
- .net 关于Task.Run 和 Async await的执行顺序
一直捋不清楚用Task.Run异步的执行关系,网上找的些说明写得也有点复杂,所以自己做实验测一下. 直接上代码 这个是加await private static void TestFun() { Co ...
- Vue的computed和watch的使用和区别
一.computed: 模板内表达式非常便利,可用于简单计算,当模板内放入太多的逻辑时,模板会过重且难以维护:可以使用computed替代 计算属性是基于它们的响应式依赖进行缓存的,当依赖的响应式数据 ...
- MySQL深入学习-day1
书名<MySQL是怎样运行的:从根儿上理解MySQL>可自行百度 以下是知识点总结 重新认识Mysql MySQL是一个C/S架构的软件. 在Windows安装后首先注册成服务,然后会在开 ...
- Redis数据类型:五大基本数据类型及三种特殊类型
String (字符串类型) String是redis最基本的类型,你可以理解成Memcached一模一样的类型,一个key对应一个value. String类型是二进制安全的,意思是redis的st ...
- 设置VisualStudio以管理员身份运行
以vs2013为例 vs右键属性 ----- 找到目标位置如下 "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\ID ...
- 767. Reorganize String - LeetCode
Question 767. Reorganize String Solution 题目大意: 给一个字符串,将字符按如下规则排序,相邻两个字符一同,如果相同返回空串否则返回排序后的串. 思路: 首先找 ...
- 两个月吃透阿里P9推荐260页SpringBoot2企业应用实战pdf入职定P6+
前言 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置 ...
- 免费CDN:jsDelivr+Github 使用方法
转自 https://zhuanlan.zhihu.com/p/76951130 本文在CSDN上的链接:https://blog.csdn.net/qq_36759224/article/detai ...
- MVC - Request对象的主要方法
MVC - Request对象的主要方法 setAttribute(String name,Object):设置名字为name的request的参数值 getAttribute(String name ...
- 论文解读(ARVGA)《Learning Graph Embedding with Adversarial Training Methods》
论文信息 论文标题:Learning Graph Embedding with Adversarial Training Methods论文作者:Shirui Pan, Ruiqi Hu, Sai-f ...