• K8S的组件梳理


    K8S:

    master组件:

    1. apiserver: 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;发往集群的所有rest操作命令的接入点,并负责接收、校验并响应所有的rest请求,是整个集群的网关。

    2.controller manager:负责维护集群的状态,控制器完成的功能主要包括生命周期功能和api业务逻辑,具体如下:

      生命周期功能:包括namespace创建和生命周期、event垃圾回收、pod终止相关的垃圾回收、级联垃圾回收及node垃圾回收等

      api业务逻辑:例如,由replicaset执行的pod扩展等。

    3.scheduler:负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上

    4.etcd(cluster state store):提供分布式键值数据存储,保存了整个集群的状态;可用于服务发现、共享配置以及一致性保障。

    node组件:

    1.kubelet :kubelet是运行于工作节点之上的守护进程,是node的核心代理程序,它从apiserver接收关于pod对象的配置信息并确保它们处于期望的状态(desired state,也是目标状态)。kubelet会在apiserver上注册当前工作节点,定期向master汇报节点资源使用情况,并通过cadvisor监控容器和节点的资源占用状况。

    2. container runtime(docker,rkt):每个node都要提供一个容器运行时环境,它负责下载镜像并运行容器。

    3.kube-proxy:负责为 Service 提供 cluster 内部的服务发现和负载均衡;它能够按需为service资源对象生成iptables或ipvs规则,从而捕获访问当前service的clusterip的流量并将其转发至正确的后端pod对象。

    额外插件add-ons:

    1.kubedns:在k8s集群中调度运行提供dns服务的pod,同一集群中的其他pod可使用此dns服务器解决主机名

    2.dashboard:kubernetes集群的全部功能都要基于web的UI来管理集群中的应用甚至是集群自身。

    3.prometheus: 新版本的k8s中,其功能会逐渐由prometheus结合其他组件所取代。

    4.ingress controller(nginx,envoy,haproxy):  service是一种工作于传统层的负载均衡器,而ingress是在应用层实现的http(s)负载均衡机制。

    一些额外的知识:

    1.资源清单yaml的定义:

       kind:Endpoints,deployment,service, deployment  ,StatefullSet, Job 等  https://blog.csdn.net/zhou164200/article/details/84590720

    2.容器仓库,容器的打包与下载

    3.网络模式:4种网络模式(bridge,host,none,container)  ,集群内部的路由SVC( service)

    4.存储:PV(分布式储存nfs),PVC,本地储存

    鸡肉是我的最爱!
  • 相关阅读:
    关于Oracle 数据库使用dba_tables或者all_tables或者user_tables统计数据时,与直接查询表统计时数据不一致的记录
    js格式化时间
    slf4j介绍以及与Log4j、Log4j2、LogBack整合方法
    LogBack日志小记
    log4j2 日志框架小记
    Log4j日志框架小记
    29.求数字组最大子序列之和
    28.找出最的几位数
    27.数组元素重复度过数组长度一半
    26.字符串全排列
  • 原文地址:https://www.cnblogs.com/laochiji/p/14510611.html
Copyright © 2020-2023  润新知