TNBLOG
首页
博客
视频
资源
问答
猿趣
手机
关于
搜索
收藏
便签
笔记
消息
创作
登录
剑轩
故如虹,知恩;故如月,知明
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
CSS
15篇
微服务
41篇
Git
14篇
.NET
102篇
移动开发
33篇
软件架构
23篇
.NET Core
119篇
.NET MVC
11篇
英语
3篇
随笔
86篇
Bootstrap
3篇
Redis
21篇
编辑器
10篇
Js相关
15篇
虚拟化
8篇
更多
Oracle
7篇
Python
14篇
数据库
26篇
EF
17篇
微信
3篇
前端
151篇
消息队列
6篇
docker
41篇
多线程
1篇
Java
4篇
软件基础
2篇
C++
2篇
WCF
7篇
Linux
7篇
nginx
5篇
K8S
9篇
ABP
2篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术
原
裸机搭建k8s集群可能遇到的坑
13989
人阅读
2022/5/30 11:07
总访问:
3917942
评论:
0
收藏:
0
手机
分类:
K8S
## 执行yum-config-manager报错 如果执行yum-config-manager报错:yum-config-manager: 未找到命令。 这个是因为系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils 安装就可以了。 ## 执行 yum -y install yum-utils报错 tn6>执行yum -y install yum-utils,可能会遇到错: repomd.xml signature could not be verified for kubernetes **是因为repo 的 gpg 验证不通过导致的,可以修改repo_gpgcheck=0跳过验证。** repo文件是CentOS中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用 在linux下,repo文件都是存放在/etc/yum.repos.d文件夹之中的 进入/etc/yum.repos.d,找到kubernetes.repo,文件打开修改即可 ![](https://img.tnblog.net/arcimg/aojiancc2/f71e464b543b4c2c8a36a9978c1f4488.png) 修改repo_gpgcheck=0跳过验证。 ![](https://img.tnblog.net/arcimg/aojiancc2/4dc5b84d6cc34e6991c7c2f596ce7b60.png) 修改之后在执行yum -y install yum-utils就可以成功了 ![](https://img.tnblog.net/arcimg/aojiancc2/2a4e054c49144de495d93578464d4eba.png) ## kubeadm init报错情况:一 tn6> /etc/kubernetes/manifests/kube-apiserver.yaml already exists /etc/kubernetes/manifests/kube-controller-manager.yaml already exists ............................. 这是因为前面已经执行过kubeadm init了或者是执行过很多次了 #### 解决方法 ##### 方法1:使用 kubeadm reset来重置 ``` kubeadm reset ``` ##### 方法2:在后面加命令--ignore-preflight-errors=all 来忽略 比如: ``` kubeadm init --image-repository=registry.aliyuncs.com/google_containers --ignore-preflight-errors=all ``` ##### 方法3:执行的时候接版本 比如—v=5 或者—v=更高的版本 ``` kubeadm init --image-repository=registry.aliyuncs.com/google_containers --v=5 ``` ## k8s构建Flannel网络插件失败,k8s安装网络插件失败 ``` kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` tn6>注意由于这是外国的网址很有可能会访问不到遇到错误:kube-flannel.yml The connection to the server raw.githubusercontent.com was refused。 是因为域名解析不了,所以访问不了。 ![](https://img.tnblog.net/arcimg/aojiancc2/22e52517d0dc4021a4d31356c87a9c9d.png) ### 解决方法: 不用域名登录,直接用ip登录,或者去/etc/hosts里设置下域名解析 **1、通过第三方网站查询到raw.githubusercontent.com所对应的ip是多少** http://ip.tool.chinaz.com/raw.githubusercontent.com ![](https://img.tnblog.net/arcimg/aojiancc2/1b59a5ca3efe4284a7fc25e84f3eebf2.png) **2、修改/etc/hosts做好域名解析,ip最好用网站上查询到的最新的** 使用vi命令打开hosts文件: ``` vi /etc/hosts ``` 添加:185.199.109.133 raw.githubusercontent.com ![](https://img.tnblog.net/arcimg/aojiancc2/1bc8014217a14087959330a37a795466.png) **3、再次执行上面贴的命令就可以成功了** ![](https://img.tnblog.net/arcimg/aojiancc2/7d529af2bbb743d78cfe259cb8e95821.png) ## k8s 1.24版本的坑 E0519 23:21:51 .331778 25545 kubelet.go:2419] "Error getting node" err="node \"master\" not found" 这种错,换成1.23版本就直接好了 -.- ## 如果是因为版本的问题造成的错误,可以先卸载然后在下载指定的版本 #### 比如先卸载掉当前的k8s环境,在安装指定版本 **先卸载k8s(我这里前面使用的是最新版)** ``` sudo yum remove -y kubelet kubeadm kubectl ``` **安装指定版本的k8s** ``` yum install -y kubelet-1.16.2 kubeadm-1.16.2 kubectl-1.16.2 --disableexcludes=kubernetes ``` #### 卸载Docker后在安装指定版本: tn6>注意:不同版本的k8s需要对应不同版本的docker版本,如果想安装不同版本的k8s可以自行搜一下对应的Docker版本。不然也容易出现坑。 **卸载Docker(我这里docker使用的也是最新版版本):** ``` sudo yum remove -y docker-ce ``` **安装指定版本的docker** ``` yum install docker-ce-18.06.3.ce-3.el7 ``` ## 一直卡到 [preflight] Running pre-flight checks 可以考虑时间同步的问题
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}