干货满满,从一个案例学习k8s基本架构

本文从一个实战案例出发,详细解析Kubernetes(K8S)的基本架构,包括K8S组件的功能与职责,如kube-apiserver、kube-scheduler和kubelet等。通过创建和分析Deployment,理解Pod的生命周期管理和Service的工作原理,帮助读者掌握K8S集群的运作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

Kubernetes(简称K8S,K和S之间有8个字母)是用于自动部署,扩展和管理容器化应用程序的开源系统。它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。Kubernetes 源自Google15年的生产环境的运维经验,同时凝聚了社区的最佳创意和实践。

一、基础组件

在服务器我已经使用kubadm搭建的k8s集群(若想深入学习,一定先搭建一套k8s集群哦),一主(master)一从(slave)。系统创建的Pod都在namespace为kube-system中,我们可以看到k8s集群的都有以下的主要组件:

干货满满,从一个案例学习k8s基本架构

 

master和slave的组件分配如下图

干货满满,从一个案例学习k8s基本架构

 

1、master的k8s主要组件

kube-apiserver 客户端组件通过kube-apiserver管理cluster各种资源,kube-apiserver提供了HTTP/HTTPS RESTful API,例如kubectl就算是一个客户端

kube-controller-manager 管理cluster的资源,kube-controller-manager由多种controller组成,包括replication controller、namespacecontroller等。 不同的controller管理不同的资源,replication controller管理Deployment、StatefulSet、DaemonSet的生命周期;namespacecontroller管理Namespace资源

kube-schedule 负责决定哪个Pod在哪个机器上运行。Scheduler在调度时会充分考虑Cluster的拓扑结构,当前各个节点的负载,以及应用对高可用、性能、数据亲和性的需求

etcd 是一个数据库,保存集群的配置信息和各种资源的状态信息。例如,kubectl get pod信息就是从etcd数据库获取的

weave-net Pod间总是要通信的,weave是Pod的网络的其中一个方案

2、slave的k8s主要组件

kube-proxy

service在逻辑上代表了后端的多个Pod,外界通过service访问Pod。service接收到的请求是如何转发到Pod的呢?这就是kube-proxy要完成的工作。每个Node都会运行kube-proxy服务,它负责将访问service的TCP/UPD数据流转发到后端的容器。如果有多个副本,kube-proxy会实现负载均衡。从图中可以看到master也有kube-proxy,这是因为master也可以作为一个slave来使用。

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

二、从案例学习k8s整个框架

我们先部署一个案例来看一下k8s组件具体是怎么交互的。

kuber

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值