初始K8s

K8S 基本概念:

K8S 的全称为 Kubernetes (K12345678S),PS:"嘛,写全称也太累了吧,不如整个缩写"。

作用:

用于自动部署、扩展和管理"容器化(containerized)应用程序"的开源系统。

可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。

K8S是一款强大的容器编排平台,可以帮助企业实现容器化的业务部署和管理,提升效率和可靠性。

K8S是一个容器集群管理系统,在Docker等容器技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

K8S 的特点包括:

●自动化管理:大大减少了人工干预,提高了应用部署和管理的效率。

●弹性伸缩:能够根据负载自动调整容器的副本数量,实现资源的高效利用。

●高可用性:通过副本和故障转移机制,确保应用的持续可用。

●负载均衡:可以在多个节点上自动分配负载,实现负载均衡。

●跨平台支持:可以在不同的基础设施上运行,包括物理机、虚拟机和云平台。

核心组件

K8S有 master 和 worker node 两类节点

master:

Kube-apiserver:集群的统一入口,负责接收、验证和转发请求。

controller-manager:控制器管理器,负责管理K8s各种资源对象的控制器,通过apiserver监控整个k8s集群的资源状态,并确保资源始终处于预期的工作状态。

scheduler:资源调度器,负责pod资源的调度,通过调度算法(预选/优选策略)为待部署的Pod选择最适合的node节点。

etcd:K8S集群的数据库,是一种键值对存储结构的分布式数据库,负责存储K8S集群所有配置和状态信息,仅apiserver拥有访问和读写权限

work node节点:负责运行工作负载,即容器应用

kubelet:接受apiserver的请求,创建和管理pod 及其容器的生命周期,定期收集节点的资源使用情况,并上报给apiserver。

kube-proxy:负责实现pod网络代理,维护网络规则和四层负载均衡。

K8S创建Pod资源对象的工作流程:

用户通过客户端发送创建pod请求给apiserver,apiserver接收到请求并进行认证后,将请求信息存储到etcd中;contorller-manager通过list-watch监听到apiserver的指令后,根据请求信息中的资料模板配置创建pod资源(这里是个抽象的pod);scheduler也通过list-watch监听到api-server的指令,调度新创建的pod,根据调度算法(预选优选策略)选出最合适的node节点部署pod,node节点上的kubelet也通过list-watch监听api-server的指令,会在指定node的节点上创建pod,并管理容器的生命周期;用户还可以用过apiserver在kube-proxy上配置网络规则,实现网络代理和负载均衡。

K8S资源对象

Pod:是K8S能够创建和管理的最小单元。一个Pod里可以包含一个或多个应用容器,同一个Pod里的容器之间共享网络、存储等资源(容器之间可以通过localhost相互访问,还可以共享Pod的存储卷)

Pod控制器:

  1. deployment:部署无状态应用(没有实时数据需要存储);同时也负责管理replicaset(维持Pod副本数量始终符合预期状态)和Pod(容器化的应用程序)
  2. statefulset:部署有状态应用(有实时数据需要存储)
  3. daemonset:在每个node节点上都部署一个Pod副本
  4. job:一次性的部署短期任务的Pod(执行完任务后会自动退出)
  5. cronjob:周期性的部署短期任务的Pod(执行完任务后会自动退出)

service:在K8S集群内部,为通过标签选择器相关联的一组Pod提供一个统一的访问(clusterIP)和负载均衡(只支持四层)

service 通过标签选择器关联Pod的标签,从而自动发现相关联Pod的端点(Pod的IP和端口)

ingress:作为K8S集群外部的访问入口,可定义ingress规则根据不同的域名或URL路径绑定并转发请求给指定的service,支持七层负载均衡

volume:Pod中容器可以访问的文件系统

k8s集群外部访问的过程:

集群外部访问需要用ingress作为集群外部入口访问入口,ingress根据不同的域名或者url路径绑定不同的servers,根据外部的路径,转发给相应的servers,再通过servers想关联的pod进行转发。

相关推荐
亚空间仓鼠4 小时前
Docker容器化高可用架构部署方案(六)
docker·容器·架构
前端老曹5 小时前
Docker 从入门到放弃:完整指南
运维·docker·容器
Cat_Rocky5 小时前
k8s-持久化存储,粗浅学习
java·学习·kubernetes
咖啡里的茶i6 小时前
在Docker环境中安装Hadoop cluster 实验报告一
hadoop·docker·容器
汪汪大队u6 小时前
续:从 Docker Compose 到 Kubernetes(2)—— 服务优化与排错
网络·后端·物联网·struts·容器
ILL11IIL7 小时前
k8s的pod管理及优化
云原生·容器·kubernetes
笑洋仟8 小时前
docker的overlay2目录占用磁盘空间很大,清理办法
运维·docker·容器
倔强的胖蚂蚁8 小时前
主流大模型使用指南:Gemma/Llama 全流程
云原生·llama
木雷坞8 小时前
2026 年 5 月国内可用 Docker 镜像源列表与配置方法
运维·docker·容器
埃菲尔铁桶11 小时前
踩坑一周|OpenSandbox + AI Agent 冷启动从 2 分钟降到 1 秒,我们做了这些事
kubernetes