zoukankan      html  css  js  c++  java
  • K8S学习笔记一:K8S的基础概念

    一、K8S的历史

    K8S源自于goole的brog系统,采用GO语言开发,他的特点有:

    1、开源

    2、轻量级:消耗的资源少

    3、弹性伸缩:可以扩展或减少节点,平缓收缩,不需要重启服务器

    4、负载均衡:负载均衡采用的IPVS框架

    二、K8S前身,brog系统组件介绍

    三、K8S基础架构图

    api server:所有服务访问的统一入口

    CrontrollerManager:维持副本期望数目

    Scheduler:负责介绍任务,选择合适的节点进行分配任务

    ETCD:键值对数据库,储存K8S集群所有的重要信息(持久化)

    Kubelet:直接跟容器(docker)引擎交互实现容器的生命周期管理

    Kube-proxy:负责写入规则至IPTABLES、IPVS,实现服务映射访问

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

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

    INGRESS CONTROLLER:官方只能实现四层代理,INGRESS可以实现7层代理

    FEDERATION:提供一个可以跨集群中心多K8S统一管理功能

    PROMETHEUS:提供K8S集群的监控能力

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

    三、Pod的概念

    1、什么是pod

    pod分为自主式pod,和控制器管理的pod;

    1、pod只要有一个容器,就会自动生成一个pause容器,而pod里的其它容器没有自己的IP,他们共享pause的网络和存储卷,所以每一个pod里的容器端口不能重复

    控制器有多种:

    1、replicationController 简称RC:用来确保容器应有的副本数始终保持在用户定义的副本数,即有容器异常退出,会自动创建新的Pod来代替,如果有多余的容器,多出来的容器也会自动回收。

    2、ReplicaSet简称RS,和RC的功效相同,并且RS支持集合式的selector.新版本用RS代替RC。

    3、Deployment,用来自动管理RS的,deployment无需担心与其它机制不兼容的问题,并且可以实现滚动更新,并且可以实现回滚。deployment并不创建pod,是管理RS的,pod是RS创建的。

    4、HPA,仅使用与deployment 和RS,用来平滑扩展。HPA会监控资源利用率,当CPU大于80,就进行扩展,最小2个,最多10个,直到CPU小于80。同样,当CPU小于80,如果有多余的Pod,也会自动删除一些pod。

    5、StatefulSet:为了解决有状态服务的问题(如mysql,必须实时跟踪数据),docker主要解决无状态服务(如apche,负载均衡调度器)。主要应用场景包括:

    (1)、稳定的持久化存储:即Pod重新调度后还是能访问到相同的持久化数据,基于PVC来实现

    (2)、稳定的网络标志:即Pod重新调度后其PodName和HomeName不变,基于HeadLess Service来实现

    (3)、有序部署,有序扩展,即Pod是有顺序的,在部署或扩展的时候要依据定义的顺序依次启动。

    6、DaemonSet:当有Npde加入集群时,会为他们新增一个Pod,当有Node从集群移除时,这些Pod也会被回收,删除DaemonSet会删除它创建的Pod

    用处:如在node上允许日志收集daemon,运行监控daemon.

    7、Job负责批处理任务,仅执行一次的任务,能批量处理任务的一个或多个Pod成功接收。

    2、服务发现

    service收集Pod是通过标签收集的,中间通过轮询访问。

    四、网络通信模式

    KOS认为所有Pod都在一个可以直接连通的扁平的网络空间中。

    同一个pod中的各容器,因为共享pause网络,可以直接访问

    不同pod之间通讯,用OverLay Network

    Pod与service 之间的通信,靠各节点的Iptables规则.

  • 相关阅读:
    Android 2.2 r1 API 中文文档系列(11) —— RadioButton
    Android API 中文 (15) —— GridView
    Android 中文 API (16) —— AnalogClock
    Android2.2 API 中文文档系列(7) —— ImageButton
    Android2.2 API 中文文档系列(6) —— ImageView
    Android 2.2 r1 API 中文文档系列(12) —— Button
    Android2.2 API 中文文档系列(8) —— QuickContactBadge
    [Android1.5]TextView跑马灯效果
    [Android1.5]ActivityManager: [1] Killed am start n
    Android API 中文(14) —— ViewStub
  • 原文地址:https://www.cnblogs.com/xiaoyuer2121/p/14274754.html
Copyright © 2011-2022 走看看