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

K8s: Kubernetes

🧭 Kubernetes 是一个开源的 容器编排平台,用于自动化容器的部署、扩缩、负载均衡、健康检查和管理。

它的目标是:让大规模容器应用像自动驾驶一样运行。

假设你用 Docker 部署了 3 个服务实例,你可能会问:

  • 怎么自动重启挂掉的容器?
  • 怎么把用户请求分发到多个容器?
  • 怎么做到宕机自动拉起?资源不够时扩容?
  • 怎么更新应用不中断服务?

🧱 K8s 就是为了解决这些问题的!

文章目录

      • K8s

K8s

🌐 K8s 能做什么?

能力简介
部署管理一条 YAML 语句就能部署一个服务
服务发现与负载均衡自动创建 ClusterIP、Service 供内部调用
滚动更新无缝发布新版容器镜像,逐个替换,确保不中断
自我修复容器挂了会自动拉起来,Pod 异常会被替换
水平扩缩容根据 CPU/内存/自定义指标自动加减容器数量
配置与密钥管理使用 ConfigMap 和 Secret 管理配置、安全凭据

🔧 核心组件(简化版)

组件说明
Pod最小的部署单元,通常一个 Pod 包含一个容器
Service为 Pod 提供稳定的网络入口和负载均衡能力
Deployment控制 Pod 的副本数、升级、回滚等
ReplicaSetDeployment 底层控制器,负责副本数量
Node工作节点,运行容器的实际机器(物理或虚拟)
Kubelet每个 Node 上的 agent,负责启动/管理 Pod
Controller Manager / Scheduler / API Server控制中枢

🎬 操作流程:

  • 编写 Deployment 的 YAML 文件(定义镜像、端口、副本数)
  • kubectl apply -f xxx.yaml 部署
  • Kubernetes 创建 Pod,并确保它们始终运行
  • 可通过 Service 访问你的服务

🧪 示例 YAML

  • Deployment:定义你的后端服务运行镜像、端口、副本数
apiVersion: apps/v1		# 指定使用的 API 版本,apps/v1 是当前推荐的 Deployment 所属版本
kind: Deployment		# 声明这个资源是一个 Deployment(部署控制器)
metadata:				# 元数据部分,主要用于标识这个 Deployment 的名称name: my-backend		# 【Deployment 的名称,可以用于 kubectl 操作】,比如 kubectl get deployment my-backend
spec:					# Deployment 的核心配置 ( Specification 规格,说明)replicas: 3			# 期望运行的 Pod 【副本】数量,也就是部署 3 个后端服务实例selector:				# 选择器,用于匹配哪些 Pod 属于这个 Deployment 【控制的范围】matchLabels:app: my-backend	# 和下面 template.metadata.labels 对应,用来选出正确的 Podtemplate:				# 【Pod】 的模板,定义了 Pod 应该怎么创建metadata:labels:app: my-backend # 这个 label 会打到每个 Pod 上,供 selector 匹配spec:containers:- name: backend	# 容器名称(自定义),便于日志、调试等引用image: mycompany/my-backend:v1  # 容器镜像,通常是你构建好的后端服务镜像ports:- containerPort: 8080  			# 容器监听的端口(应用服务端口),供 Service 转发使用
  • Service:对外暴露这个服务,让别人能访问 8080 端口
apiVersion: v1
kind: Service
metadata:name: my-backend-service
spec:selector:app: my-backendports:- port: 80            # Service 对外暴露的端口targetPort: 8080    # 实际 Pod 的端口type: ClusterIP       # 集群内部访问
Service 类型特点使用场景
ClusterIP默认类型,仅集群内部访问服务间调用
NodePort在每个 Node 上开放端口访问简单测试
LoadBalancer云环境中通过云负载均衡器访问线上发布
ExternalName通过 DNS 别名指向外部服务引用外部
http://www.dtcms.com/a/259993.html

相关文章:

  • 权威认证!华宇TAS应用中间件荣获CCRC“中间件产品安全认证”
  • Beam2.61.0版本消费kafka重复问题排查
  • SQL SERVER存储过程
  • SQL重置自增
  • Solidity学习 - 认识Solidity合约结构
  • Windows命令连接符的安全风险分析与防御策略
  • [附源码+数据库+毕业论文+开题报告]基于Spring+MyBatis+MySQL+Maven+jsp实现的宠物领养管理系统,推荐!
  • 无人机关键算法分析 ( MPU6050 ,PID,滤波,四元数,欧拉角,IMU 姿态解算)
  • vue3中使用vue-grid-layout来实现可拖动的仪表盘面板
  • 深度学习在智能物流中的创新应用与未来趋势
  • 在统信UOS(Linux)中构建SQLite3桌面应用笔记
  • C++之string类的实现代码及其详解(上)
  • 0 数学习题本
  • 【stm32】HAL库开发——Cube配置基本定时器
  • Llama 3 + Qwen2双模型实战:单张3090构建企业级多模态知识库(2025精解版)
  • 关于 ARM64 汇编:调用流程与栈帧结构解析
  • Jenkins与Kubernetes深度整合实践
  • GitLab 18.1 高级 SAST 已支持 PHP,可升级体验!
  • OSPF 路由协议详细笔记
  • Python-7-读取/写入文件数据
  • mb_bootloop_le.elf是使用microblaze默认的elf文件,这个文件包括哪些内容?
  • n8n智能体新境界:MCP服务器简化复杂自动化
  • Apache 支持 HTTPS
  • 系统性能优化-6 TCP 三次握手
  • easyExcel导入多sheet的Excel,存在合并单元格、列不固定的情况
  • 自动获取文件的内存大小怎么设置?批量获取文件名和内存大小到Excel中的方法
  • notepad++ 怎么快速给 python (nginx、shell) 文件加 # 注释
  • 远程玩3A大作要多少帧?ToDesk、向日葵、UU远程性能对决
  • 从零搭建高效本地代理池:设计与实现
  • Ubuntu中控制用户cpu资源分配控制步骤