k8s权威指南:核心概念与组件解析
版权申诉
5星 · 超过95%的资源 91 浏览量
更新于2024-07-08
收藏 5.54MB DOCX 举报
"《k8s权威指南第五版》读书笔记详细解读了Kubernetes的核心概念、组件、架构以及标签(label)的应用"
Kubernetes(简称k8s)是目前广泛使用的开源容器集群管理系统,旨在自动化容器的部署、扩展以及运行过程。它的设计目标是让应用程序的部署变得简单、灵活且可扩展。k8s由Google发起,现在由Cloud Native Computing Foundation (CNCF) 维护。
Kubernetes架构分为三个主要层次:核心层、应用层和管理层。核心层包含k8s最基础的功能,如API服务器、etcd数据库和控制器,这些构成了k8s的基础服务。应用层关注的是如何部署和路由应用,这包括调度Pod到适当的工作节点并确保服务间的通信。管理层则处理策略管理、自动化管理和系统度量,如通过控制器进行故障检测、自动扩展和滚动更新。
核心组件包括:
1. Etcd:这是一个分布式键值存储系统,用于存储k8s集群的配置数据和状态信息。
2. Apiserver:作为k8s API的入口,apiserver处理所有的REST请求,执行操作并同步集群状态。
3. Controller Manager:监控并处理各种控制器,确保集群状态与期望状态一致,如ReplicationController、Node Controller等。
4. Scheduler:根据预设的调度策略,将Pod分配到合适的节点。
5. Kubelet:在每个节点上运行,负责管理Pod及容器的生命周期,同时管理Volume和网络。
6. Container Runtime:如Docker或CRI-O,负责容器镜像管理和Pod与容器的实际运行。
7. Kube-Proxy:实现Service的内部服务发现和负载均衡,通过iptables或ipvs规则。
Kubernetes中的Label是关键的组织和管理工具。Label是以键值对形式表示的元数据,用户可以自由定义来标记各种资源对象,如Nodes、Pods、Services和ReplicationControllers。Label的选择器允许用户基于特定条件筛选和操作资源。例如,可以使用Label进行细粒度的资源隔离,或者在部署策略中基于Label选择器来影响特定的Pod集合。Label可以在创建资源对象时设置,也可以在后期动态添加或修改,提供了极大的灵活性。
命名空间(Namespace)是k8s实现多租户的一种方式,它允许在一个共享的集群中为不同团队或项目划分资源边界。默认情况下,k8s会创建两个命名空间:default和kube-system,前者用于用户应用,后者用于系统组件和服务。
Service是k8s中定义网络路由和服务发现的关键组件。每个Service都会有一个虚拟IP(Cluster IP),所有指向Service的流量都会被kube-proxy转发到其后端Pod,并实现内部的负载均衡和会话保持。
《k8s权威指南第五版》读书笔记涵盖了k8s的基础概念、核心组件、架构设计以及关键的资源管理机制,对于理解k8s的工作原理和实际应用有着重要的指导意义。通过深入学习和实践,开发者和管理员可以更有效地利用k8s构建、管理和扩展云原生应用。
哈工大-凌梦
- 粉丝: 129
- 资源: 99
最新资源
- makoto-kokubo.github.io
- VideoPlayer2.0.zip
- 51单片机8位数码管显示
- ChileAirQualityProject:智利清洁航空网creada midte R que entrega herramientas para valuaryy and analizar la calidad del aire en
- myportfolio_backend:MERNStack中的一个社交网络项目
- 现代白色时尚客厅3D模型
- react-form-validation
- SearchInZipFiles:搜索包含在 zip 文件中的文件中的文本-开源
- 班前班后会议记录excel模版下载
- Capstone-APM-Tool
- java 订餐 Swing mysql
- medaront
- 使用 Matlab 进行 UR5 控制:读取当前机器人工具提示,移动到所需的姿势和方向-matlab开发
- 自动计算会计凭证excel模版下载
- cyglua-exp:lua.experiment
- PUG-Guild