zoukankan      html  css  js  c++  java
  • Kubernetes核心组件

    Kubernetes核心组件

    一个Kubernetes集群由控制节点Master服务节点Node以及存储节点etcd组成。


    1. Master节点

    Master节点主要负责响应client的Restful API请求,整个集群状态的管理,以及读写etcd。Master节点主要运行以下进程:kube-apiserver,kube-scheduler和kube-controller-manager。


    1.1 kube-apiserver

    1. kube-apiserver向client提供集群管理的 REST API 接口。
    2. 提供其他模块之间的数据交互和通信的枢纽(其他模块通过 API Server 查询或修改数据,只有 API Server 才直接操作 etcd)。

    1.2 kube-scheduler

    kube-scheduler 负责分配调度 Pod 到集群内的节点上。它监听 kube-apiserver,查询还未分配 Node 的 Pod,然后根据调度策略为这些 Pod 分配节点(更新 Pod 的 NodeName 字段)


    1.3 kube-controller-manager

    kube-controller-manager 由一系列的控制器组成,包括Replication Controller,Job Controller,Deployment Controller,Daemon Controller等等。

    kube-controller-manager 是 Kubernetes 的大脑,它通过 apiserver 监控整个集群的状态,并确保集群处于预期的工作状态。


    2. Node节点

    在Kubernetes集群的服务节点上,主要运行以下进程:Doker,kubelet和kube-proxy。


    2.1 kubelet

    每个节点上都运行一个 kubelet 服务进程,默认监听 10250 端口,接收并执行 master 发来的指令,管理 Pod 及 Pod 中的容器。每个 kubelet 进程会在 API Server 上注册节点自身信息,定期向 master 节点汇报节点的资源使用情况,并通过 cAdvisor 监控节点和容器的资源。


    2.2 kube-proxy

    每台机器上都运行一个 kube-proxy 服务,主要用于service的服务发现和负载均衡。它监听 API server 中 service 和 endpoint 的变化情况,并通过 iptables 等来为服务配置负载均衡(仅支持 TCP 和 UDP)。

    kube-proxy 可以直接运行在物理机上,也可以以 static pod 或者 daemonset 的方式运行。


    3. etcd

    Etcd 是 CoreOS 基于 Raft 开发的分布式 key-value 存储,可用于服务发现、共享配置以及一致性保障(如数据库选主、分布式锁等)。

    etcd在Kubernetes集群中主要用于存储元数据,包括Node/pod/service/deployment等元数据信息都存储在etcd中。


    参考文章

  • 相关阅读:
    5道趣味Python热身题【新手必学】
    操作系统特征
    二叉树的中序遍历
    英语一图画作文模板
    函数
    双阶乘与华里士公式
    因式分解
    【】连通图——详细解释
    【】this指针——c++中的特殊指针
    咱们程序员好用的云笔记
  • 原文地址:https://www.cnblogs.com/cjwnb/p/13304086.html
Copyright © 2011-2022 走看看