Kubernetes学习总结 之基本概念扫盲篇

1 Kubernetes简介

在学习Kubernetes(K开头,后面有长达8个字母,简称k8s)之前,先了解一下他是什么。下面是来自AI的介绍。

Kubernetes(简称K8s)是一个开源的容器编排平台,由Google设计和开发,用于自动部署、扩展和管理容器化应用程序‌。Kubernetes的目标是使部署容器化的应用简单且高效,提供了一套完整的机制来规划、部署、更新和维护应用程序‌。

1.1 Kubernetes的历史背景

Kubernetes起源于Google的内部系统Borg,经过多年的测试和优化,于2014年6月6日首次发布。Kubernetes集成了Borg和Omega的优点,成为轻量级的容器编排工具。它的设计基于Google过去十数年间在容器管理方面的经验和教训‌。

1.2 Kubernetes的主要特性

  1. 可移植性‌:支持公有云、私有云、混合云和多重云环境。
  2. 可扩展性‌:模块化和插件化设计,支持自动伸缩和扩展。
  3. 自动化‌:自动部署、重启、复制和伸缩。
  4. 快速部署和扩展‌:能够快速部署和扩展应用程序。
  5. 无缝对接新功能‌:能够无缝集成新的应用功能。
  6. 资源优化‌:节省资源,优化硬件资源的使用‌。

1.3 Kubernetes的核心组件和基本概念

Kubernetes的核心组件包括:

  • Pod‌:基本调度单元,包含一个或多个容器,共享资源和网络。
  • Label‌:用于标识和管理容器和资源。
  • Controller‌:管理Pod和其他资源的自动化控制器。

这些组件共同工作,提供了一套完整的机制来部署、维护和扩展应用程序‌。

1.4 Kubernetes的应用场景和行业应用

Kubernetes广泛应用于各种场景,包括微服务架构、云原生应用、大规模容器部署等。它支持多种容器工具,如Docker,并且具有完整的监控系统和日志收集平台,能够实现故障自恢复‌4。

总之,Kubernetes是一个功能强大的开源容器编排平台,广泛应用于各种云环境和应用场景中,极大地简化了容器化应用的部署和管理。

2 k8s的主要概念及其之间的关系

2.1 集群

集群是Kubernetes的基本单位,由多个节点组成。这些节点可以是物理服务器或虚拟机,每个节点上都运行着Kubernetes平台。集群的主要功能是管理和调度容器化应用程序‌。集群是由Master和Node组成。

2.2 Master

k8s集群控制节点,对集群进行调度管理。主要包含四个组件。

  • API Service

集群统一入口,以restful风格的方式请求。数据存储在etcd中。

  • Scheduler

节点调度,选择node节点进行应用部署。

  • Controller MangerServer

处理集群中常规的后台工作任务。一般一个资源对应一个controller。

  • etcd

存储系统,用于保存集群中的相关数据。

2.3 Node

Node‌是Kubernetes集群中的一个工作节点,负责运行容器。每个Node都是一个物理或虚拟的机器,运行着Kubernetes的节点代理‌kubelet‌。Node的主要组件包括:

  • kubelet‌:负责启动、监控和维持容器的运行。
  • kube-proxy‌:提供网络代理和负载均衡功能。
  • 容器运行时‌:如Docker或containerd,负责容器的创建和运行‌。

2.4 Pod

Pod‌是Kubernetes中最小的部署单元,通常包含一个或多个容器,这些容器共享网络命名空间和存储资源。Pod的设计目的是为了确保容器的紧密耦合,使得它们可以作为一个整体进行管理。Pod具有短暂的生命周期,当一个Pod被重新部署时,会形成一个新的Pod‌。

2.5 Controller

主要作用的创建pod

  • 确保预期的pod副本数
  • 无状态部署、有状态部署
  • 确保所有的node运行同一个pod
  • 一次性任务和定时任务

2.6 Service

Service‌是Kubernetes中的一个抽象层,用于定义一组Pod的逻辑集合,提供稳定的访问入口。由于Pod的IP地址可能会频繁变化,Service通过标签选择器(Label Selector)来动态地关联到一组Pod,并提供一个固定的IP地址和端口号,使得外部流量可以通过Service访问到内部的Pod。Service还负责负载均衡和故障转移,确保服务的可用性‌。

2.7 Pod与Service的关系

2.8 资源对象属性

在Kubernetes中,资源对象(Resource Object)是管理和配置的基本单位。资源对象包括但不限于Node、Pod和Service。资源对象通常具有以下通用属性:

  • 版本信息‌:定义资源对象的API版本。
  • 类(Kind)‌:定义资源对象的类型。
  • 名称‌:资源的唯一标识符。
  • 标签(Label)‌:用于标识和选择资源对象。
  • 注解(Annotation)‌:用于存储额外的元数据‌4。

通过这些核心概念和资源对象的管理,Kubernetes能够有效地调度和部署容器化应用程序,确保高可用性和可扩展性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值