想做航海王?先成为一个好舵手吧

为什么这篇文章取这个标题呢,一是因为准备说 K8s ,而 Kubernetes 就有“舵手”的意思,二是周日刚看了新的海贼王动画,凯多出现了,路飞准备被秒了,然后... 我就上班了,有点意犹未尽。

那么这篇文章从哪里说起呢? 我想就从虚拟机说起吧,相信很多同学都用过虚拟机,一般都是使用的 VMware 的。它就是一个操作系统里的软件,通过这个软件你可以再模拟一台或者多台电脑出来,这些子电脑相互隔离,你可以像正常电脑一样使用他们。

之后人们慢慢觉得,这些虚拟机,占用的空间又大,启动又慢,咋办?有没有一种更轻量的虚拟化,或者我们不必虚拟整个操作系统,只需要虚拟其中一个小规模的部分。

就这样 Docker 出现了,它启动时间短,占用空间小,一台主机甚至能跑几百几千个 Docker 容器。

Docker 有三大核心概念:镜像(Image)、仓库(Repository)、容器(Container),怎么理解这个三者之间的关系呢?Docker 还有两句话,一是 “Build ,Ship, Run” ,二是 “Build once, Run anywhere” 。


举个例子,小时候看多啦 A 梦,多啦 A 梦的口袋里总是可以掏出很多模型然后变大,比如可以是一个房子模型,找一个空地,房子模型就会变大,变成真实的房子。在Docker 里,那个房子模型就是镜像,多啦 A 梦的口袋有很多这样的模型,那他的口袋就是仓库,而真实的房子就是一个 Docker 容器了 (可能有一些不严谨的地方, 比如多啦 A 梦的一个模型只能变成一个房子)。也就是说,你只要有一个镜像就可以不考虑其他的配置,到处去把它变成 Docker 容器使用。

好了,有 Docker 这种简单方便的容器技术,是不是就天下太平了呢?不是的,因为人们在实际生产的过程中发现,Docker 的编排和调度还有很大困难,能否有一个编排管理 Docker 的管理系统呢?

没错,这时就该今天的主角 Kubernetes(K8s)登场了,K8s 就是那个管理 Docker 容器的管家,具体怎么做到的呢?

首先 K8s 是一个集群,其中有主从(Master/Node)两种节点,一般 master节点只有一个,node 节点可以有很多个。

想做航海王?先成为一个好舵手吧


master 节点里面有三个组件 API Server、Scheduler、Controller。API Server 就像一个营业厅,现在来了一个客户,客户告诉营业厅我要部署 XXX 容器,营业厅就打个电话告诉 Scheduler,来生意了,要部署 XXX 容器,Scheduler 就像是调度室,查看一下 node 节点里面,哪个比较有空,怎么分配比较合理,就把这个 XXX 容器部署在合适的节点上。而 Controller 呢,就像一个运营师傅,让每个节点都健康运行。

想做航海王?先成为一个好舵手吧

那 node 节点里面又是什么情况呢,在 node 节点里最基础的单元就是 Pod ,一个 node 节点可以有多个 Pod,而刚刚来生意 XXX 容器,就部署在某个 node 的某个 Pod 下,这个 Pod 可能也同时部署着其他容器。每个 node 节点,就这样有条不紊的运行着。

想做航海王?先成为一个好舵手吧

K8s 还有个很重要的概念叫 Service ,这又是干啥的呢?同学,其实不止 Service 还有什么 kube-proxy、Etcd 讲不完的,给你一颗探索的种子,自己去发现吧。

想做航海王?先成为一个好舵手吧

整个课程分成 19 个章节,包含 13 个实验 6 个挑战。课程从 K8s 的发展简史、基本概念入手,之后便实操带你进行部署,再将各个组件也融入到实操进行讲解。

基础入门部分包括:Kubernetes 基础概念、微服务架构、部署实例、以及最常用的 YAML 语言格式。

安装配置部分包括:在本地机器采用 Minikube 方式安装、在云环境中使用 Kubeadm 安装(单节点以及多节点)、命令行工具 kubectl 的使用方法、资源监控 metrics-server、重要的组件(kube-proxy、API Server、Etcd)解析及操作使用、以及 Dashboard 的基本使用。

课程既注重基础理论讲解,却不会陷入干枯无聊的纯基础理论讲解。实验中充满实操,同时还会奉上 6 个挑战,让你动手解决问题加深知识理解。本课程非常适合 0 基础同学进行入门学习 ~

想做航海王?先成为一个好舵手吧

想做航海王?先成为一个好舵手吧测试同学中肯评价

想做航海王?先成为一个好舵手吧