跳转至

k8s进阶知识概述

一、k8s基础知识回顾

docker容器封装应用程序的意义在于:docker引擎统一了基础的设施环境、统一了程序打包(装箱)的方式,也统一了部署(运行)的方式。从程序开发到上线,开发者不再关注基础环境的差异,使得开发者可以将更多的时间花在业务逻辑上。

不过,单独使用docker,你会发现存在以下问题

  • 单机使用,无法有效集群

  • 随着容器数量上升,管理成本攀升

  • 没有有效的容灾/自愈机制

  • 没有预设编排模板,无法实现快速、大规模的容器编排

  • 没有统一的配置中心管理中心工具

  • 没有容器生命周期的管理工具

  • 没有图形化运维管理工具

......

因此,我们需要一套高效的容器编排的工具,基于Docker容器引擎的开源容器编排工具目前市场上主要有:docker-compose、docker-swarm、kubernetes(k8s),由于k8s强大的容器编排功能,以及活跃的社区支持,k8s已经成为了docker官方推荐的容器编排工具。当我们使用k8s来部署服务,就能做到以下的效果

  • 环境稳定: k8s有自动修复的功能,发现某些服务不正常,它会尝试自启
  • 服务不间断: 及时是只运行的服务只有一个副本,在更新服务的时候,k8s也会新起好新的服务才会踢出旧版本的服务
  • 一次构建,多环境运行: 只需要打包一次镜像,在多个环境不需要重新构建

在前面的文章中,我们已经快速入门了k8s的集群的基础知识,并且基于kubeadm工具搭建了虚拟的k8s集群,但对于强大的k8s来说,知识冰山一角,在本系列中我们将继续探讨k8s集群的进阶知识。

二、目标

2.1 目标

实际上,k8s常见有三种部署方式

  • minikube: 适合节点微型k8s,一般仅仅用于学习、预览使用

  • 二进制安装部署: 是首选的安装方式

  • 使用kubeadm: 进行部署,kubeadm 是k8s的快熟部署工具,操作简单快捷,建议非常熟悉k8s的提前下使用这种方式

本章,我们的目标是抛弃 kubeadm 工具,从零使用二进制安装的方式搭建k8s集群,并更系统地地深入学习 k8s 知识!