学习研究搭建 Kubernetes 的问题

70 天前
Ashe007  Ashe007

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

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

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

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

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

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

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

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

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

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

不过 orangepi 3B 在运行 2 年后,10 个板子有 9 个的有线网口都坏了,所以这个质量不怎么样,我现在用了其它开发板,运行时也从 docker 换成了 runc ,操作系统还要自己编译,等我用一段时间后再写篇实践过程文档
Suaxi
Suaxi
70 天前
v 站之前有位大佬做一小时精讲专题的,K8s 这一块他用的是官网文档 demo 里的 MiniKube ,推荐先看看这个了解个大概,再整体深入学习
kursk
kursk
70 天前
还有楼上说的网络问题的确很重要,但是如果你要是没有能力在路由器上实现透明代理,那就也不用研究 K8S 了,因为 service 这种资源的本质就是一堆 rule ,你搞不定透明代理和科学上网,就肯定懂不了 K8S 的 servce 是咋回事
Ashe007
Ashe007
70 天前
@kursk 不能通过一些镜像网站规避网络问题吗?意思是先必须在服务器上实现科学上网,才能进而着手 k8s 吗
gdw1986
gdw1986
70 天前
研究下 CKA 认证吧,分分钟给你催熟
isno
isno
70 天前
c8c
c8c
70 天前
官网网站就可以了
先看 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
datasheet
70 天前
https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 按照步骤走完就可以搞一个单机版的,你这个服务器配置也只能搞一个节点,不要考虑集群了
darkgeek
darkgeek
70 天前
@kursk 问个题外话,你的香橙派坏得这么厉害,是超负荷运转导致的,还是它本身质量问题?😂
kursk
70 天前
@Ashe007 因为我早已掌握透明代理技术,我就没有找 K8S 镜像仓库等一系列所需仓库的镜像,我想大致找不完整

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

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

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

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

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

https://tanronggui.xyz/t/1101162

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

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

© 2021 V2EX