k8s基础知识

发布时间:2026/7/8 11:42:45

k8s基础知识 K8s 全称Kubernetes中文常叫「容器编排平台」由谷歌基于内部 Borg 系统开源核心作用批量管理服务器上的容器。Docker 是打包应用的工具把程序 依赖打包成镜像K8s 是调度、运维成千上万个 Docker 容器的管理系统。一、核心基础概念1. 容器 vs 虚拟机虚拟机VMVMware / 云主机完整独立系统内核 操作系统 应用占用资源极大启动分钟级扩容慢。容器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 最小核心资源对象从底层到上层循序渐进1Pod最小调度单元重中之重定义K8s 里最小、不可分割的单元一个 Pod 内可装 1~N 个容器通常只放 1 个业务容器特点同一 Pod 内所有容器共享网络、存储卷共用 IPPod 生命周期短暂故障、扩容、更新都会销毁重建IP 会变不直接操作 Pod业务全部通过 Deployment 管理 Pod通俗举例一个 Nginx 程序镜像 → 打包成一个 Pod2Deployment无状态应用控制器90% 业务用它普通人部署 Web、Java 后端、Python 项目全部用 Deployment 核心能力定义 Pod 副本数量比如同时跑 3 个相同服务实例自动故障自愈Pod 崩溃自动新建替换水平扩容 / 缩容一键增加 / 减少实例数量滚动更新、版本回滚升级服务不中断业务 逻辑链路Deployment → 管理 ReplicaSet副本控制器→ 批量创建 / 管理 Pod3Service固定访问入口解决 PodIP 频繁变动问题前面说 Pod 销毁重建 IP 会变外部 / 内部程序没法稳定访问Service 作用分配固定不变 ClusterIP作为一组 Pod 统一访问入口内置负载均衡请求自动分发到后端所有正常 Pod四种常用类型表格Service 类型作用场景ClusterIP默认仅集群内部互相访问后端服务互调NodePort通过节点端口暴露外部可临时测试访问LoadBalancer云厂商负载均衡生产环境对外提供服务ExternalName映射外部第三方服务4ConfigMap / Secret配置分离ConfigMap存放明文配置配置文件、环境变量、参数不打包进镜像修改无需重建镜像Secret存放敏感数据数据库账号密码、密钥、Token加密存储不明文展示5Volume 存储卷Pod 销毁后容器内数据全部丢失Volume 给 Pod 挂载持久化存储emptyDir临时存储Pod 删除数据清空hostPath挂载宿主机本地目录PV/PVC集群持久化存储生产数据库必备6Namespace 命名空间集群资源隔离相当于文件夹用来区分环境默认 default不指定命名空间的资源都放这里示例dev 开发环境、test 测试、prod 生产三者资源完全隔离互不干扰

相关新闻