如何学习kubernetes
How to Learn Kubernets
Contents
k8s 这个东西真的内容太多了,没有啥系统性的资料,里面各种知识点真的太多了,最好的就是看官方文档,并且结合工作当中的实践慢慢积累,才能由浅入深,只是看文档想掌握深点,个人感觉很困难。
如果不是专做这行,只是把它当作应用部署的底层平台的话可以按以下的简单的流程做
- 1 、云服务商买一套,或者自己搭建个 k8s 环境
- 2 、运行起来一套简单的前后端分离服务,这里主要练习的是多个镜像启动多个不同的 workload ,然后怎么能互相访问对接,这个环节能掌握清楚 workload service ingress 都是干嘛的,该怎么用,怎么关联
- 3 、你会发现当你测试环境发生重启,或者 pod 重建后,数据库数据都没了,这会你就应该研究数据持久化了,pv pvc 的概念就出来了
- 5 、然后你又创建了个前端服务,想修改个前端页面的配置文件参数,比如网页的 title ,其他都一模一样,但是每个服务一个镜像,太麻烦了,容器里直接修改,重建就没了,配置文件放 pv pvc ,太小题大做,这会 configmap 出现了。连接数据库的配置文件,密钥明文,太 low 了,secret 出现了
- 6 、前端页面镜像有 bug ,必须要重打镜像了,cicd 出现了,你是选择 docker build 还是 jenkins ,新的知识又增加了
- 7 、更新 workload 的镜像,问题又来了,服务会不会受损,多副本就不会受损吗?如何优雅终止,健康检查,无损更新?
- 8 、服务高峰期怎么应对,手动扩副本数太傻,hpa 来了
如果想深点,做些 k8s 运维或者技术支持的,那么除了上面的必须熟悉,下面的东西必知必会
- 1 、清楚 k8s 的工作逻辑,master 的三大件是干嘛的,kubelet ,kube-proxy ,coredns 都是干嘛的,比如执行个创建或查询一个 workload ,系统组件之间怎么通讯的,创建一个 pod 后,容器网络和外界是怎么打通的,k8s 资源调度和分配逻辑是什么
- 2 、自己搭建一套 k8s 集群,多 master 的最好,master 和 worker 节点分开(一定是自己搭建,不要购买云服务商现成的容器服务,自己搭建过程会收获不少东西)
- 3 、熟练使用 kubectl 命令进行各种查询分析
- 4 、清楚 rbac 的功能和使用
等你发现 k8s 了解差不多了,发现总得有个监控吧,prometheus 出现了
流量治理,服务分析也得有 ==> istio
日志持久化保存 ==》els 来了
漂亮帅气的监控 ==》得研究 grafana 了
服务都上 k8s 了,集群越来越重要,etcd 崩了怎么办:etcd 原理和备份恢复得研究下
想自建镜像仓库了 ==> harbor 研究下。
这个云平台太贵了,业务想换个云平台,集群要迁移,velero 走起
想给 pod 限速了,想给集群加审计了