如何学习Kubernetes?

阳明的博客 / 2018-10-17 16:29

不管你是否意识到,在过去的几年时间里,以Docker、Kubernetes为代表的容器技术已经悄然发展成为一项通用技术。放眼国外,Google、Microsoft、IBM等互联网巨头们,仍在容器开源基础设施的技术市场上厮杀。回看国内,包括BAT、滴滴、京东、头条在内的大厂也都争相把容器和Kubernetes项目作为其技术重心,试图“放长线钓大鱼”。

正如媒体所言,软件正在吃掉世界,而容器正在吃掉整个软件世界。虽说有些夸张,但也充分证明了容器在当今软件研发领域的地位。顺势而为,是否掌握容器技术也成为很多企业在招聘时的一个重要选项。

容器技术本身是一项偏向运维工程师的基础技术,namespace资源隔离、cgroups资源限制等等概念对于开发人员来说,都有一道难以逾越的理解鸿沟。这些年,我一直都在和容器打交道,也一直和容器工程师探讨落地过程中的问题。从这些交流中,我发现总有很多相似的问题被反复提及,比如:

  1. 为什么容器里只能跑“一个进程”?
  2. 为什么我原先一直在用的某个JVM参数,在容器里就不好使了?
  3. 为什么Kubernetes就不能固定IP地址?容器网络连不通又该如何去Debug?
  4. Kubernetes中StatefulSet和Operator到底什么区别?PV和PVC又该怎么用?

这些问题乍一看与我们平常的认知非常矛盾,但它们的答案和原理却并不复杂。而这些对于容器初学者来说,又很难用一两句话就解释清楚。

容器技术涉及到操作系统、网络、存储、调度、分布式原理等等各方面的综合知识,也就导致了很多初学者面对容器技术,要么知识储备不足,要么杂乱无章、无从下手。

其实,看似纷乱繁杂容器技术体系,却存在着很多可以“牵一发而动全身”的主线。比如,Linux的进程模型对于容器本身的重要意义;或者,“控制器”模式对整个Kubernetes项目提纲挈领的作用。

这些基础知识并不会在Docker或者Kubernetes的官方文档中详细赘述。但它们也才是真正掌握容器技术体系的精髓所在,是每一位技术从业者都需要悉心修炼的“内功”。

学习路径

我们究竟应该怎样学习Kubernetes呢?很多同学一听说Kubernetes这个词语后就想直接使用,然后就被Kubernetes复杂的环境搭建拦截在了门外,从此感觉到灰心丧气,这里我总结了一些学习Kubernetes的方式方法,特别对于初学者是非常有用的:

  1. 学习Docker技术,至少Docker的基本命令要非常熟练
  2. katacoda为我们提供了一个学习Kubernetes的环境,这一步非常重要,我们需要先有一个可以使用的环境,先去使用下Kubernetes,感受下,了解Kubernetes里面的一些基本概念
  3. Rancher,了解了Kubernetes的一些基本概念后,我们可以使用Rancher来非常快速的搭建一套Kubernetes的测试环境
  4. 如果你能解决墙的问题,可以使用Docker for MAC/Windows自带的Kubernetes环境
  5. 到这一步的目的都是熟悉kubectl工具,了解Kubernetes各个资源对象的概念,这个时候我们就可以使用Kubeadm来搭建一套真正的测试环境了,这个环境其实和生产环境差不太多了,但是不建议生产环境使用kubeadm
  6. 这个时候你一定对Kubernetes的各种操作和概念已经非常熟悉了,现在你可以使用二进制的方式来搭建一套生产可用的集群环境了,手动搭建完成后你就会对Kubernetes各个组件之间的关系非常了解了,对于以后的排查集群故障非常有帮助,建议每个学习Kubernetes的同学都手动搭建一遍集群
  7. 接下来就看我们自己的需求了,比如Kubernetes的日常运维、日志收集、监控报警、CI/CD、微服务、ServiceMesh、二次开发之类的都可以很好的展开了。
  8. 如果还想继续深入可以去研究Kubernetes的源码了。

学习方法

如果你通过上面的步骤一步一步走下来,我相信你肯定能够很好的掌握Kubernetes的,但是说老实话,如果没有一些靠谱的资料和教程,一个人一步一步走下来还是非常吃力的,必然会踩很多坑,为此,我们社区为大家推荐两个良心课程,可以帮你能够快速学习Kubernetes。

实战课程

从Docker到Kubernetes进阶》视频课程是优点知识推出的一套从Docker入门一步步迁移到Kubernetes的进阶视频课程。

视频简介

学完本课程以后,你将会对Docker 和Kubernetes有一个更加深入的认识。

  1. 我们会讲到Docker的一些常用方法,当然我们的重点会在Kubernetes上面
  2. 会用kubeadm来搭建一套Kubernetes的集群
  3. 理解Kubernetes集群的运行原理
  4. 常用的一些控制器使用方法
  5. 还有Kubernetes的一些调度策略
  6. Kubernetes的运维
  7. 包管理工具Helm的使用
  8. 最后我们会实现基于Kubernetes的CI/CD

订阅福利

福利一:上新优惠价¥399,原价¥499,课程结束完成后恢复原价

福利二:每邀请一位好友购买,你可获得40元现金返现,多邀多得,上不封顶,随时提现(提现流程:优点知识小程序 – 我的 – 我的收益)

如何订阅?

扫描下图二维码,试看或购买课程即可。 Kubernetes视频课程

理论课程

深入剖析Kubernetes》专栏是极客时间基于多年的从业经验,用深入浅出的方式帮你从看似凌乱复杂的Kubernetes项目中梳理出一条主线,助你理解容器和Kubernetes背后的设计思想和逻辑,从而解决现实工作中遇到的问题。

专栏简介

我希望借由这个专栏,给你讲清楚容器背后的技术本质与设计思想,并结合着对核心特性的剖析与实践,加深你对容器技术的理解。为此,我把专栏划分成了4大模块:

  1. “白话”容器技术基础:用饶有趣味的解说,给你梳理容器技术生态的发展脉络,用最通俗易懂的语言描述容器底层技术的实现方式,让你知其然,并且知其所以然。

  2. Kubernetes集群的搭建与实践:Kubernetes集群号称“非常复杂”,但是如果明白了其中的架构和原理,选择了正确的工具和方法,它的搭建却也可以“一键安装”,它的应用部署也可以浅显易懂。

  3. 容器编排与Kubernetes核心特性剖析:这是专栏最主要的内容。“编排”永远都是容器云项目的灵魂所在,也是Kubernetes社区持久生命力的源泉。在这一模块,我会从分布式系统设计的视角出发,抽象和归纳出这些特性中体现出来的普遍方法,然后带着这些指导思想去逐一阐述Kubernetes项目关于编排、调度和作业管理的各项核心特性。

  4. Kubernetes开源社区与生态:“开源生态”永远都是容器技术和Kubernetes项目成功的关键。在这个模块,我会和你一起探讨容器社区现代开源软件工程指导下的技术演进之路,带你思考如何同团队一起平衡内外部需求,逐渐成为社区中不可或缺的一员。

在专栏开始,我首先为你准备了4篇预习文章,详细地梳理了容器技术自兴起到现在的发展历程,同时也回答了“Kubernetes为什么会赢”这个重要的问题,算是我额外为你准备的一份开学礼物。

机会总是留给有准备的人,现在就让我们一起开启这次充满挑战的容器之旅吧!

眼下,你我可能已经错过了互联网技术大爆炸的时代,也没有在数字货币早期的狂热里分到一杯羹。可就在此时此刻,在沉寂了多年的云计算与基础设施领域,一次以“容器”为名的历史变革,正呼之欲出。这一次,我们又有什么理由作壁上观呢?

订阅福利

福利一:上新优惠价¥68,原价¥99,9月8日恢复原价

福利二:每邀请一位好友购买,你可获得24元现金返现,多邀多得,上不封顶,随时提现(提现流程:极客时间 App – 我的 – 分享有赏)

如何订阅?

扫描下图二维码,试读或订阅专栏。 Kubernetes理论课程

优惠活动

本周(9月2日)之前对于购买了《从Docker到Kubernetes进阶》实战课程的用户,会随机挑选两位用户送出《深入剖析Kubernetes》专栏的兑换码。

扫描下面的二维码(或微信搜索k8s技术圈)关注我们的微信公众帐号,在微信公众帐号中回复 加群 即可加入到我们的 kubernetes 讨论群里面共同学习。 qrcode

「真诚赞赏,手留余香」

赞赏

× avatar.jpeg阳明

请我喝杯咖啡?

2元 5元 10元 50元 100元 任意金额
2元

使用微信扫描二维码完成支付

wechat-2.png

Shared via Inoreader