学不会 k8s 怎么办?

131 天前
 MrLonely
曾经几次跟着网上各种教程尝试入门 k8s ,用过 k3s ,minikube 等轻量化入门版本。但是最终都以失败告终。回想起来当年入门 Docker 时也是花了很长时间才成功理解 image 和 container 的区别。

网上看到过很多次劝退 k8s 的内容。说太难,学习曲线陡峭,学会了也是个屠龙之术。我是做量化交易员工作的。Docker 也只是工作中辅助性质的一个环节。k8s 也只会作为辅助 Docker 的一个环节。也就是说就算我学会了 k8s ,对我来说也是个辅助中的辅助。

但不得不说我现在对 Docker 的依赖越来越高了,所有的 Docker 都是单节点部署的。有时需要迁移花费的精力还是很大的。也需要经常去备份虚拟机以保留一个恢复到历史状态的可能性。

兄弟们觉得我是应该再继续努力一下呢?还是去寻找别的方案来优化一下我在 Docker 上的工作流?

在这里先多谢各位建言。
5040 次点击
所在节点    Kubernetes
32 条回复
partner666
131 天前
网上找篇靠谱的二进制安装文档,照着装一遍,版本尽量高一点。
1. 先了解各个组件的作用和联系,这些有利于排查集群问题
apiserver 、scheduler 、proxy (几种模式)、kubelet 、etcd
2. 了解 pod 和高级调度组件,对比写法和使用场景
pod 、deployment 、daemonset 、stafulset
3. 服务
service 、无头服务、service 如何关联资源
4. 配置管理
config 和 secret
5. 存储
几种常用卷、pv&pvc
6. 高级调度的一些概念
污点、容忍、亲和力
掌握以上基本就可以运维 k8s 集群了,再往后就了解一下 csi 高级存储、helm 和 operator 方式部署服务等
yulgang
131 天前
操作系统、网络、存储基础打好再看
laminux29
131 天前
k8s 难学,是因为它集合了数据结构与算法、操作系统、网络原理、数据库原理、软件工程、分布式系统等科目,可以说是众多科目的集合。

就算计算机科班生,很多人都没办法全部搞定,更别提你还不是科班的。
qiqw
131 天前
我也不会, 想学
jaylee4869
131 天前
Quantitative Trader 能有你这种想法的确实厉害!

但是这是对于有技术背景的,如你所说,对于大多数人来说,太难了! Kubernetes 对于非运维/计算机科班的人来说难度确实陡峭,连 Google 都曾承认 Kubernetes 过于复杂 ( https://www.solidot.org/story?sid=67046 )。所以我的建议还是 docker compose 。

你可以把 docker compose 理解为极度简化的单击 K8s.

如果你一定想学 K8s, 可以反反复复看了官网的文档和一些 youtube 上的视频后,开始自己利用本地虚拟机作为 kubernetes 集群学习。我自己是个一后端程序员,四五年前学习的时候基本上前一个月脑子里全是各种概念,第二个月全是各种命令行和 yaml ,前前后后两三个月算是熟练了。最复杂的是网络,提前把 iptables ,nat ,dns 这些基础打劳,然后不靠 ide 能直接写 yaml ,遇到不清晰的直接找社区问,最多半年肯定会了。
zedking
131 天前
B 站搜个 CKA 教程 跟着做做 操作性的就那些东西 源码啥的那确实比较复杂
yu1miao
130 天前
既然是单节点,建议换个高性能服务器一把梭,管理起来方便。
k8s 对性能要求太高,即便是轻量如 k3s ,每个 master 节点空转都需要 2C 2G ; worker 节点网络丢包率必须足够低,不然 Pods 会频繁调度。没个十几台服务器,真没必要 k8s 。
如果真的想上集群,可以先试试 docker swarm ,用法跟 docker compose 一模一样。只不过需要把 network 的 driver 换成 overlay 。swarm 相比 k8s 用起来就是少了个 PVC (个人体验)
vivisidea
130 天前
docker-compose 了解下?没道理迁移复杂吧,你这个是有状态的应用吗?如果有状态的话,k8s 也解决不了你的问题,干脆把状态信息 mount 到目录下,迁移的时候整个 docker-compose 目录打包带走即可

可以再配合 ansible 把迁移时的动作都写成 playbook

我认为你不需要 k8s 这玩意儿,要玩就自己去阿里云上一键部署个 ack ,反正也轮不到你运维,知道怎么用就行
MrLonely
130 天前
@ipwx docker compose 用过。但是我用的场景下多多少少都得要挂载 volume 或者映射一个 docker host 的 directory 。迁移过程中主要是这部分数据持久化比较麻烦。虚拟机备份也是因为这部分数据。

@XDiLa step by step 的安装倒是能成功。但是安装完之后的使用就两眼一抹黑。那我觉得确实可以去尝试一下 ack 之类的云厂商服务。看看是不是使用起来更加简便。

@liuliancao compose 有在用了。rancher 我可以去了解一下。还有其他的工具推荐吗?

@JoeDH 我现在确实没有正式的场景要立刻使用。

@hxndg 我觉得你这个问题确实问到点子上了。我现在的大部份 docker container 都或多或少都有一些数据需要持久化。那也许是我这个做法不对?我是应该设置一个中心化数据库来保存所有的数据吗?

@laminux29 我觉得你说得对。可能这个技术对我来说学习需要花费的时间和回报特别不成正比。
ipwx
130 天前
@MrLonely Host 上有个数据目录太正常不过了。

你可以每天跑个定时任务,先关掉 docker compose ,然后把整个数据目录用 tar 打包(以为 tar 可以保存 owner 和权限信息),复制到备份目录,然后再打开 docker compose 。

docker compose down
BACKUP_NAME=$(date +%Y%m%d)
tar czvf ${BACKUP_NAME}.tgz 数据目录名称
rsync -avP ${BACKUP_NAME}.tgz 备份目录/
rm -f ${BACKUP_NAME}.tgz
docker compose up

备份目录可以选择 nas 的硬盘。然后你就可以愉快的使用它,而不用怕数据丢失了。所以我说 docker compose 太好用了。
kw8023cn
130 天前
普通的 docker 使用,docker compose 就足够用了吧
windcode
123 天前
可以从实操开始,比如自己用 kind 或者 minikube 本地部署一个 k8s ,然后在里面再部署一个可视化的 k8s 面板,上去点一点,这样会更加直观、迅速的理解 k8s 。
推荐的可视化 k8s 面板: https://github.com/KusionStack/karpor

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

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

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

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

© 2021 V2EX