初始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进行转发。

相关推荐
阿里云云原生8 小时前
不改代码也能监控 AI Agent?揭秘 OBI 如何在内核层精准解析 GenAI 语义流量
云原生·agent
众人皆醒我独醉8 小时前
Pod 一直 Terminating,死活删不掉?三个凶手,每一个你都意想不到
面试·kubernetes
飞翔沫沫情10 小时前
K8s Alloy 采集 Pod 控制台日志
云原生·容器·kubernetes
潮起鲸落入海15 小时前
Kubernetes Metric Server, Quota and Limits
容器·kubernetes
梦想的颜色15 小时前
Docker 容器化本地部署 Claude Code 完整硬核教程|隔离沙盒 + 国产模型直连 + 持久化 Skill
运维·容器·ai 工程化·沙盒隔离·docker 本地部署·claude code硬核实战·国内国产模型接入
摇滚侠16 小时前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 19-25
java·云原生·kubernetes
渣渣盟16 小时前
Docker 运维常用命令手册(含扩容与实战)
运维·docker·容器
我叫张小白。18 小时前
一个微服务电商+社区项目(瓷韵app)的技术深度复盘
docker·微服务·云原生·架构
咕噜咕噜的猪大侠18 小时前
《K8s 核心知识梳理:Deployment 滚动更新、JobCronJob、DaemonSet 和 Service》
云原生·容器·kubernetes
虚心的百褶裙18 小时前
远程调用服务架构设计及zookeeper技术详解(下篇)
分布式·zookeeper·云原生