玩转k8s(一)—— Kubernetes重要概念
创始人
2025-05-28 14:35:35

1. Cluster

        cluster是计算、存储和网络资源的集合,Kubernetes利用这些资源运行各种基于容器的应用。

2. Master

        Master是Cluster的大脑,它的主要职责是调度,即决定将应用放在哪里运行。 

3. Node

        Node的职责是运行容器应用。Node由Master管理,Node负责监控并汇报容器的状态,同时根据Master的要求管理容器的生命周期。 

4. Pod

        Pod是k8s最小的工作单元。每隔Pod包含一个或多个容器。Pod中的容器会作为一个整体被Master调度到一个Node上运行。 Pod可以运行单一容器也可以运行多个容器。

k8s引入pod的目的:

(1)可管理性

        有些容器天生就是需要紧密联系,一起工作。k8s可以以pod为最小单元进行调度、扩展、共享资源、管理生命周期。

(2)通信和资源共享

        Pod中所有容器使用同一网络namespace,即相同的IP地址和Port空间。它们可以直接用localhost通信。同样的,这些容器可以共享存储。

5.  Controller

        Kubernetes通常不会直接创建Pod,而是通过Controller来管理Pod。Controller中定义了Pod的部署特性,比如由几个副本,在什么样的Node上运行等。k8s提供了多种Controller,包括:Deployment、ReplicaSet、DaemonSet、StatefulSet、Job等。

(1)Deployment是最常用的Controller,Deployment可以管理Pod的多个副本,并确保Pod按照期望的状态运行。 

(2)ReplicaSet实现了Pod的多副本管理,使用Deployment时会自动创建ReplicaSet,也就是说Deployment是通过ReplicaSet来管理Pod的多个副本的,我们通常不需要直接使用ReplicaSet。

(3)DeamanSet用于每隔Node最多只运行一个Pod副本的场景。正如其名,DaemonSet通常用于运行daemon。

(4)StatefulSet能够保证Pod的每个副本在整个生命周期中名称是不变的,而其他的Controller不提供这个功能。而且StatefulSet会保证副本按固定顺序启动或删除。

(5)Job用于运行结束就删除的应用,而其他Controller中的pod通常是长期持续运行。

6.  Service

        Deployment可以部署多个副本,每个Pod都有自己的IP,外界如何访问这些副本呢?答案是通过Service。

        Kubernetes Service定义了外界访问一组特定Pod的方式。Service有自己的IP和端口,Service为Pod提供了负载均衡。

        k8s运行容器(Pod)和访问容器(Pod)分别由Controller和Service执行。

7. Namespace

        如果由多个用户或项目组使用同一个k8s Cluster,如何将它们创建的Controller、Pod等资源分开呢?答案是Namespace

        Namespace可以将一个物理的Cluster逻辑上划分成多个虚拟Cluster,每个Cluster就是一个Namespace。不同Namespace里的资源是完全隔离的。 

相关内容

热门资讯

证监会严肃查处长药控股严重财务... 经济观察网 近日,证监会对上市公司长江医药控股股份有限公司(简称*ST长药)涉嫌定期报告等财务数据存...
金正恩致电普京:朝鲜永远同俄罗... 转自:北京日报客户端据朝中社27日报道,朝鲜国务委员长金正恩当天向俄罗斯总统普京致贺电表示,在202...
11月外资品牌智能手机在华销量... (来源:财闻) 苹果iPhone是中国最主要的外资品牌智能手机。 ...
乌称“和平计划”接近完成 俄称... 当地时间26日,乌克兰总统泽连斯基表示,他预计将于28日在佛罗里达州与美国总统特朗普举行会晤,讨论对...
总有一个人,一直住在心底,却告... 1、总有很多东西无法挽留,比如走远的时光,比如枯萎的情感。 2、年少时都曾那样的执着,或因一件...