k8s架构、基本概念

k8s总架构:

Master节点:

(默认不参加工作)

 

kubectl:k8s是命令端,用来发送客户端的操作指令

 

k8s的原生组件:(部署k8s比必不可少的组件)

API server:是k8s集群的前端接口,各种客户端工具以及k8s的其他组件可以通过它管理k8s集群的各种资源,它提供了HTTP/HTTPS RESTful API,即k8s API

 

Scheduler:负责决定将Pod放在哪个Node上运行,在调度时,会充分考虑集群内的拓扑结构,当前各个节点的负载情况,以及对高可用、性能、数据和亲和性需求

 

Controller Manager:负责管理集群的各种资源,保证资源处于预期的状态,它由多种Controller组成,包括Replication Controller、Endpoints Controller、Namespace Controller、Serviceaccounts Controller等等

 

Etcd:负责保存k8s集群的配置信息和各种资源的状态信息,当数据发生变化时,etcd会快速的通知k8s相关组件。第三方组件,意味着它有可替换方案,比如:Consul、zookeeper

 

Pod:k8s集群的最小组成单位,一个Pod内,可以运行一个或多个容器,大多数情况下,一个Pod内只有一个Container容器

 

Flannel:是k8s集群网络解决方案,可以保证Pod的跨主机通信。第三方解决方案,也有替换方案

 

Node节点:

 

kubelet:它是Node的agent(代理),当Scheduler确定某个Node上运行Pod之后,会将Pod的具体配置信息发送给该节点的kubelet,kubelet会根据这些信息创建和运行容器,并向Master报告运行状态

 

kube-proxy:负责将访问service的TCP/UDP数据流转发到后端容器,如果有多个副本,kube-pory会实现负载均衡

 

 

运行一个例子:

//创建一个deployment资源对象。Pod控制器

[root@master ~]# kubectl  run  test-web  --image=httpd  --replicas=2

分析各个组件的作用以及架构流程:

  1. kubectl发送部署请求到API server
  2. API server通知Controller Manager创建一个Deployment资源
  3. Scheduler执行调度任务,将两个副本Pod分发到node01和node02上
  4. node1和node02上的kubelet在各个节点上创建并运行Pod

补充:

  1. 应用的配置和当前的状态信息报错在etcd中,执行kubectl get pod时API server会从etc中读取这

些数据

  1. flannel会为每个Pod分配一个IP,但此时没有创建Service资源,目前kube-pory还没有参与进来

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes(简称为K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。Kubernetes的基本概念架构如下: 1. 节点(Node):Kubernetes集群中的每台机器都被称为一个节点,它可以是物理机或虚拟机。 2. Pod:Pod是Kubernetes调度的最小单元,它是一个或多个容器的集合,这些容器共享网络和存储资源。 3. 控制器(Controller):控制器是Kubernetes的核心组件之一,用于管理Pod的创建、更新和删除。常用的控制器有ReplicaSet、Deployment、StatefulSet等。 4. 服务(Service):Service是Kubernetes中的网络抽象,用于将一组Pod暴露成一个单一的访问点。Service可以通过标签选择器选择一组Pod。 5. 存储(Storage):Kubernetes支持多种存储方式,包括本地存储、网络存储和云存储等。 6. API服务器(API Server):API服务器是Kubernetes的控制中心,所有的资源对象都通过API服务器进行创建、更新和删除。 7. etcd:etcd是Kubernetes的数据存储后端,用于存储所有的集群配置信息、状态信息和元数据。它是一个高可用的分布式键值存储系统。 8. 调度器(Scheduler):调度器是Kubernetes的另一个核心组件,用于将Pod调度到合适的节点上运行。 9. 容器运行时(Container Runtime):容器运行时是Kubernetes中用于运行容器的组件,常用的容器运行时有Docker、Containerd、CRI-O等。 10. 插件(Plugins):Kubernetes支持各种插件,用于扩展其功能,常用的插件有网络插件、存储插件、日志插件等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值