• k8s——1.k8s介绍


    一、发展经历(为什么要有k8s,k8s又怎样的特点)

    IAAS :基础设施服务  ——代表厂商:阿里云

    PAAS:平台级服务——代表厂商:新浪云 ,docker是PAAS运行的下一代标准,但是也带来了更大的问题,这就诞生了资源管理器,例如k8s

    SAAS:软件设施服务——代表厂商:office365

     
    k8s是用来进行容器化应用部署,是谷歌开源的容器化集群管理系统,利于应用扩展,k8s目标是让部署容器化应用更加简洁和高效

    kubernetes ,go语言编写出来的,特点:

    1.轻量级:意思消耗的资源少

    2.开源

    3.弹性伸缩

    4.负载均衡:kubernetes 结构内部已经实现了模块之间的负载均衡,且采用可IPVS框架,也叫服务发现

    5.自动装箱

    6.自我修复

    7.水平扩展

    8.滚动更新

    9.版本回退

    10.密钥与配置管理

    11.存储编排

    12.批处理

    二、知识图谱

    1.①K8S组件说明(也就是kubernetes 框架):

    Borg组件说明
    
    K8S结构说明:网络结构,组件结构

    ②K8S中一些关键字解释

    2.基础概念(什么是pod,以及控制器类型,网络通讯模式)

    ①pod概念,在kubernetes 里它是最小的封装集合,一个pod里会封装多个容器,达到一个子节点的运行环境,是kubernetes 里管理的最小单位

    自主式pod

    管理器管理的pod

    服务发现

    pod协同

    ②网络通讯模式

    网络通讯模式说明

    组件通讯模式说明

    3.kubernetes 安装(构建一个kubernetes 集群)

    4.资源清单:什么是资源,名称空间级别的资源,集群级别的资源

    yam语法格式

    通过资源清单编写pod

    pod的生命周期(重点+难点)

    5.pod控制器

    需要掌握各种控制器的特点以及使用定义方式(很重要)

    6.服务发现

    service原理

    需要掌握SVC原理,及其构建方式

    7.存储

    需要掌握多种存储类型的特点,并且能够在不同环境中选择合适的存储方案(需要有自己的见解)

    8.调度器

    需要掌握调度器原理,能够根据要求把pod定义到想要的节点运行

    9.集群安全机制

    需要掌握集群的认证,鉴权,访问控制 原理及其流程

    10.HELM  :linux yum 

    需要掌握HELM原理,HELM模板自定义,通过HELM去部署一些常用插件

    11.运维

    需要能够修改kubeadm,能够构建高可用的kubernetes 集群

    三、组件说明

    Borg架构

    几种访问方式:

    ①web browsers:访问方式:浏览器

    ②command-line tools :命令行

    ③borgcfg:文件的读取

    BorgMaster:专门负责请求分发的,理解为集群的大脑,为了防止BorgMaster由于单节点故障,所以这有很多副本,并且最好保持在3个以上或者3个以上的奇数

    Borglet:真正工作的节点

    scheduler:调度器,通过调度器去分发到各个节点,scheduler不是直接和Borglet进行交互,而是scheduler把数据写入至Paxos(键值对类型数据库),Borglet会实时的在Paxos数据库进行监听,如果发现有某个节点的请求了,

    那么会把这个请求取出来,然后去处理这次任务

     k8s集群架构组件

    Master(主控节点:主要做管理操作的)和node(工作节点)

    K8S架构图:

    etcd:键值对数据库,存储k8s所有重要信息(持久化的),官方将它定位成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运转,保存分布式集群需要持久化的配置文件,一旦集群死亡,可以借助etcd里面的信息,进行数据恢复

    但是etcd有两个版本:V2和V3

    etcd内部架构图:

    replication controller (简称rc) :控制器,维护副本的数目,想要容器运行几个副本,就是由它控制的

    api server:所有服务的访问的入口(每个组件可以在本地申请一定的缓存, 为了减轻api server压力)

    kubectl:是命令行管理工具

    scheduler:负责介绍任务,选择合适的节点进行分配任务,是把任务交给api server,api server再把请求写入etcd(相当于Paxos,也是键值对数据库),意味着scheduler不会和etcd进行直接的交互

    上面是master节点的一些信息,下面是node节点

    node:node节点中需要安装三个软件,kubelet,kube proxy ,docker

    kubelet:直接跟容器引擎交互实现容器的生命周期管理,会和docker产生交互,操作docker去创建对应的容器,也就是kubelet会去维持pod生命周期

    kube proxy:负责写入规则至IPTABLES,IPVS,实现服务映射访问,可以维持pod与pod之间的访问,包括负载均衡,kube proxy默认操作对象是操作防火墙,去实现pod的映射

    COREDNS:可以为集群中的SVC创建一个域名IP对应关系解析

    DASHBOARD:给k8s集群提供一个B/S结构访问体系

    INGRESS CONTROLLER:k8s集群官方只能实现4层代理,它可以实现7层代理

    FEDETATION:提供一个跨集群中心多k8s统一管理的功能

    Prometheus:提供一个k8s集群的监控能力

    ELK:提供k8s集群日志统一分析介入平台

    总结:

     

  • 相关阅读:
    MySQL-第十四篇事务管理
    MySQL-第十三篇使用ResultSetMetaData分析结果集
    MySQL-第十二篇管理结果集
    MySQL-第十一篇JDBC典型用法
    MySQL-第十篇多表连接查询
    Java中List集合去除重复数据的方法1
    去除List集合中的重复值(四种好用的方法)(基本数据类型可用)
    去除list集合中重复项的几种方法
    Java中List集合去除重复数据的四种方法
    Java中List集合去除重复数据的方法
  • 原文地址:https://www.cnblogs.com/zhaobobo001/p/15579628.html
Copyright © 2020-2023  润新知