• 初识k8s(基础概念加历史了解)(一)


            Kubernetes

           目录

    一,发展经历

    二,知识图谱

    三,组件说明

    =====================================================-==========================================

                  一,发展经历

                                (0.0)首先要说u一下:k8s一定是以后技术平台的标准!!!

    对于云计算来说,会有多种交互标准,目前市场上牛逼的,或者说具有代表性的

         IAAS(基础设施服务)阿里云
         PAAS(平台及服务)  新浪云
         SAAS(软件及服务)  office  365

         DAAS(数据及服务)  大数据(目前不是很火)

    为了能够解决容器集群化问题,衍生出现在这些平台服务,这里有一个名称:资源管理器

    资源管理器历史:

    1,最早是Apache  MESOS  分布式资源管理器框架,但是好景不长,2019-5           Twitter公司 把Apache  MESOS换成了Kubernetes   (一代巨头没落.......)

    2,docker  swarm  是docker容器衍生出,特点的很轻量,但是,对于实际企业来用的化,是不使用的,比如要做一个回滚,是很难很难做到的,简单来说,它使用很好,但是功能不多,逐渐慢慢退出历史舞台

    3,Kubernetes  的出现,完全碾压前两种,它的历史也很有意思:它是Google 推出的,google在10年前,就开始通过容器化来进行资源管理,叫“Borg”资源管理器。当时好多公司都想要它的资源管理器,但是,google公司财大气粗,不缺钱,不卖!google还限制从技术核心组织离职员工不允许外传资源管理器架构技术,随着docker容器流行,慢慢的,大家都开始研究容器集群化的方案,这个时候,google想让自己10来稳定的资源管理器成为主流,于是找了一批工程师,用GO 语言对Borg系统的翻译,从而产生了kubernetes,成为了当前的标准!!!

    kubernetes  特点

      轻量级:消耗资源小

      开源

      弹性伸缩

      负载均衡:采用了IPVS框架(传输层负载均衡)

    ==================================================================================================================

    知识图谱()

    k8s框架

    pod 知识图谱

    平滑更新

     

     上图解释(从里向外解释):每一个容器都是由一个镜像(Container login-image:v1)起来的,容器外面一层是POD(k8s里的概念),pod里面可以有一个或者多个容器,pod的特点:pod里面的容器都是运行在一台机器上,pod里面的互相网络有一个唯一的IP,每一个pod里面都会有一个Pause容器,会有一个固定的镜像,作用是把其他容器融合在一起,负责整个pod的健康检查。pod的上一层是RS(副本集)管理pod,在RS上一层是deployment(部署)

     k8s集群图谱

     

     k8s认证和授权

    客户端证书认证

     

    BearerToken认证方式

    ServiceAccount认证(pod  >  APIserver)

    主要包三个内容:namespace , token , ca  目录挂载的方式,挂载到pod的文件系统里

    授权

    ABAC

    WebHook

    RBAC

      RBAC是最好的选择,是基于角色(Role)的访问控制

     

    =================================================================================================================

    组件说明(对应上图)

    APISERVER:所有服务访问统一入口
    CrontrollerManager:维持副本期望数目
    Scheduler::负责介绍任务,选择合适的节点进行分配任务
    ETCD:键值对数据库  储存K8S集群所 有重要信息(持久化)
    Kubelet:直接跟容器引擎交互实现容器的生命周期管理
    Kube-proxy:负责写入规则至 IPTABLES、IPVS 实现服务映射访问的
    COREDNS(插件):可以为集群中的SVC创建一个域名IP的对应关系解析
    DASHBOARD:给 K8S 集群提供一个 B/S 结构访问体系
    INGRESS CONTROLLER:官方只能实现四层代理,INGRESS 可以实现七层代理
    FEDERATION:提供一个可以跨集群中心多K8S统一管理功能
    PROMETHEUS:(普罗米修斯):提供K8S集群的监控能力
    ELK:提供 K8S 集群日志统一分析介入平台

    ==============================================================================

    POD概念

        自主式Pod
        控制器管理的Pod

    statefuleert:稳定的持久化存储
           :稳定的网络标识
               有序部署3
               有序时所说和20 hnm
                               
    daemonset:确保全部node上运行一个pod副本。当有node加入集群时,会为他们新增加一个pod。
                       运行集群存储daemon,例如在每个node上运行
                       在每个node上运行日志收集daemon,例如fluentd node exporter
                       在每个node上运行监控daemon,例如prometheus  node  exporter


    Job  :  负责批处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个pod成功结束
    cron job  :在给定时间点只运行一次
                       周期性的在给定时间点运行


    k8s网络的通讯方式
    网络模型假定了所有POD都可以直接通过的扁平的网络空间中
    不同节点的docker容器之间相互打通,是比较难实现的

    同一个pod内的多个容器之间:lo  
    各pod之间的通讯:overlay network
    pod与service 之间的通讯:各节点的iptables规则

    Flannel:是一个网络规划服务,让集群中不同节点主机创建的容器都具有全集群唯一的虚拟ip地址。
    所以它能在这些ip地址之间建立一个覆盖网络(overlay network),现在基本用此方法


    ETCD与Flannel关系
    存储管理Flannel可分配的IP地址资源
    监控ETCD中每个pod的实际地址,并在内存中建立维护pod节点路由表

    没有处理不了的问题,只有不能处理的人
  • 相关阅读:
    linux性能监控三张图
    golang 之 defer(统计函数执行时间)
    golang之匿名函数
    php opcodes运行原理
    Mysql索引的类型
    字符串反转方法收集
    curl模拟请求常用参数
    windows10 使用gitblit搭建git服务器
    PHP程序员解决问题的能力
    mysql中union 查询
  • 原文地址:https://www.cnblogs.com/123456likun/p/13885524.html
Copyright © 2020-2023  润新知