初识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节点路由表

没有处理不了的问题,只有不能处理的人
原文地址:https://www.cnblogs.com/123456likun/p/13885524.html