作者:翼动晴空
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
kubernetes基本框架和基本概念
- Kubernetes是什么?我(们)为什么使用?
- Kubernetes主要概念
- Kubernetes总体结构
- Kubernetes核心原理
- Kubernetes网络模型
Kubernetes是什么?我(们)为什么使用?
Kubernetes是Google(基于borg)开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下:
-
使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。
-
以集群的方式运行、管理跨机器的容器。
-
解决Docker跨机器容器之间的通讯问题。
-
Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。
为什么使用?
- 开发人员各司其职,轻装上阵(架构师负责服务组件提炼,开发工程师负责业务代码的开发,运维或系统公司师负责部署与运维)
- 全面拥抱微服务框架
- 使用Kubernetes我们系统可以随时的整体迁移
- Kubernetes系统具备了超强的横向扩容能力
Kubernetes概念
-
Master: 集群控制节点,master节点上运行着一组关键的进程
- Kubernetes API Server(kube-apiserver), 提供 HTTP Rest 接口的关键服务程序,kubernets里所有资源增、删、改、查等操作的唯一入口,也是集群控制的入口进程
- Kubernetes Controller Manager(kube-controller-manager),所有资源对象的自动化控制中心(资源对象的大总管)
- Kubernetes Scheduler(kube-scheduler),资源调度(pod)的进程(调度室)
- etcd Server,Kubernetes 里所有资源对象的数据全部是保持在etcd中
-
Node: Node是与Master而言的工作主机,可以使物理主机、VM等,运行Kubelet、kube-proxy和docker Engine
- kubelet: pod对应容器的创建、暂停等任务
- kube-proxy: k8s service 的通信与负载均衡机制的重要组件
- Docker Engine dokcer 引擎,本机容器的创建与管理
-
Pods:最小部署单元,可包含多个容器,是连接在一起的容器组合并共享文件卷。它们是最小的部署单元,由 Kubernetes 统一创建、调度、管理。Pods是可以直接创建的,但推荐的做法是使用 Replication Controller,即使是创建一个 Pod。
-
Labels: Label以key/value形式附加到Pos、Service、RC、Node等上面,每个对象可以定义多个label,以提供Label Selector来选择对象, Label Selector有两种形式:
- 基于等式,name=redis-slave选择k/v都相等的,env!=production选择k=env但是v!=production的
- 基于集合,name [not] in (redis-master,redis-slave),类似于SQL中in
-
Replication controllers: 管理 Pods 的生命周期。它们确保指定数量的 Pods 会一直运行,还有实现资源伸缩。
- 定义RC实现Pod的创建与副本数量的自动控制
- RC 通过Lable Selector机制实现对副本的自动控制
- 通过改变RC的Pod副本数量,实现Pod的扩容或缩容
- 通过改变RC里Pod模板中的镜像版本,实现Pod的滚动更新
-
Deployment: 1.2引入,为了更好地解决pod的编排问题,内部使用了Replica Set 实现;它相对于RC的最大的升级是可以随时知道当前Pod部署的进度
-
Horizontal Pod Autocaler(HPA): Pod横向自动扩容,通过追踪分析RC控制的所有目标Pod的负载变化情况,确定是否需要针对性地调整目标Pod的副本数
-
Services:抽象服务出口。它就像一个基础版本的负载均衡器。
-
Volume :Pod中能够被多个容器访问的共享目录,其生命周期与Pod相同跟容器无关。
- EmptyDir,Pod分配到Node时创建的,初始内容为空,Pod从Node中移除时EmptyDir数据永久删除。主要用于临时空间、CheckPoint临时保存目录等
- hostPath,在Pod上挂载宿主机上的文件或目录,主要用于需要永久保存的
- gcePersistentDisk,使用谷歌计算引擎上永久磁盘上的文件,写入数据永久保存。
- awsElasticBlockStore,使用Amazon提供的EBS Volume
- nfs,使用NFS(网络文件系统)提供的共享目录
- iscsi,使用iSCSI设备
- glusterfs,使用开源GlusterFS网络文件系统
- rbd,使用Linux块设备共享存储
- gitRepo,通过挂载一个空目录,从Git库clone一个> - git repository给Pod使用
- secret,一个secret volume用于为Pod提供加密的信息
- persistent Volume, "网络存储",独立于“计算资源”而存在的实体资源,可以看做一个与Kubernetes无关的网盘
-
Annotation:与Lable类似,也使用key/value 键值对的形式定义,不同于Lable定义Kubernetes的元数据,它是用户任意定义的附加信息,以便于外部工具进行查找
Kubernetes总体结构
Master组件:
- ApiServer:作为kubernetes系统的入口,封装了核心对象的增删改查操作。
- Scheduler:插件式的调度器,负责集群的资源调度,为新建的pod分配机器。
-
Controller:负责管理各种控制器。如- - ReplicationController,
EndPointController等。
Node组件:
- kubelet:负责管控docker容器,如启动/停止、监控运行状态等。
- proxy:负责为pod提供代理。它会定期从etcd获取所有的service,并根据service信息创建代理。
公共组件:
- Etcd
- flannel
相关推荐
内容涵盖了Kubernetes的基本概念、架构、工作原理以及在不同场景下的应用。从Pod的基本使用到Replication Controllers和Deployments的管理,从Service的设置到Kubernetes API的使用,以及高级特性如持久化存储、资源...
1. **基础入门**:这部分内容为读者搭建了Kubernetes的基础框架,介绍了Kubernetes集群的基本组成,如节点、控制器、Pod、Service等基本单元。同时,也讲解了如何安装和设置Kubernetes环境,以便于读者可以动手实践...
这本书不仅介绍了Kubernetes的基本概念,而且深入讲解了Kubernetes的架构原理,集群核心原理,并详细阐释了核心组件和部署配置。此外,它还涉及了插件扩展、服务治理、实践案例等高级话题,帮助读者全面掌握...
下面将详细阐述Kubernetes的基本概念、核心组件以及实际应用场景。 一、Kubernetes基本概念 1. **Pod**:Kubernetes的基本调度单元,可以包含一个或多个紧密相关的容器。Pod中的容器共享存储和网络资源,确保它们...
【Kubernetes 快速安装1】教程主要涵盖了Kubernetes(K8S)的基本概念、重要性及使用Kubernetes带来的优势。Kubernetes是一个基于容器技术的分布式架构解决方案,源自谷歌内部著名的集群管理系统Borg的开源版本。它...
使用Go-Kooper时,开发者需要对Kubernetes的基本概念有一定了解,例如Pods、Services、Deployments、CustomResourceDefinitions(CRDs)等。此外,对于Go语言的熟悉也是必不可少的,因为整个库是用Go语言编写的,所有...
- **学习曲线陡峭**: 对新手来说,Kubernetes的概念和配置可能较为复杂。 - **不提供全栈PaaS**: 不内置中间件、数据库或数据处理框架,需要用户自行配置。 - **资源消耗**: 集群运行需要额外的资源,可能会增加成本...
首先,Pod是Kubernetes的基本构建块,它是运行在集群中的容器化应用实例。Pod封装了一个或多个紧密相关的容器,这些容器共享存储和网络资源。Pod的状态被持久化存储在集群的ETCD数据库中,确保了即使Pod在不同节点间...
**Kubernetes 基本概念** 1. **Pod**:Kubernetes 的基本执行单元,可以包含一个或多个紧密相关的容器。Pods 提供了一个共享的网络命名空间和存储资源,使得容器之间可以相互通信并共享卷。 2. **Service**:定义...
根据给出的信息,可以推断出以下...以上知识点涵盖了Docker和Kubernetes的基本概念、它们在现代IT环境中的应用、以及与之相关的技术出版物和版权法律问题。掌握这些知识点对于理解当前软件开发和部署的趋势至关重要。
Kubernetes的基本概念包括Pod(最小的部署单位)、Service(定义应用的服务发现和负载均衡)、Volume(持久化数据存储)、Label和Selector(用于资源分组和选择)。Kubernetes 101和201分别针对初学者和进阶用户,...
3.2. Services Services也是Kubernetes的基本操作单元,是真实应用服务的抽象,每一个服务后面都有很多对应的容器来支持,通过Proxy的port和服务selector决定服务请求传递给后端提供服务的容器,对外表现为一个单一...
【Kubernetes介绍】 Kubernetes,通常简称为k8s,是一种开源的容器集群管理系统,源自Google的内部项目Borg。...理解并掌握这些核心概念对于成功地部署和运营基于Kubernetes的容器化应用至关重要。
Kubernetes 是一种开源的容器集群管理系统,源自 Google 的 Borg 系统,旨在简化和自动化容器化应用程序的部署、扩展和管理。...了解和掌握 Kubernetes 的这些核心概念和组件对于有效地利用云原生技术是非常重要的。
通过深入理解 Kubernetes 的核心概念、组件以及其在网络管理方面的实践,我们可以更好地利用 Kubernetes 来提高应用的可伸缩性和可用性。无论是对于开发人员还是运维工程师来说,掌握这些知识点都是至关重要的。
在Kubernetes系统中,有几个基本概念是需要理解的。首先是Pod,它是最小的部署单元,可以包含一个或多个容器。Kubernetes通过Pod来运行和管理这些容器,一个Pod通常对应于一个应用的实例。为了保证Pod的可用性,...
基本上,实现“无行动”的概念。 也是: 不可思议的云平台,无论是AWS (EKS)还是Azure (AKS),都是因为kubernetes的奇妙之处, 不了解应用程序技术框架,目前演示了完全相同的管道定义中发生的aspnetcore和...
2. Kubernetes的设计哲学和架构,包括核心概念如Pods、Services、Deployments等。 3. 分层方法如何应用于网络和Kubernetes的管理和优化。 4. 实际案例分析,展示分层方法在真实世界场景中的应用。 5. 教育和学习指南...
通过阅读这本书,读者不仅可以掌握 Kubernetes 的基本概念和技术,还能学习到如何在实际生产环境中有效地设计、部署和管理容器化应用。这份清晰版的指南无疑是深入学习 Kubernetes 的宝贵资料。
《分布式服务框架原理与实践》一书,结合作者李林锋的专业见解,深入探讨了这一领域的关键概念和技术。 分布式系统的概念始于对单一庞大系统进行拆分,通过将功能模块化并分布在网络的不同节点上运行,以实现更高效...