一文读懂Kubernetes之 K8s 概述

目录

一、Kubernetes集群组件

(一)、控制平面组件(Control Plane Components)

1、kube-apiserver

2、etcd

3、kube-scheduler

4、kube-controller-manager

5、cloud-controller-manager(可选的)

(二)、节点组件

1、kubelet

2、kube-proxy(可选的)

3、容器运行时(Container runtime)

(三)、插件(Addons)

1、DNS

2、Web界面(Dashboard)

3、容器资源监控

4、集群层面日志

5、网络插件

二、Kubernetes核心资源对象

(一)、Namespace

(二)、Pod

(三)、Controller

(四)、Service

(五)、Ingress

(六)、标签(Label)


        Kubernetes是当前最热门的开源容器编排框架,其本质是一组服务器集群,通过在集群节点上运行特定的组件程序,来对节点中的容器进行进行声明式配置和自动化管理。主要提供了自动故障修复、服务副本弹性伸缩、请求负载均衡、版本回退等功能。

        本文主要介绍了Kubernetes集群中的核心集群组件以及核心资源对象。

一、Kubernetes集群组件

        

        Kubernetes集群由控制平面和一个或多个工作节点组成。在控制平面和工作节点上,分布着不同的集群组件,各司其职共同支撑集群地运转。

(一)、控制平面组件(Control Plane Components)

       

        控制平面组件用于管理Kubernetes集群的整体状态,为集群做出全局决策,比如资源调度以及检测和响应集群事件等。控制平面组件可以运行在集群的任意节点中,然而为了方便管理与维护,通常将控制平面组件部署在同一个节点上,可称为控制节点。

1、kube-apiserver

        Kubernetes API服务器是控制平面的前端,该组件负责公开了Kubernetes API,负责处理接受请求的工作。Kubernetes API服务器的主要实现是kube-apiserver组件。

2、etcd

        etcd组件是一个一致且高可用的键值存储系统,用作Kubernetes集群中各种资源对象数据存储的后台数据库。

3、kube-scheduler

        kube-scheduler组件负责将新创建的或者未指定工作节点的Pod,按照预定的策略,将其调度至相应的工作节点运行。

4、kube-controller-manager

        kube-controller-manager组件负责运行控制器进程。从逻辑上讲,每个控制器都是一个单独的进程,但是为了降低复杂性,它们都在同一个进程中运行。控制器有不同的类型,例如:

  • Node 控制器:负责在节点出现故障时进行通知和响应。
  • Job 控制器:监测代表一次性任务的Job对象,然后创建Pod来运行这些任务直至完成。
  • EndpointSlice控制器:填充EndpointSlice对象(以提供Service和Pod之间的链接)。
  • ServiceAccount控制器:为新的命名空间创建默认的ServiceAccount。

5、cloud-controller-manager(可选的)

        cloud-controller-manager组件允许将你的Kubernetes集群连接到云提供商的API,并将与该云平台交互的组件和你的Kubernetes集群交互的组件分离开来。如果你的Kubernetes集群仅仅运行在独立的环境中,则不需要部署cloud-controller-manager组件。

(二)、节点组件

        

        运行节点组件的节

Kubernetes (k8s)是一种用于自动化应用程序部署、扩展和管理的开源容器编排平台。在k8s中,Pod是最小的可调度和可管理的单位,也是应用程序的运行实例。 Pod是一组共享资源的容器集合,它们运行在同一个节点上,并共享相同的网络命名空间和存储卷。一个Pod通常包含一个或多个紧密相关的容器,它们共享相同的生命周期和资源。这些容器之间可以通过本地主机上的localhost进行通信。 Pod的设计理念是将一组密切相关的容器放在同一个Pod中,以便它们能够轻松地共享资源,包括存储和网络。Pod可以在Kubernetes上进行水平扩展,即通过增加Pod的数量来增加应用程序的容量和吞吐量。 Pod是临时的和短暂的,它可以在任何时候被创建、销毁或重新创建。这个设计使得应用程序变得弹性和可伸缩,并支持故障恢复。当Pod被销毁时,Kubernetes会自动重新创建一个新的Pod来替代它,以保持应用程序的可用性。 Pod具有唯一的IP地址,并且可以由其他Pod或外部网络访问。它还可以指定一些元数据(如标签和注释),以方便按需选择和管理Pod。通过使用Pod模板,可以定义Pod的规范,包括容器映像、资源要求和环境变量等。 总之,Pod是Kubernetes中的基本概念,它是一组紧密相关的容器的运行实例。Pod提供了容器之间共享资源的环境,并支持弹性扩展和故障恢复。通过使用Pod,我们可以更高效地管理和部署我们的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野熊佩骑

您的鼓励是我持续创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值