Kubernetes关键组件与结构组成介绍

 更新时间:2022年03月31日 11:31:59   作者:痴者工良  
这篇文章介绍了Kubernetes的关键组件与结构组成,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

架构组成

我们可以看一下这两张图,所表示的都是关于 Kubernetes 集群的架构。

一个 kubernetes 集群是由一组被称为节点(Node)的机器或虚拟机组成,集群由 master、worker 节点组成,每个机器至少具有一个 worker 节点。

Master

在前面两个图中,可以看到 Master 是由一组称为控制平面组件组成的,我们可以打开 /etc/kubernetes/manifests/ 目录,里面是 k8s 默认的控制平面组件。

.
├── etcd.yaml
├── kube-apiserver.yaml
├── kube-controller-manager.yaml
└── kube-scheduler.yaml

对于集群来说, etcd、apiserver、schedluer 是必不可少的,接下来了解一下这几个组件的作业和相关资料。

kube-apiserver

kube-apiserver 是 k8s 主要进程之一,apiserver 组件公开了 Kubernetes API ,apiserver 是 Kubernetes 控制面的前端。kubectl 具有控制集群的很强大的功能,正是 apiserver 提供了接口服务,kubectl 解析用户输入的指令后,向 apiserver 发起 HTTP 请求,再将结果反馈给用户。

其暴露的 endiont 端口是 6443,我们通过 kubeadm join ip:6443 ... 将节点加入集群,正是通过 apiserver 处理的。

etcd

etcd 是兼具一致性和高可用性的键值数据库,作为保存 Kubernetes 所有集群数据的后台数据库。kube-apiserver 的所有操作结果都会存储到 etcd 数据库中,etcd 主要存储 k8s 的状态、网络配置以及其它持久化数据,etcd 是使用 B+ 树实现的。

kube-scheduler

scheduler 负责监视新创建的 pod,并把 pod 分配到节点上。

kube-controller-manager

kube-controller-manager 中包含了多个控制器,它们都被编译到一个二进制文件中,但是启动后会产生不同的进程。这些控制器有:

  • 节点控制器(Node Controller)

    负责在节点出现故障时进行通知和响应

  • 任务控制器(Job controller)

    监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成

  • 端点控制器(Endpoints Controller)

    填充端点(Endpoints)对象(即加入 Service 与 Pod)

  • 服务帐户和令牌控制器(Service Account & Token Controllers)

    为新的命名空间创建默认帐户和 API 访问令牌

Worker

工作节点是真正干活的节点,每个工作节点上都运行着 kubelet、kube-proxy 两个 k8s 组件以及容器引擎。kube-apiserver 这些称为 控制平面组件,而 kubelet、kube-proxy 则称为 节点组件。

kubelet 与所有安装在节点上的底层容器引擎进行交互,它确保所需的容器都运行在 pod 中,如果我们直接使用 docker run 创建容器,kubelet 不会管理非 kubernetes 创建的容器。

kube-proxy 负责管理容器的网络连接,是集群中每个节点上运行的网络代理,也是我们之前学习到的 Service 服务的一部分。

到此这篇关于Kubernetes关键组件与结构组成的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • CKAD认证中部署k8s并配置Calico插件

    CKAD认证中部署k8s并配置Calico插件

    这篇文章介绍了CKAD认证中部署k8s并配置Calico插件的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Kubernetes kubectl中Pod创建流程源码解析

    Kubernetes kubectl中Pod创建流程源码解析

    这篇文章主要为大家介绍了Kubernetes kubectl中Pod创建流程源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • kubernetes中的namespace、node、pod介绍

    kubernetes中的namespace、node、pod介绍

    这篇文章介绍了kubernetes中的namespace、node、pod,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Kubernetes scheduler启动监控资源变化解析

    Kubernetes scheduler启动监控资源变化解析

    这篇文章主要为大家介绍了Kubernetes scheduler启动监控资源变化解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Kubernetes(K8S)容器集群管理环境完整部署详细教程-下篇

    Kubernetes(K8S)容器集群管理环境完整部署详细教程-下篇

    本系列文章主要介绍了Kubernetes(K8S)容器集群管理环境完整部署的详细教程,分为上中下三篇文章,此为中篇,主要讲解了K8S部署metrics-server插件,K8S部署集群dashboard插件,K8S部署集群coredns插件,K8S部署kube-state-metrics插件,K8S部署harbor私有仓库
    2022-01-01
  • kubernetes数据持久化StorageClass动态供给实现详解

    kubernetes数据持久化StorageClass动态供给实现详解

    这篇文章主要为大家介绍了kubernetes数据持久化StorageClass动态供给实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Kubernetes中Deployment的升级与回滚

    Kubernetes中Deployment的升级与回滚

    这篇文章介绍了Kubernetes中Deployment的升级与回滚 ,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Kubernetes(K8S)入门基础内容介绍

    Kubernetes(K8S)入门基础内容介绍

    这篇文章介绍了Kubernetes(K8S)的入门基础内容,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • KubeSphere接入外部Elasticsearch实战示例

    KubeSphere接入外部Elasticsearch实战示例

    这篇文章主要为大家介绍了KubeSphere接入外部Elasticsearch实战示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 使用kubeadm命令行工具创建kubernetes集群

    使用kubeadm命令行工具创建kubernetes集群

    这篇文章介绍了使用kubeadm命令行工具创建kubernetes集群的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03

最新评论