欢迎光临
我们一直在努力

k8s基础知识

K8s 全称 Kubernetes,中文常叫「容器编排平台」,由谷歌基于内部 Borg 系统开源,核心作用:批量管理服务器上的容器。

Docker 是打包应用的工具(把程序 + 依赖打包成镜像);K8s 是调度、运维成千上万个 Docker 容器的管理系统。

一、核心基础概念

1. 容器 vs 虚拟机

虚拟机(VM,VMware / 云主机)

完整独立系统:内核 + 操作系统 + 应用,占用资源极大,启动分钟级,扩容慢。

容器(Docker)

共享宿主机内核,只打包程序、库、配置,体积几十 MB,启动秒级,隔离轻量。 痛点:一台机器跑十几个容器还好,上百台机器、上千容器手动管理会崩溃:

  • 手动启停、扩容、故障重启
  • 多机器分发容器、负载均衡、滚动更新
  • 存储、网络、权限统一管理 K8s 就是解决以上所有痛点的自动化管理平台

2. K8s 集群两大角色(集群 = 一堆服务器组成)

① Master 控制节点(大脑,管控集群)

集群中控中心,不跑业务程序,只负责调度、管理资源,包含 4 个核心组件:

  • etcd:集群数据库,存所有集群配置、状态(所有资源数据)
  • kube-apiserver:唯一入口,所有操作(命令 / 页面)都走它,鉴权校验
  • kube-controller-manager:控制器,持续对比「期望状态」和「实际状态」,自动调优
  • kube-scheduler:调度器,新建容器时自动挑选最合适的工作节点部署
  • ② Node 工作节点(干活的,跑业务容器)

    真正运行项目 / 服务的服务器,每个 Node 必备 3 组件:

  • kubelet:节点代理,接收 Master 指令,管理本机容器,上报状态
  • kube-proxy:网络代理,维护 Service 网络转发,实现集群内部访问
  • 容器运行时:默认 docker/containerd,真正拉镜像、创建容器
  • 辅助工具

    kubectl:本地客户端命令行工具,我们操作 K8s 集群唯一命令工具,所有增删改查都用它。

    3. K8s 最小核心资源对象(从底层到上层,循序渐进)

    1)Pod(最小调度单元,重中之重)

    • 定义:K8s 里最小、不可分割的单元,一个 Pod 内可装 1~N 个容器(通常只放 1 个业务容器)
    • 特点:
    • 同一 Pod 内所有容器共享网络、存储卷,共用 IP
    • Pod 生命周期短暂:故障、扩容、更新都会销毁重建,IP 会变
    • 不直接操作 Pod,业务全部通过 Deployment 管理 Pod
    • 通俗举例:一个 Nginx 程序镜像 → 打包成一个 Pod

    2)Deployment(无状态应用控制器,90% 业务用它)

    普通人部署 Web、Java 后端、Python 项目全部用 Deployment 核心能力:

  • 定义 Pod 副本数量(比如同时跑 3 个相同服务实例)
  • 自动故障自愈:Pod 崩溃自动新建替换
  • 水平扩容 / 缩容:一键增加 / 减少实例数量
  • 滚动更新、版本回滚:升级服务不中断业务 逻辑链路:Deployment → 管理 ReplicaSet(副本控制器)→ 批量创建 / 管理 Pod
  • 3)Service(固定访问入口,解决 PodIP 频繁变动问题)

    前面说 Pod 销毁重建 IP 会变,外部 / 内部程序没法稳定访问,Service 作用:

  • 分配固定不变 ClusterIP,作为一组 Pod 统一访问入口
  • 内置负载均衡,请求自动分发到后端所有正常 Pod
  • 四种常用类型:

    表格

    Service 类型作用场景
    ClusterIP(默认) 仅集群内部互相访问(后端服务互调)
    NodePort 通过节点端口暴露,外部可临时测试访问
    LoadBalancer 云厂商负载均衡,生产环境对外提供服务
    ExternalName 映射外部第三方服务
  • 4)ConfigMap / Secret(配置分离)

    • ConfigMap:存放明文配置(配置文件、环境变量、参数),不打包进镜像,修改无需重建镜像
    • Secret:存放敏感数据(数据库账号密码、密钥、Token),加密存储,不明文展示

    5)Volume 存储卷

    Pod 销毁后容器内数据全部丢失,Volume 给 Pod 挂载持久化存储:

    • emptyDir:临时存储,Pod 删除数据清空
    • hostPath:挂载宿主机本地目录
    • PV/PVC:集群持久化存储(生产数据库必备)

    6)Namespace 命名空间

    集群资源隔离,相当于文件夹,用来区分环境:

    • 默认 default:不指定命名空间的资源都放这里
    • 示例:dev 开发环境、test 测试、prod 生产,三者资源完全隔离互不干扰

    赞(0)
    未经允许不得转载:171主机测评 » k8s基础知识
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址