学习研究搭建 Kubernetes 的问题

7 天前
 Ashe007

手上仅用一台 2 核 8g 的 Centos 服务器。 个人是练习 Java 两年半的 bug creator 。

最近刚练习完 Gitlab 的 CI/CD ,想搞一搞 kubernetes ,然而感觉官网的 get started 页面有些过于简陋(只有命令没有对行为的相关入门级别解释),其他页面则是过于繁琐冗杂。

问了下智谱清言,也是给出了一堆 command ,有没有好心的大佬给小白我讲一讲 kubernetes 的整体架构,运作流程(有相关博客更佳),以及为什么它需要 docker 容器,而后最新版本又不需要 docker 容器呢?

3200 次点击
所在节点    程序员
57 条回复
Maca
7 天前
官方的 quick start 没记错是分 master/worker 部署的吧。
只有一台机器的话,可以参考 18 楼用 minikube 或者 k3s 。
(其实 docker desktop 也内置了 k8s 的可选功能)
Ackvincent
7 天前
简单入门可以看看这个 https://www.kuboard.cn/learning/
Maca
7 天前
然后关于 k8s 的架构,8 楼推荐的 凤凰架构 那本书(网站)确实讲得挺不错的,值得慢慢啃。

至于问了 AI 得到一堆 command (应该还有一堆 yaml )是这样的 ಥ_ಥ 玩这玩意就是一堆配置和命令,反而图形化的管理页面用了几个都觉得不好用,很别扭。
还有 docker 容器的问题,不是不需要 docker ,而是有更多的 CNI 可以选择。在没有完善这块之前,kubernetes 通过内置了 shim 去兼容 docker ,之后”时机成熟“就把这个兼容层移除了(当然还是可以通过手动安装 shim 来兼容 docker )。
不过 8 楼说 docker 嘴硬这点,跟我的认知不太一样,很多 CNCF 的规范和工具,包括 containerd ,都是出自 docker 之手。
clf
7 天前
先理解每个东西是干嘛的,然后就大概知道了。比如 Service 、Pod 、pvc 之类的……
gimp
7 天前
我之前整理了篇博客,可能对你了解容器方面的知识有些许帮助

<了解容器运行时的演进与标准化之路> https://blog.yasking.org/a/container-containerd-cri-o-runc.html
n43635
7 天前
快速上手的话可以用 sealos 快速搭建起 K8S 集群,然后再启动一个 dashboard 比如 kuboard ,这样有图形界面可以更好容易理解 k8s 的整体架构,kuboard 的文档做的也很好,很多可以一步一步跟着做,最后拓展深入理解可以参考 k8s 的官方文档,官方文档比较全面
lasuar
7 天前
kursk
7 天前
关于学习 K8S ,我还是认为通过官方文档学习比较靠谱,因为这个东西还在发展,附着在它身上的其它工具可能活不了那么久,或者慢慢就不兼容了,所以泼一下楼上很多人的凉水,知识应该从源头学习,不要学习被别人转换或理解过的笔记或者 blog ,因为有些内容可能被扭曲或丢失

搭建环境也是,还是推荐用 kubeadm ,其它工具会更方便,但是只有 hard 模式才能让你理解更多,计算机就是实践性科学,你初学时不栽跟头,以后栽跟头成本更高

至于 K3S 我不了解,但线下与人讨论时别人说这个 bug 很多,我自己在搭建 K8S 集群发现也存在很多文档上没有写,自己实践做时才出现的问题,所以虽然我搭建 K8S 的环境是 ARM 的,但我也没有研究 K3S

我是自己在类似树莓派的国产开发板上搭建 K8S 集群,可以看看我这个帖子

草根云,每个云原生工程师都值得拥有 https://www.v2ex.com/t/1003629

不过 orangepi 3B 在运行 2 年后,10 个板子有 9 个的有线网口都坏了,所以这个质量不怎么样,我现在用了其它开发板,运行时也从 docker 换成了 runc ,操作系统还要自己编译,等我用一段时间后再写篇实践过程文档
Suaxi
7 天前
v 站之前有位大佬做一小时精讲专题的,K8s 这一块他用的是官网文档 demo 里的 MiniKube ,推荐先看看这个了解个大概,再整体深入学习
kursk
7 天前
还有楼上说的网络问题的确很重要,但是如果你要是没有能力在路由器上实现透明代理,那就也不用研究 K8S 了,因为 service 这种资源的本质就是一堆 rule ,你搞不定透明代理和科学上网,就肯定懂不了 K8S 的 servce 是咋回事
Ashe007
7 天前
@kursk 不能通过一些镜像网站规避网络问题吗?意思是先必须在服务器上实现科学上网,才能进而着手 k8s 吗
gdw1986
7 天前
研究下 CKA 认证吧,分分钟给你催熟
isno
7 天前
c8c
7 天前
官网网站就可以了
先看 https://kubernetes.io/zh-cn/docs/tasks/tools/ 这个安装环境
然后看 https://kubernetes.io/zh-cn/docs/tutorials/hello-minikube/ 这个搭建 minikube
之后 看 https://kubernetes.io/zh-cn/docs/tutorials/kubernetes-basics/ 这个把基础跟着做一遍

基础的概念就都有了。
datasheet
7 天前
https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 按照步骤走完就可以搞一个单机版的,你这个服务器配置也只能搞一个节点,不要考虑集群了
darkgeek
7 天前
@kursk 问个题外话,你的香橙派坏得这么厉害,是超负荷运转导致的,还是它本身质量问题?😂
kursk
7 天前
@Ashe007 因为我早已掌握透明代理技术,我就没有找 K8S 镜像仓库等一系列所需仓库的镜像,我想大致找不完整

透明代理不是在服务器上实现科学上网,而必须在服务器所连接的路由器上实现。了解一下 openwrt https://openwrt.org/ ,都是基于这个操作系统

二者的区别在于,一般的科学上网需要安装客户端,这个客户端会开通一个端口,每个程序都需要通过这个代理端口才能访问,但是这种做法局限太大,一是本地 Dns 查询需要另想办法,二是每个服务器的每个应用程序都需要配置,配置起来太麻烦,如果还考虑容器运行的需求则实际不可能采用这种办法

所以只能在网络层解决问题,让每台服务器连接到路由器后,统一在路由器上做路由控制,这个就要借助 iptables 或者 nftables 的功能了,这也是 K8S 中 service 这种资源干的事情,所以你迟早要懂

相关知识不敢多说,你 google 一下 透明代理 openwrt dnsmasq iptables 等关键词
kursk
7 天前
@darkgeek 我 CPU 和内存的负载都不大,而且 10 个有 9 个都是坏的有线网口,一定是质量问题
nicholasxuu
7 天前
极客时间买节课,好好上完应该还行。
halov
7 天前
可以试一下 k3s ,轻量级的 k8s ,部署起来不需要太多的资源,用来学习不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1101162

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX