17|更真实的云原生:实际搭建多节点的Kubernetes集群
Chrono
你好,我是 Chrono。
到今天,你学习这个专栏的进度就已经过半了,在前面的“入门篇”我们了解了 Docker 和容器技术,在“初级篇”我们掌握了 Kubernetes 的基本对象、原理和操作方法,一路走下来收获很多。
现在你应该对 Kubernetes 和容器编排有了一些初步的认识,那么接下来,让我们继续深入研究 Kubernetes 的其他 API 对象,也就是那些在 Docker 中不存在的但对云计算、集群管理至关重要的概念。
不过在那之前,我们还需要有一个比 minikube 更真实的 Kubernetes 环境,它应该是一个多节点的 Kubernetes 集群,这样更贴近现实中的生产系统,能够让我们尽快地拥有实际的集群使用经验。
所以在今天的这节课里,我们就来暂时忘掉 minikube,改用 kubeadm(https://kubernetes.io/zh/docs/reference/setup-tools/kubeadm/)搭建出一个新的 Kubernetes 集群,一起来看看更真实的云原生环境。
什么是 kubeadm
前面的几节课里我们使用的都是 minikube,它非常简单易用,不需要什么配置工作,就能够在单机环境里创建出一个功能完善的 Kubernetes 集群,给学习、开发、测试都带来了极大的便利。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
使用kubeadm搭建多节点Kubernetes集群是一项重要的技术任务。本文详细介绍了该过程,从准备工作到Master节点和Worker节点的安装,再到Flannel网络插件的部署,全面展示了搭建过程中的关键步骤和注意事项。文章还提供了两种获取Kubernetes组件镜像的方法,以及安装过程中可能遇到的问题和解决方案。通过本文,读者可以获得实际操作的指导和技术细节,帮助他们更好地理解和应用云原生技术。文章还提供了课下作业,鼓励读者动手操作,进一步加深对Kubernetes集群搭建的理解。整体而言,本文为读者提供了一份全面而实用的技术指南,对于想要学习和应用Kubernetes的技术人员来说,具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Kubernetes 入门实战课》,新⼈⾸单¥59
《Kubernetes 入门实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(128)
- 最新
- 精选
- Obscure不需要写脚本来下载镜像啊,一条命令搞定: kubeadm init \ --apiserver-advertise-address=192.168.137.100 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.23.6 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16
作者回复: 这个方法不错,感谢分享。
2022-09-04归属地:北京547 - 朱雯终于跑起来了,提醒大家一件事,那就是新节点如何加入到k8s集群中,第一遍执行有提示,后续的话,可以执行kubeadm token create --print-join-command这条命令显示加入方式
作者回复: great
2022-08-02归属地:北京15 - 努力学习不准懈怠一定要关闭swap,不然kubelet无法启动!!!
作者回复: good
2022-07-29归属地:陕西214 - 怀朔本章质量略显不足 .主要如下几点 1、已经在考虑多节点不如把多集群考虑进去 这样才是真正的线上环境? 2、因为网络问题 考虑仓库不足 如何直接引用国内云厂商镜像仓库? 讲解如何把海外镜像复制国内镜像岂不是更好? 3、生产中明显最关键是网络插件问题 和cidr块 网络冲突问题 通篇没有讲 令人略显单薄
作者回复: 1.一步步来,不要着急。 2.国内的我很少用,大家也都懂。 3.什么都讲就会显得内容太多太杂,毕竟专栏的目标是入门,不是上生产系统。 4.感谢建议,会和编辑考虑再改进。
2022-07-29归属地:陕西613 - hiDaLao1. 装环境时可先装一台然后克隆; 2. kubeadm init时指定的apiserver的ip需要是自己环境上master节点的ip地址,如果指定错误,可通过sudo kubeadm reset重置; 3. kube-flannel.yml 文件在仓库的Documentation目录下,只用copy到环境上修改下net-config.json里面的Network的地址即可; 4. 执行scp ~/.kube/config到console节点时,需要先在console节点上通过mkdir ~/.kube创建下目录
作者回复: great
2022-07-31归属地:北京12 - 项**1. --apiserver-advertise-address 参数指定成master的ip地址,不然初始化阶段会超时 找这个问题找了很久 2.初始话失败再重新尝试需要清空环境 #重置 sudo kubeadm reset #干掉kubelet进程 ps -ef|grep kubelet sudo kill -9 进程id #删掉配置目录 sudo rm -rf /etc/kubernetes/manifests/
作者回复: great!
2022-11-17归属地:上海11 - 这里的人都叫我八进制work节点NotReady解决办法 KubeletNotReady runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized 1. mkdir -p /etc/cni/net.d 2. vi 10-flannel.conflist { "name": "cbr0", "plugins": [ { "type": "flannel", "delegate": { "hairpinMode": true, "isDefaultGateway": true } }, { "type": "portmap", "capabilities": { "portMappings": true } } ] } 3. systemctl daemon-reload systemctl restart kubelet
作者回复: 欢迎经验分享。
2022-08-19归属地:北京710 - 小林子老师为啥不用 Calico 网络插件了
作者回复: 后面高级篇会用,flannel简单,而且现在不是我们学习的重点。
2022-07-29归属地:陕西6 - stark终于弄好了,坑不少 总结写在这里了 希望对朋友们有帮助https://blog.csdn.net/xuezhiwu001/article/details/128444657?spm=1001.2014.3001.5501
作者回复: great!
2022-12-26归属地:上海5 - 星亦辰cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 EOF 补充一个 Yum 的源
作者回复: great
2022-08-01归属地:北京4
收起评论