当前位置: 首页 > news >正文

K8S

K8S是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能

核心概念

    • Pod
      最小的部署单元,包含一个或多个共享资源的容器。在同一个 Pod 里的几个 Docker 服务/程序,好像被部署在同一台机器上,可以通过 localhost 互相访问,并且可以共用 Pod 里的存储资源

    • Deployment
      定义应用的副本数和更新策略,支持滚动升级和回滚。

    • Service
      为一组 Pod 提供固定的访问入口(IP/DNS)。

    • Namespace
      逻辑隔离集群资源(如开发、测试、生产环境)。

    • Node
      集群中的工作节点(物理机或虚拟机),运行容器化应用。 

K8S 中所有的对象都通过 yaml 来表示

apiVersion: v1                         #ApiServer版本
kind: Deployment                  #资源类型(如 Deployment、Service、Pod)
metadata:                            # 资源的元数据(名称、标签等)name: memory-demo         #资源名称namespace: mem-example  #资源标签
spec:                                # 资源的具体规格(核心配置)containers:                    #定义 Pod 中的容器列表。- name: memory-demo-ctrimage: polinux/stressresources:                         #定义容器内存 CPU容量limits:memory: "200Mi"requests:memory: "100Mi"command: ["stress"]args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]volumeMounts:- name: redis-storagemountPath: /data/redisvolumes:- name: redis-storageemptyDir: {}
View Code

 YAML 文件核心字段解析

 
字段说明
apiVersion 资源所属的 API 组(如 v1apps/v1batch/v1)。
kind 资源类型(如 PodDeploymentService)。
metadata 资源的名称、标签、注解等元信息。
spec 记录了 Pod 内部所有的资源的详细信息
selector 用于关联其他资源(如 Service 选择 Pod)。
template 定义 Pod 的配置(用于 Deployment、StatefulSet 等)。
containers 容器列表,包含镜像、端口、环境变量等。
ports 容器或 Service 的端口配置。
env 设置容器的环境变量(可直接或从 ConfigMap/Secret 引用)。
 
 

K8S核心架构

image

 K8S是主从架构,Master Node负责核心调度、任务管理,Work Node负责执行用户程序

Master Node核心组件:

kube apiServer: 负责接收所有请求到K8S的请求,比如UI界面 CLI请求,然后API server根据请求,通知其他组件执行响应操作

etcd:K8S存储服务,etcd存储k8s关键配置、用户配置。所有etcd写入都需要通过apiserver

kube scheduler:K8S work node调度器,用户要进行部署时,scheduler选择合适的worknode来部署

Contronller manager:K8S work node的监控器。controller manager负责监控和调整在worknode部署服务的状态,比如用户要求 A 服务部署 2 个副本,那么当其中一个服务挂了的时候,Controller 会马上调整,让 Scheduler 再选择一个 Worker Node 重新部署服务

Work Node核心组件 

Kubelet: work Node监控器以及与Master Node通讯器,可以理解为MasterNode安装在workNode上的“眼线”,它定期向Master Node汇报WorkNode运行服务状态,并根据Master Node指令进行调整。Kubelet上报给msater自己资源的使用情况后,master的调度器Scheduler就能根据每台node机器的实际情况来给各个node分配任务了;

Kube proxy:K8S网络代理,kube-proxy负责work node在k8s网络通讯以及对外部网络流量的负载均衡

Container runtime:work node的运行环境,即安装了容器化所需的软件环境确保容器化程序能够跑起来,比如 Docker Engine运行环境。

 

参考: https://www.cnblogs.com/beatle-go/p/18301030

 

 

http://www.njgz.com.cn/news/347.html

相关文章:

  • Redis桌面管理工具Another-Redis-Desktop-Manager 1.3.7 安装全流程
  • 1
  • 创建【网络连接】的快捷方式
  • 线性代数
  • 12 MCP Servers的介绍
  • 500部迪士尼电影下载推荐_迪士尼动画大全列表必看网盘分享
  • 点分治
  • 华为荣耀手机还原主屏幕布局
  • ESP IDF引入外部资源文件
  • Day11 矩阵乘法 dp、*常系数齐次线性递推、*动态 dp
  • 亿邮相关漏洞总结
  • 使用DFU模式快速重装macOS15到macbook
  • 大模型的JSON之殇:从脆弱的API调用到稳健的未来
  • [20250727]数论基本概念、最大公约数
  • day05
  • 读心与芯:我们与机器人的无限未来06问题或方案
  • 使用Vue.js实现表单验证
  • HackerOne漏洞报告:AddTagToAssets操作中的IDOR漏洞分析
  • 2025.7 广大附中集训游记
  • Cursor 远程主机无法下载 Python 插件解决
  • 图灵奖和诺贝尔奖双料得主、AI教父Hinton教授国内首次演讲PPT全文实录
  • Chiplet封装技术全面介绍
  • HTTP响应处理的灵活设计(3844)
  • Hyperlane框架的高级特性深度解析:从零拷贝到宏系统的完美融合(8758)
  • 跨平台Web服务开发的新选择(3436)
  • 实时通信技术深度对比:WebSocket与SSE的最佳实践(8145)
  • 高并发处理的Rust实现方案(3116)
  • 现代Web服务器性能革命:我的Rust框架探索之旅(1806)
  • 内存使用效率的终极对决:零拷贝技术的实战应用(6686)
  • 从零开始构建高性能实时聊天系统:Hyperlane框架实战指南(1600)