一、什么是Kubernetes
Kubernetes(简称 K8s)
是用于自动部署、扩缩和管理容器化应用程序的开源系统。
k8s 是一个谷歌开源的容器编排系统,使用Go语言辨析,适合管理大规模的容器集群。
Kubernetes是一个针对容器应用,进行自动部署,弹性伸缩和管理的开源系统。主要功能是生产环境的容器编排,Kubernetes名字太长了,叫起来有点麻烦,而Kubernetes首字母与结尾字母之间有8个字母,因此被称作K8S。
二、Kubernetes架构图
Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统。Borg是谷歌内部的大规模集群管理系统,负责对谷歌内部很多核心服务的调度和管理。Borg的目的是让用户不必操心资源管理的问题,让他们专注于自己的核心业务,并且做到跨多个数据中心的资源利用率最大化。
Kubernetes借鉴了Borg的设计理念,整体架构跟Borg非常像,如下图所示:
三、Kubernetes功能
功能:
①通过yaml配置文件实现一键集群中容器的批量部署;
②扩容、缩容、更新、回滚、发布、服务发现...;
③默认提供负载均衡,高可用等功能。
1.容器编排
  • 自动化部署:Kubernetes 可以自动化地部署应用程序容器,并通过滚动更新或回滚来管理应用的升级过程。
  • 负载均衡:Kubernetes 可以自动将流量分配到多个容器实例,确保服务的高可用性和负载均衡。
2.扩展和管理
  • 自动扩展:Kubernetes 可以根据资源使用情况自动扩展或缩减应用程序的实例数量,以适应流量或资源需求的变化。
  • 自愈能力:如果某个容器或节点发生故障,Kubernetes 可以自动重启或重新调度容器,确保应用程序的持续运行。
3.存储管理
  • 持久化存储:Kubernetes 支持多种存储解决方案,可以为应用程序提供持久化存储。
  • 存储编排:Kubernetes 可以动态地为应用程序分配存储资源,并管理存储的生命周期。
4.服务发现和负载均衡
  • 服务发现:Kubernetes 提供了内置的服务发现机制,使得不同的服务可以相互发现和通信。
  • 负载均衡:Kubernetes 支持多种负载均衡策略,确保流量在多个容器实例之间均匀分布。
5.配置和密钥管理
  • 配置管理:Kubernetes 允许用户通过配置文件或环境变量来管理应用程序的配置。
  • 密钥管理:Kubernetes 提供了安全的密钥管理机制,用于存储和管理敏感信息,如数据库密码或 API 密钥。
6.多环境支持
  • 混合云和多云:Kubernetes 可以在不同的云环境(如 AWS、Azure、Google Cloud)和本地数据中心中运行,实现混合云和多云部署。
  • 集群管理:Kubernetes 可以管理多个集群,允许用户跨多个集群部署和管理应用程序。
7.社区和生态系统
  • 丰富的插件和扩展:Kubernetes 拥有一个庞大的社区和生态系统,提供了大量的插件和扩展,用于增强 Kubernetes 的功能。
  • 持续演进:Kubernetes 是一个活跃的开源项目,不断引入新的特性和改进,以满足不断变化的容器化需求。
四、为什么要学习k8,学完k8s后能做什么?
  1. 技术刚需随着微服务、云原生架构的普及,传统运维方式已无法应对大规模容器集群的管理需求。K8S 提供自动化部署、弹性扩缩容、故障自愈等能力,是支撑现代分布式系统的核心技术。
  2. 职业竞争力提升掌握 K8S 是云计算、DevOps、云原生相关岗位的必备技能,薪资比同级别非 K8S 岗位高 20%-40%,持有 CKA/CKS 认证者更易获得大厂 offer 和晋升机会。
  3. 生态红利K8S 是云原生技术栈的核心,与 Docker、Jenkins、Prometheus 等工具深度集成,学会 K8S 后可快速掌握整个云原生技术生态,打通从开发到运维的全链路能力。
(一)技术能力落地
  • 集群管理:部署、运维 K8S 集群,实现节点监控、故障排查与资源优化。
  • 应用编排:将微服务、单体应用容器化,通过 Deployment、Service 等资源实现高可用部署与负载均衡。
  • 自动化运维:结合 CI/CD 工具(如 Jenkins、GitLab CI)实现应用的持续部署与回滚,减少人工操作。
  • 多场景适配:支撑微服务架构、批处理任务、AI / 机器学习工作负载,适配公有云、私有云、混合云等环境。
(二)职业发展方向
  1. 运维方向
  • 高级运维工程师:负责 K8S 集群的稳定性保障与性能调优。
  • DevOps 工程师:构建基于 K8S 的自动化交付流水线,提升研发效能。
  • SRE(站点可靠性工程师):通过 K8S 实现系统高可用与故障自愈。
  1. 开发与架构方向
  • 云原生开发工程师:基于 K8S 开发微服务应用,优化容器化性能。
  • 云原生架构师:设计企业级云原生架构,规划 K8S 集群与技术栈选型。
  1. 其他方向
  • 技术支持:为企业提供 K8S 相关的技术咨询与问题排查。
  • 培训讲师:将 K8S 技术经验转化为课程,赋能更多从业者。
五、 K8S和Docker关系、区别?
k8s与docker的关系是平台与工具的关系;
Docker 是创建和运行容器的工具(容器运行时),K8S 是管理大量容器的平台。
关键区别:4个核心维度
对比维度
Docker
K8S(Kubernetes)
核心定位
容器化工具(单机)
容器编排平台(集群)
核心功能
1.构建 / 管理容器镜像
2.启动 / 停止单机容器
1.容器调度与部署;2.服务发现与负载均衡;3.自动伸缩与故障恢复
核心目标
解决“应用环境一致性”问题
解决“大规模容器集群管理”问题
依赖关系
可独立使用,无需依赖 K8S
无法直接创建容器,需依赖容器运行时(可含 Docker)
六、K8S的结构,核心组件?用“是什么 - 解决什么问题 - 核心作用”的结构?
  • Master 管理节点、控制平面(Control Plane,旧称Master):管理整个k8s集群
    • 生产环境至少3个节点,大型集群5个节点;
    • 测试环境1个节点。
    • API server:集群的“统一入口”,对于k8s的所有操作(部署应用、查询状态)都要经过API Server;负责验证请求、转发指令,是组件间通信的唯一渠道。
    • etcd:是专门存储配置信息的数据库,key-value结构。
    • Controller Manager:控制管理器,运行多种“控制器”进程(如节点控制器、副本控制器),监控集群状态,自动修复异常(如Pod崩溃了,自动新建一个)。
    • Scheduler:调度器,将容器调度到响应的节点上运行。
  • Worker Node 工作节点:容器的运行、监控、管理。(运行容器,Pod,容器生命周期管理)
    • 每个节点运行10~100个pod;根据pod的规模调整Worker节点的数量。
    • kubelet:每个节点上的“代理程序”,代理Master执行具体的任务管理容器运行时,监控容器的状态,向Master节点汇报节点状态。
    • kube-proxy:利用LVS、iptable的linux的组件实现负载均衡与网络通信,节点的“网络代理”,管理节点网络规则,实现Pod之间,Pod与外部的通信,支持Service的负载均衡。
    • Container Runtime:用于创建、运行容器的工具。例如:Docker、Podman、Containerd、CRI-O
七、K8S的安装部署方式有哪些?
  • 容器化安装:kubeadm:下载容器,使用docker安装
  • 二进制安装:下载k8s各种组件的安装包,配置systemctl,配置证书。

更多推荐