Kubernetes 的出现很大程度上抹平了运维工作的鸿沟,大大降低了老旧互联网企业和新兴小企业的运维成本,同时也为了转投“云”怀抱提供了可能。

Kubernetes builds upon 15 years of experience of running production workloads at Google, combined with best-of-breed ideas and practices from the community.
Kubernetes 带着 Google 15年的生产环境运维管理经验,重新定义的容器编排的标准。原来运维也可以如此高效、优雅、让人着迷。

kubernetes flower

容器抽象了服务器和程序运行环境

Kubernetes 抽象了服务器集群和程序集群

Kubernetes 学习路线

Kubernetes 是一个产品,所以绝大多数情况只需要“会用”就可以了。不需要去“懂”。

部署

要想用 Kubernetes,你需要先有一个 Kubernetes 集群。

  • 如果是个人学习,最简单就是云服务商直接创建一个集群出来。腾讯云上只包含 2 个 2Core 4G 节点的托管集群,一个小时只需要大概 0.7 元(记得带宽选按量付费)。阿里云也差不多。即用即创建,用完即删。我这里有 腾讯云阿里云 的返利链接,从这个链接进去买服务器大概能返总花费的 20% 可以联系我,退给你。
    腾讯云 TKE 计费

  • 如果是企业要用,就要花时间去研究下如何部署了。但是不需要太担心,网上部署文档很多,而且社区一直在简化部署。

  • 如果是创业公司,或者小公司,建议直接使用云服务。更稳定,而且性价比最高

  • 说明:自己部署的 Kubernetes 版本,和云服务提供的版本,是没有差异的。不用担心 Kubernetes 功能被阉割,一般只会增强。

基本使用

不论你通过何种方式,现在已经有了一个正在运行的集群。

  1. UI 界面

    • 如果你是用的云服务商,你还有一个UI界面给你操作,简单了解 Kubernetes 的各个组件。

    • 如果是自己部署的,你可以安装官方提供的 Dashboard 组件,也可以给你提供一个UI操作界面。护额安装,请参考下面的 kubeclt 命令。

  2. Kubectl 必须要

    • kubectl 是一个命令行工具。类似于 linux 系统的 ls 程序,windows 系统上的 cmd.exe 程序。只不过是专门用来和 Kubernetes 打交道的。

    • kubectl 安装在 Linux 上比较简单。windows 上稍微麻烦一点,本质上只需要想办法下载一个 kubectl.exe 文件,并在 PATH 里加上文件所在路径就可以了。

    • kubectl 的配置。Linux 和 windows 都一样的。在家目录创建一个 .kube 的文件夹,里面放一个无后缀的 config 文件,文件的内容,一般的云厂商都提供下载。

    • 第一个命令:kubectl get node 可以查看集群的 worker-node 个数。如果能成功返回结果,说明上面的步骤都 OK 了。开始真正开始了解和使用 Kubernetes 了。如果失败,一般都是网络问题,或者云厂商需要先添加白名单等等,自行发挥去解决吧。

  3. kubectl 基础知识

    • kubectl get xxxx 快速了解 Kubernetes 的过程。

    • kubectl describe xxxx 帮你了解 yaml 的格式、语法等。

  4. helm 基础知识

    因为生产环境不可能只部署 hello-world 这样的简单程序。所以正常的应用,都包含很多个 yaml 文件,如何有效的管理和组织,并方便复用和分发,就属于 Helm 的范围了。
    helm 本身只是一个模板引擎,另外再配上基于版本号的打包功能,再加上提供的包仓库。就最简单的实现了上面提到的几个目标。

    • helm install xxxx

    • helm install xxxx 和 helm template xxxx 先生成 yaml 文件 + 使用 kubectl apply -f xxxx 部署,效果是一样的。只是 Helm install 提供的额外的生命周期管理。