K8s( kubernenes)详解:基础的认知

大家好,这里是彩妙呀~

这里,我们先讲一下什么是Docker

Docker 是一种轻量级容器化技术,它能把应用及其依赖打包成一个独立的"容器",让软件在任何环境中都能一致地运行。

在学习本篇以及本专栏之前,需要小伙伴们了解一下 Docker,这样会对后面内容有进一步的了解哦~

这里彩妙就不过多讲解啦~

Kubernetes(简称 K8s)则是专门管理这些容器 的"自动化大管家"(被管理的对象就是咱们docker所创建的容器)。当你的容器数量从几个增长到成百上千个时,手动管理就会变得非常困难。而K8s 就能自动完成容器的部署、伸缩、负载均衡、故障恢复等任务,让运维工作变得简单高效。

本篇内容专为小白打造,全程避开晦涩术语,从最基础的概念讲起,带你一步步看懂 K8s 的作用、核心组成,再到上手实操,帮你轻松入门容器编排技术。跟上彩妙的步伐,一起进入新世界的大门吧~

K8s的前世今生

从物理机到虚拟机:早期部署的痛点

在容器技术出现之前,应用的部署方式经历了几个阶段:

  • 物理机时代:一台服务器只跑一个应用,资源利用率极低,扩展成本高。
  • 虚拟机时代:通过 Hypervisor 在一台物理机上虚拟出多台虚拟机,每个虚拟机包含完整的操作系统,隔离性好但资源开销大。

为了解决这两种方法的问题,我们就推出了:容器化这个概念。

Docker 的诞生:容器化革命

2013 年,Docker 横空出世,带来了轻量级容器的概念:

  • 容器共享宿主机内核,启动只需毫秒级
  • 镜像机制让"一次构建,到处运行"成为现实
  • 相比虚拟机,资源开销大幅降低

Docker 迅速成为开发者的宠儿,但新的问题也随之而来。

容器多了,谁来管?

当容器数量从几个增长到几十、几百甚至上千个时,手动管理变得寸步难行:

  • 容器挂了怎么办?------需要自动重启
  • 流量高峰来了怎么办?------需要自动扩容
  • 新版本怎么发布?------需要滚动更新
  • 服务之间怎么发现彼此?------需要服务发现

Google 的答案:Borg → Kubernetes

Google 内部早在 2000 年代初就开发了名为 Borg 的集群管理系统,用于管理数十亿个容器。Borg 的成功经验让 Google 意识到:容器编排是下一代基础设施的核心能力。

2014 年,Google 基于 Borg 的经验,开源了 Kubernetes (希腊语意为"舵手"或"领航员"),简称 K8s(K 和 s 之间有 8 个字母)。

K8s 的崛起:从 CNCF 到行业标准

2015 年,Google 联合 Linux 基金会成立了 CNCF(云原生计算基金会),并将 Kubernetes 作为首个孵化项目捐赠给 CNCF。此后:

  • 2017 年,K8s 成为容器编排的事实标准
  • 几乎所有云厂商(AWS、Azure、GCP、阿里云等)都提供了托管 K8s 服务
  • Docker 自身也在 2017 年宣布支持 Kubernetes

那么,到底K8S到底是什么?又有哪些组成的呢?接下来,彩妙将逐个为你讲解这些问题。

K8S基础概念以及组成组件

K8S基本概念

K8s 的全称是 Kubernetes,因为单词首尾字母 K 和 s 之间刚好有 8 个字母,大家便约定俗成叫它 K8s。你可以把它理解成一个专门管理容器智能大管家

容器就是装着应用的标准化 "集装箱"(通常是用docker创建的容器),一台服务器上跑三五个容器,手动管理还应付得来;可一旦业务做大,几十上百个容器分散在多台服务器上,麻烦就接踵而至:哪台服务器有空余资源?容器挂了谁来重启?访问量暴涨怎么快速扩容?更新版本怎么才能不中断服务?

这些手动处理起来又累又容易出错的事,交给 K8s 就能自动完成。你只需要告诉它你的需求 ------ 比如 "我要跑 5 个这个应用,对外能正常访问",剩下的部署调度、故障自愈、弹性扩容、无感更新,K8s 都会帮你打理好,这也是它成为云原生时代核心工具的原因。

这也是自动化运维工程师必备技能

总的来说,K8S有以下几个特点:

  • 开源:由CNCF托管的开源社区,有多位大佬联合完善,插件居多,生态开发且厂商中立。
  • 服务发现与负载均衡
    • 服务发现 :Core DNS插件,通过固定的域名来访问服务,自动同步到后端的Pod地址与副本变化(这块后续章节详解,这里了解即可,但是要有计算机网络基础才行)
    • 负载均衡 :按照规则,分发请求到多个健康Pod上,避免某个pod压力过大;自动排查故障(Pod有问题就自动重启或销毁,并重新拉一个Pod再创建服务),保证高可用
  • 自动部署与回滚:支持滚动更新无缝发布新版本,保留历史版本记录,发布异常可快速回退至稳定状态。
  • 自动分配:自动将容器调度至合适节点运行,按需分配计算资源,提升集群整体资源利用率。
  • 自我修复:实例故障自动重启重建,节点异常时自动迁移业务,始终维持预期的服务副本数量。
  • Secret与配置管理:配置与敏感数据独立托管,无需打包进镜像,支持动态挂载,安全且易维护。
  • 大型规模支持:支持千级节点大规模集群,可横向扩展,轻松承载业务增长与复杂部署需求。

上述内容了解即可,后续我们在进行一个深入的探索与了解

K8S的组成部分

具体的组成部分如下:

上图就是我们K8S的大致组成了,在后面的章节,我们要逐个学习这些组件,这里就先不做过多深入的了解啦~


本篇到这里就结束了,喜欢文章的小伙伴可以关注一下彩妙,我们下一篇再见~