Kubernetes 入门实战课
罗剑锋
Kong 高级工程师,Nginx/OpenResty 开源项目贡献者
19527 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
Kubernetes 入门实战课
15
15
1.0x
00:00/00:00
登录|注册

17|更真实的云原生:实际搭建多节点的Kubernetes集群

你好,我是 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
立即购买
登录 后留言

全部留言(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归属地:北京
    5
    47
  • 朱雯
    终于跑起来了,提醒大家一件事,那就是新节点如何加入到k8s集群中,第一遍执行有提示,后续的话,可以执行kubeadm token create --print-join-command这条命令显示加入方式

    作者回复: great

    2022-08-02归属地:北京
    15
  • 努力学习不准懈怠
    一定要关闭swap,不然kubelet无法启动!!!

    作者回复: good

    2022-07-29归属地:陕西
    2
    14
  • 怀朔
    本章质量略显不足 .主要如下几点 1、已经在考虑多节点不如把多集群考虑进去 这样才是真正的线上环境? 2、因为网络问题 考虑仓库不足 如何直接引用国内云厂商镜像仓库? 讲解如何把海外镜像复制国内镜像岂不是更好? 3、生产中明显最关键是网络插件问题 和cidr块 网络冲突问题 通篇没有讲 令人略显单薄

    作者回复: 1.一步步来,不要着急。 2.国内的我很少用,大家也都懂。 3.什么都讲就会显得内容太多太杂,毕竟专栏的目标是入门,不是上生产系统。 4.感谢建议,会和编辑考虑再改进。

    2022-07-29归属地:陕西
    6
    13
  • hiDaLao
    1. 装环境时可先装一台然后克隆; 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归属地:北京
    7
    10
  • 小林子
    老师为啥不用 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
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部