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关键组件与结构组成的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 配置Kubernetes外网访问集群

    查询 Service 关于 Service,读者可以查看官方文档的资料:https://kubernetes.io/zh/docs/concepts/services-networking/service/ Service 是 k8s 中为多个 pod 公开网络服务的抽象方法.在 k8s 中,每个 pod 都有自己的 ip 地址,而且 Service 可以为一组 pod 提供相同的 DNS ,使得多个 pod 之间可以相互通讯,k8s 可以在这些 pod 之间进行负载均衡. 查询 pod: ku

  • kubernetes中的namespace、node、pod介绍

    namepace.node.pod? 当我们讨论 k8s 时总是会讨论集群,k8s 中的每个集群由多个机器/虚拟机组成,集群也被称为 命名空间(namespace),命名空间是虚拟的,因此也叫虚拟集群. Namespace 是对一组资源和对象的抽象集合. node 是集群中的单个机器/虚拟机,node 有两种,一种是 master ,一种是 worker.master 用来运行 kubernetes 服务,例如 API Server:worker 是真正工作的节点,用来运行你的容器. maste

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

    Introduction basic of kubernetes 我们要学习 Kubernetes,就有首先了解 Kubernetes 的技术范围.基础理论知识库等,要学习 Kubernetes,肯定要有入门过程,在这个过程中,学习要从易到难,先从基础学习. 那么 Kubernetes 的入门基础内容(表示学习一门技术前先了解这门技术)包括哪些? 根据 Linux 开源基金会的认证考试,可以确认要了解 Kubernetes ,需要达成以下学习目标: Discuss Kubernetes. Lea

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

    目录 命令行工具 通过软件仓库安装 二进制文件下载安装 ubutu & centos 快速安装 创建 kubernetes 集群 1,创建 Master 2,然后初始化集群网络. 3,加入集群 清除环境 命令行工具 主要有三个工具,命令行工具使用 kube 前缀命名. kubeadm:用来初始化集群的指令. kubelet:在集群中的每个节点上用来启动 Pod 和容器等. kubectl:用来与集群通信的命令行工具. 通过软件仓库安装 方法 ① 此方法是通过 Google 的源下载安装工具包.

  • Kubernetes部署可视化地图的十个步骤

    目录 步骤 1 步骤 2 和 3 步骤 4 和 5 步骤 6 和 7 步骤 8.9 和 10 理解 Kubernetes 的部署 通过查看创建一个吊舱或一个部署时的 10 个步骤,可以更好地了解 Kubernetes. 当你在 Kubernetes 上使用容器时,你经常把应用程序组合在一个吊舱pod中.当你把一个容器或一个吊舱发布到生产环境中时,它被称为一个部署deployment.如果你每天甚至每周都在使用 Kubernetes,你可能已经这样做过几百次了,但你有没有想过,当你创建一个吊舱或一

  • Minikube搭建Kubernetes集群

    Minikube 打开 https://github.com/kubernetes/minikube/releases/tag/v1.19.0 下载最新版本的二进制软件包(deb.rpm包),再使用 apt 或 yum 安装. 或者直接下载 minikube 最新版本二进制文件(推荐). curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.19.0/minikube-linu

  • Kubernetes集群的组成介绍

    Kubernetes集群的组成 我们谈起 Kubernetes 和应用部署时,往往会涉及到容器.节点.Pods 等概念,还有各种术语,令人眼花缭乱.为了更好地摸清 Kubernetes,下面我们将介绍 Kubernetes 中与应用程序部署(deployment)和执行(execution)相关的知识. Kubernetes 集群由多个组件(components).硬件(hardware).软件(software)组成,它们共同工作来管理容器化(containerized)应用的部署和执行,这些

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

    架构组成 我们可以看一下这两张图,所表示的都是关于 Kubernetes 集群的架构. 一个 kubernetes 集群是由一组被称为节点(Node)的机器或虚拟机组成,集群由 master.worker 节点组成,每个机器至少具有一个 worker 节点. Master 在前面两个图中,可以看到 Master 是由一组称为控制平面组件组成的,我们可以打开 /etc/kubernetes/manifests/ 目录,里面是 k8s 默认的控制平面组件. . ├── etcd.yaml ├── k

  • 对Netty组件的基本介绍

    Netty的介绍 netty是一个异步的基于事件的框架,主要针对在tcp协议下,开发面向clients端的高并发应用. netty本质是一个nio框架. IO模型 Java共支持3中io模型 : BIO,AIO,NIO BIO 同步阻塞,一个连接一个线程,有连接请求时服务端就需要启动一个线程处理.如果这个线程不做任何事就会造成不必要的开销.当并发数较大时,需要创建大量线程来处理连接. NIO 同步非阻塞,可以做到一个线程处理多个操作. NIO 有三大核心部分,Channel,Buffer ,se

  • React-Native之截图组件react-native-view-shot的介绍与使用小结

    目录 一.现象 二.解决 三.总结: 一.现象 1.需求:把某展示页面进行截取保存到相册.并可进行以海报的形式分享出去: 2.支持iOS和安卓 二.解决 1.安装: npm i --save react-native-view-shot 2.进行链接处理:react-native link react-native-view-shot 3.当为IOS时执行还需要执行一下命令(安卓不用):cd ios && pod install && cd .. 4.使用: (1).引用:

  • 企业级Kubernetes管理平台Wayne功能特性介绍

    目录 前言碎语 Wayne功能特性 架构设计 Kubernetes方式安装注意点 前言碎语 今天博主分享一个Kubernetes集全管理软件,也就是Kubernetes web ui.是360团队开源的一款产品,Wayne 是一个通用的.基于 Web 的 Kubernetes 多集群管理平台.通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本, 拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台.Wayne已大规模服务于360搜索,承载了内部绝大部分业

  • 云原生Kubernetes初始化容器Init使用介绍

    目录 一.基本介绍 使用 Init 容器的作用: 一.基本介绍 Kubernetes 中 Init 容器,也叫做初始化容器,是 K8s 官方为我们提供的一个 可以用来判断我们的环境是否已经满足运行 Pod 应用前所需要的条件. 比如,我们有一个应用是 Tomcat,但是需要向 ZooKeeper 中进行注册. 而恰好我们在运行 Tomcat 时,ZooKeeper 出现了故障,从而导致我们的 Tomcat 因为注册不上数据而导致系统报错. 但是当我们给 Tomcat 配置上 Init 容器后,效

  • React过渡动画组件基础使用介绍

    目录 1. 基础使用 2. 将animate.css集成到csstranistion中 3. 列表过渡 4. switchTransition动画 5. 路由切换过渡 6. 高阶组件实现路由切换过渡 1. 基础使用 介绍: 在项目中可能会给一些组件的显示或隐藏添加某种过渡动画,这样可以很好的增加用户的使用体验, react-transition-group 是 react 的第三方模块,借助这个模块可以实现动画切换效果. 安装: yarn add react-transition-group 使

  • Spring Cloud Stream消息驱动组件使用方法介绍

    目录 1.Stream解决的痛点问题 2.Stream重要概念 3.传统MQ模型与Stream消息驱动模型 4.Stream消息通信方式及编程模型 4.1.Stream消息通信方式 4.2.Stream编程注解 4.3.Stream消息驱动之开发生产者端 4.4.Stream消息驱动之开发消费者端 5.Stream高级之自定义消息通道 6.Stream高级之消息分组 MQ:消息队列/消息中间件/消息代理,产品有很多,ActiveMQ RabbitMQ RocketMQ Kafka 1.Strea

  • React路由渲染方式与withRouter高阶组件及自定义导航组件应用详细介绍

    目录 1. 路由的三种渲染方式 1.1 component渲染方式 1.2 render方式渲染 1.3 案例-登录成功才能访问某个页面 1.4 children方式渲染 2. withRouter高阶组件 3. 自定义导航组件 1. 路由的三种渲染方式 1.1 component渲染方式 描述: 这种渲染方式有两种,一种是类方式渲染,一种是函数方式渲染. 语法: <Route path="/home" component={Home} /> 或 <Route pat

随机推荐