11 | 从0到1:搭建一个完整的Kubernetes集群
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
本文详细介绍了如何从零开始搭建一个完整的Kubernetes集群,包括准备工作、安装kubeadm和Docker、部署Master节点、部署Worker节点以及调整Master执行Pod的策略。作者强调了本篇搭建指南是完全的手工操作,适合想要深入了解Kubernetes集群搭建的读者。在部署网络插件方面,以Weave为例,通过kubectl apply指令完成部署,并介绍了容器网络插件的部署方式和CNI接口。此外,还介绍了通过Taint/Toleration机制调整Master执行Pod的策略。最后,作者介绍了如何部署Dashboard可视化插件,提供了一个可视化的Web界面来查看当前集群的各种信息。整篇文章以实际操作为主线,详细介绍了搭建Kubernetes集群的过程,适合技术人员快速了解Kubernetes集群搭建的流程和相关技术特点。文章还介绍了容器持久化存储的重要性,并选择了Rook项目作为Kubernetes存储插件,强调了Rook项目的前景和基于Kubernetes API构建的完善性。整体而言,本文为读者提供了一个全面的Kubernetes集群搭建指南,涵盖了网络插件、持久化存储以及可视化界面的部署,为读者提供了丰富的实践经验和技术指导。
《深入剖析 Kubernetes》,新⼈⾸单¥68
全部留言(376)
- 最新
- 精选
- Roy Liangkubeadm最新版本已经为1.12,看到上面很多人遇到提示版本不对,重新安装低版本就好了 apt remove kubelet kubectl kubeadm apt install kubelet=1.11.3-00 apt install kubectl=1.11.3-00 apt install kubeadm=1.11.3-00
作者回复: 对对对
2018-09-29762 - Andy最新的部署ceph cluster需要多一条部署命令才可以部署成功: 1. kubectl apply -f https://raw.githubusercontent.com/rook/rook/master/cluster/examples/kubernetes/ceph/common.yaml 2. kubectl apply -f https://raw.githubusercontent.com/rook/rook/master/cluster/examples/kubernetes/ceph/operator.yaml 3. kubectl apply -f https://raw.githubusercontent.com/rook/rook/master/cluster/examples/kubernetes/ceph/cluster.yaml
作者回复: 又更新啦,@编辑
2019-04-17627 - 包治结巴张老师,请教一个问题,master部署完成后生成指令,比如“ kubeadm join 172.19.0.7:6443 --token xw4d6t.1dmpctojkcg9yqlf --discovery-token-ca-cert-hash sha256:45168e55ad19ac6126728e86c0a4c46e98c7df5d0312aec3fdd8d437dc24a3b9”,假如当时没有记下来,有什么命令可以再次让master生成这个指令吗?
作者回复: 可以用kubeadm查看token
2018-09-1811 - 心情不错以后是不是开发负责部署单个docker, 运维负责宏观kubernetes?
作者回复: 开发负责docker和一部分yaml文件,下一篇会讲一个流程
2018-09-1711 - 选择你好,照着你的教程,我在执行kubeadm init --config kubeadm.yaml, 提示:your configuration file uses an old API spec: "kubeadm.k8s.io/v1alpha1". Please use kubeadm v1.11 instead and run 'kubeadm config migrate --old-config old.yaml --new-config new.yaml', which will write the new, similar spec using a newer API version.用全新的虚拟机安装的 该怎么解决呢? 谢谢了
作者回复: 解决方法你自己都贴出来了……
2018-09-267 - John非常强的挫败感。第一,打败墙,花了几天。然后,应用了网络插件,但是仍然是 not ready,提示还是 network plugin is not ready cni config uninitiated。请问怎么看日志呢?
作者回复: journalctl -l -u kubelet
2018-09-2527 - hpfish为什么不解释一些常见的问题呢?第一次部哪有那么顺啊
作者回复: kubeadm存在的意义就是要让你第一次部署就这么顺,要不然这个项目就太失败了。至于GFW的问题,肯定要自己想办法解决。
2018-09-227 - Jeff.W网络受限的话觉得可以参考一下这个,使用Ansible脚本安装K8S集群,介绍组件交互原理,方便直接,不受国内网络环境影响 https://github.com/gjmzj/kubeasz。机器资源有限就弄个AllInOne?或者单主多从?老师怎么看?
作者回复: Ansible等工具适合部署大规模集群,做实验环境得不偿失,不建议分散精力。
2018-09-206 - huan分享一下这篇实践的小插曲,我是使用DigitalOcean的机器做的,没有墙的问题。 在使用weave-net的时候,怎么都通不过,报错是 weave-net的状态是 CrashLoopBackOff,看了container的log,也不懂啥意思,找了下k8s的troubleshoot页面的说明 (https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#pods-in-runcontainererror-crashloopbackoff-or-error-state),说是版本问题,不知道怎么解决。 然后随便找了另一个实现 Romana,替换weavenet `kubectl apply -f https://raw.githubusercontent.com/romana/romana/master/containerize/specs/romana-kubeadm.yml` 终于成功了,然后体验到了以前想都不敢想的Ceph,超赞
作者回复: rook.io真的是个好东西
2018-09-176 - Tokamak在执行kubeadm init config kubeadm.yaml时报如下错误: your configuration file uses an old API spec: "kubeadm.k8s.io/v1alpha1". Please use kubeadm v1.11 instead and run 'kubeadm config migrate --old-config old.yaml --new-config new.yaml', which will write the new, similar spec using a newer API version. kubedadm的版本信息是: kubeadm version: &version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.0", GitCommit:"0ed33881dc4355495f623c6f22e7dd0b7632b7c0", GitTreeState:"clean", BuildDate:"2018-09-27T17:02:38Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"linux/amd64"} 系统环境是:ubuntu server 16.04 在google也搜索了,没有找到解决方法。麻烦老师解答一下解决方法。 今后在遇到类似的问题时,应该如何解决呢,希望张老师能提供一个解决问题的思路。或者是如何才能查看不同版本的kubernetes的参数的差异变化。 谢谢张老师~
作者回复: 呃,提示都说了让你装kubeadm 1.11然后执行格式转换呢……为啥不操作呢
2018-09-285