zoukankan      html  css  js  c++  java
  • 浅入Kubernetes(9):了解组件

    本篇主要介绍 Kubernetes 中的架构组成,在前面我们已经学习到了 kubeadm、kubectl,这两个命令行工具是 k8s 组成之一。而前面在搭建集群时,也学到了 master、worker 节点;第一篇第二篇中也提前介绍了一些 k8s 的概念,这篇将会对这些 k8s 中关键的组件或结构组成进行讲述。

    架构组成

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

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

    ww1wo482ah07-Kubernetes_Architecture2

    【图来源:linux基金会官方k8s教程

    components-of-kubernetes

    【图来源:kubernetes官方文档

    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 服务的一部分。

    一个逗逗的大学生
  • 相关阅读:
    10 个非常有用的 AngularJS 框架
    15个最新加速 Web 开发的框架和工具
    最新13个加速 Web 开发的框架和工具
    7款个性化jQuery/HTML5地图插件
    19款绚丽实用的jQuery/CSS3侧边栏菜单
    7 个顶级的 HTML5 Canvas 动画赏析
    10款精美的web前端源码的特效
    10款web前端基于html5/CSS3应用特效
    8个强大的基于Bootstrap的CSS框架
    7款经典炫酷的HTML5/jQuery动画应用示例及源码
  • 原文地址:https://www.cnblogs.com/whuanle/p/14687965.html
Copyright © 2011-2022 走看看