Last Updated on

前言

Kubernetes(以下简称k8s)是Google开源的容器编排管理集群系统,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

与目前最主流的容器技术docker进行配合,搭建kubernetes集群,实现企业容器云,能实现多种功能,比如容器的管理,自动伸缩,重启,容器的滚动升级,回滚,负载均衡等等等等,在docker以优秀的隔离性,更少的资源占用等等优势,吞噬着传统虚拟机的市场,很多原本只能用虚拟机完成的业务,比如如今普遍实行的分布式微服务架构,以前都是使用虚拟机来实现服务的隔离分布,通常一个虚拟机只为了启动一个服务,来实现集群,但随着容器技术的兴起,更少的资源占用,优秀的隔离,使得目前普遍的微服务架构已经基本和docker和k8s形成了一套非常完善的体系。

此篇就作为Kubernetes系统教程和学习的入口汇总篇,以后所有相关的篇章都会在此篇中放入链接和说明。此系列会有多少文章,也不一定,每有更新便会放入此汇总篇中。

此篇长期不定期更新。

正文

要想系列的学习k8s,首先需要有对Docker熟悉和了解,若没有接触过Docker,则推荐先学习下Docker,再来学k8s,因为k8s是编排docker容器的。其底层运行容器引擎还是Docker。

当然实际上k8s不止能编排docker容器,还支持别的容器引擎,但这里我们不考虑,只以目前市场上最主流的Docker容器引擎做说明。实现Docker+k8s

至于Docker相关系列教程, 出门左拐:

《Docker 系列教程汇总篇》

一:k8s理论基础

在学习k8s实际的操作和环境搭建前,我们需要先大体上了解k8s整体的架构和相关的核心组件。这样在心里才有一个大体的轮廓,才知道自己学到的内容是什么,是哪部分相关的。

新手请一定要先看下面的基础理论相关篇,不要急着动手实践操作。

了解了k8s的架构后,我们就可以进行集群安装了,安装的话参考下面环境部署的教程。

在熟悉了k8s的架构后,下面我们来了解一下k8s中对象的概念,才能更好的使用和了解k8s。

二:集群环境部署

搭建k8s的环境,有三种方法,适合的场景各不相同,对于初学者,可以通过官方提供的minkub工具搭建学习环境:

搭建多节点的生产环境有两种方法:

  • kubeadm:官方提供的部署工具,方便快捷,简单。
  • 二进制包手动安装:全部手动安装,复杂但是可以了解部署安装的细节,明白集群的更多细节。

以上两种办法都可以实现生产环境的安装,怎么选择呢?

对于所有人,推荐一定要通过二进制包手动部署安装一次,这样可以让你跟熟悉k8s架构中的各个核心组件的关系,对于其架构能有更深的理解和感受。才能在k8s集群环境出现问题的时间,能够更好的定位到问题所在。是学习k8s的一种很方的方式。

如果你已经通过二进制包手动部署过k8s集群了,那么可以直接使用官方提供的kubeadm工具,直接构建k8s集群环境。这能更快,更方便,更成熟。

所以,推荐是在公司中,使用二进制包手动部署k8s的测试环境,使用kubeadm工具部署生产环境。当然也不完全,都使用二进制包部署也是可以的,这样有更多可控性,因为所有部署的环节都是自己部署的,在后面需要进行运维开发等二次修改或者控制自动化部署时会更方便可控。

二进制包手动部署教程如下:

  • 《Kubernetes 二进制包手动部署(一): 证书制作和etcd集群部署》
  • 《Kubernetes 二进制包手动部署(二): Master节点部署》
  • 《Kubernetes 二进制包手动部署(三): Node节点部署》
  • 《Kubernetes 二进制包手动部署(四): Flannel网络插件部署》
  • 《Kubernetes 二进制包手动部署(五): CoreDNS部署》
  • 《Kubernetes 二进制包手动部署(六): Dashboard部署》
  • 《Kubernetes 二进制包手动部署(七): Metrics-server部署》
  • 《Kubernetes 二进制包手动部署(八): Ingress部署》

使用kubeadm工具部署如下:

  • 《Kubernetes 使用kubeadm搭建生产环境》