k8s搭建过程采坑记
自己在学习k8s时,也是摸石头过河,踩了很多坑,记录下来,给初学者一些启发,光看《k8s权威指南》是学不会的
二进制安装k8s,参考网上很多教程,比如<手工搭建k8s>。按照这些教程,安装etcd,docker,k8s的组件,这些步骤都做完后,但是通过命令:
kubectl get nodes
// 发现两个node节点都是not ready
然后一顿百度,发现家可能是虚拟机,在一台机器上,没有网络划分的问题,但是我在多台机器上部署,需要需要网络插件oci,于是我选择了为docker量身定制的flannel。按照<k8s集群上安装flannel网络>,发现怎么都启动不起来。然后各种百度问题,找到一些靠谱的解释:<etcd在k8s集群上的使用>, 原因大概是etcd有v2和v3两个版本,而这个连个版本存在着巨大的差距,于是问题定位到了etcd这边。网上文档说etcdv3可以同时支持v2和v3的客户端,并且v2和v3存储的数据不是互通的。
这其中就有部署etcd的小插曲,etcd最简单的就是一切采用默认参数运行,这样确实很好,但是却出问题了。主要是如下两个问题,需要修改配置文件
1、首先是外部电脑无法访问etcd,只能在本机访问。
2、v2版本的客户端无法访问。
1 2 3 4 5 | ETCD_DATA_DIR= "/var/lib/etcd/defualt.etcd" <br> # 10.19.12.199使其他机器能够访问 ETCD_LISTEN_CLIENT_URLS=http: //10 .19.12.199:2379,http: //localhost :2379 ETCD_NAME= "default" ETCD_ENABLE_V2= true <br> // 之前配置的2380端端口,但是V2客户端访问时提示是2380端口,修改为2379就好了 ETCD_ADVERTISE_CLIENT_URLS= "http://10.19.12.199:2379" |
这样flannel就能够启动了。
参考博客:etcd安装所遇到的坑
日进有功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义