一、架构描述

  1、基本架构

    

  2、pod ,有两类

    

    a、自主式pod

      自我管理的,创建之后,任然是需要提交给API Server,API Server接受之后然后由调度器调度到指定的 node节点,由node启动此pod,如果有pod中的容器出现故障,需要重启容器时需要kubelet来完成的,但是,如果节点故障了那么这个pod就消失了。没事实现全局调度。

    b、控制器管理的pod。

      1)、正是控制器的引入和使用,使得在k8s的集群设计中pod完成可以成为有生命周期的对象。由调度器将其调度到集群中的某节点运行以后任务也就被终止了,但是有一些任务比如nginx或tomcat时,他们是作为守护进程运行的这种如果运行为pod容器的话要确保时刻处于运行状态,一旦出现故障我们必须要第一时间发现,要么是取代他要么是重启他。因此k8s提供了pod控制器来时刻监控pod状态。

      2)、最早的控制器叫ReplicationController(副本控制器)

        a)、时刻保持定义pod的副本数。

        b)、还能实现滚动更新,有两个pod副本,先创建一个pod删掉一个老的pod然后再创建一个pod再删除一个老的pod。

      3)、新版本后又是新版本控制器叫ReplicaSet(副本集控制器),他不直接使用,他有一个声明式更新的控制器Deployment来负责管理,Deployment控制器还支持二级控制器,叫HPA(HorizontalPodAutoscaler:水平pod自动伸缩控制器)。Deployment只能管理那些无状态的应用。

      4)、有状态的应用需要使用新的控制器叫statefulSet(有状态副本集)。

      5)、如果我们需要在每一个node上运行一个副本那么叫DaemonSet

      6)、如果运行作业叫job

      7)、周期化容器作业Ctonjob。

  3、服务发现service(注册中心,zookeepr等都算)

    a)、k8s为每一组提供同类服务的pod和客户端之间添加了一个中间层,这个中间层就叫service,service只要不删除那么他的名称和地址就是固定的。当访问某一个服务时,不用自动再去发现什么功能,他只需要在配置文件中写明这个服务的地址或者服务的名称就行。而这个服务不但能提供一个稳定的访问入口,并且还能起到调度器的功能,服务能将请求代理到后端的Pod上,一旦pod宕机了那么又会自动新建一个pod和service关联。service关联后端的pod不是通过ip地址或者主机名,而是通过lable,因此只要你创建的pod lable只要是固定的那么都能被service识别,当pod被关联进service后service才会探测pod的ip地址和主机名作为自己调度的后端可用服务器主机对象。在k8s中service不是应用程序也不是组件,而是iptable中的dnet规则。我们创建一个dnat规则说所有到达某地址的都统统被目标地址转换成某某某地址。当前iptables已经把负载均衡的功能交给ipvs来实现,因此如果service背后的同一组pod由很多dnat来实现那么调度效果上可能不尽人意,因此,1. 11版本中已经把iptables规则进一步改成了ipvs规则,也就意味着当创建一个service就相当于生成了一条nat 模型的ipvs规则。因此支持用户自己指定调度算法,因此lvs算是基础性服务。  

    b)、service作为k8s对象来讲,有service名称,而service的名称也相当于是这个服务的名称,可以被解析,可以把service名直接解析为service IP,名称解析靠dns,我们装完k8s集群后你会发现第一件事就是需要在k8s集群上部署一个dns pod以确保各dns被解析。因此dns pod是基础级的系统架构级的对象。因此他们也被称为集群的附件(AddOns)。

  4、附件(AddOns)

    a)、DNS。service作为k8s对象来讲,有service名称,而service的名称也相当于是这个服务的名称,可以被解析,可以把service名直接解析为service IP,名称解析靠dns,我们装完k8s集群后你会发现第一件事就是需要在k8s集群上部署一个dns pod以确保各dns被解析。因此dns pod是基础级的系统架构级的对象。因此他们也被称为集群的附件(AddOns)。DNS会动态更新解析记录,当集群中IP或名称有变动时DNS pod中的解析记录也会动态改变。

31分37秒

Kubernetes 学习2 k8s基础概念的更多相关文章

  1. Elasticserach学习笔记-01基础概念

    本文系本人根据官方文档的翻译,能力有限.水平一般,如果对想学习Elasticsearch的朋友有帮助,将是本人的莫大荣幸. 原文出处:https://www.elastic.co/guide/en/e ...

  2. 【miscellaneous】 GStreamer应用开发手册学习笔记之基础概念介绍

    第3章. 基础概念介绍 本章将介绍GStreamer的基本概念. 理解这些概念对于你后续的学习非常重要,因为后续深入的讲解我们都假定你已经完全理解了这些概念. 3.1. 元件(Elements) 元件 ...

  3. k8s 基础概念和术语

    Master k8s里的master指的是集群控制节点,每个k8s集群里需要有一个Master节点来负责整个集群的管理和控制,基本k8s所有控制命令都发给它,它负责整个具体的执行过程,后面执行操作基本 ...

  4. k8s 基础概念

    摘录自k8s中文社区https://www.kubernetes.org.cn/course kubernetes 源自希腊文,意为舵手,k与s之间是8个字母,所以也叫k8s, docker就像一个个 ...

  5. Docker:学习笔记(1)——基础概念

    Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...

  6. OpenFlow Switch学习笔记(一)——基础概念

    OpenFlow Switch v1.4.0规范是在2013年10月14号发布,规范涵盖了OpenFlow Switch各个组件的功能定义.Controller与Switch之间的通信协议Open F ...

  7. K8S基础概念

    一.核心概念 1.Node Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod.Node上运行着Kubernetes的Kubelet.kube ...

  8. Kubernetes学习之k8s

    k8s是什么 云原生 越来越多的开发者不仅使用容器作为应用部署和运行的载体,还积极使用了与容器这个应用载体天生匹配的微服务的架构,并依靠容器调度编排引擎的帮助,以保持对外部的敏捷性,这种容器化的微服务 ...

  9. zookeeper,及k8s基础概念

    1.描述zookeeper集群中leader,follower,observer几种角色 Zookeeper: 分布式系统:是一个硬件或软件组件分布在网络中的不同的计算机之上,彼此间仅通过消息传递进行 ...

随机推荐

  1. Sublime Text3之安裝Emmet及使用技巧

    首先准备工作: 如果你的Sublime Text3没有Package Control组件先看一下这里,如果以安装请忽略: 1.按Ctrl+`调出sublime text的console 2.粘贴以下代 ...

  2. PGIS大数据量点位显示方案

    PGIS大数据量点位显示方案 问题描述 PGIS在地图上显示点位信息时,随点位数量的增加浏览器响应速度会逐渐变慢,当同时显示上千个点时浏览器会变得非常缓慢,以下是进行的测试: 测试环境: 服务器: C ...

  3. 使用ZXing实现扫描多个条形码页面

    1.前言 ZXing是google官方推出的跨平台的基于Java实现处理扫面二维码或者条形码的库.支持很多格式,一维条码支持UPC-A,UPC-E,EAN-8,Code 39,Code 93等格式,二 ...

  4. MySQL允许root远程访问

    1. mysql -u root -p;     // 登录mysql, 并输入密码 2. use mysql;             // 打开 mysql 数据库 3. update user ...

  5. MessageFormat使用记录

    1.日志里面需要记录入参,之前一般使用StringUtils.formt()方法,但是如果入参含有空值,就会报错.这个时候可以使用MessageFormat方法.用法 format(String pa ...

  6. new era

    新的博客,将会记录我在工作和学习中遇到的问题以及总结...

  7. Exchange 接收连接器(Client、Default)区别,OUtlook实际测试

    CAS就是接收连接器(110,995): Server Config--Client Access:POP3 and IMAP4:POP3设置 HUB就是发送连接器(25,587) Server Co ...

  8. Python学习---线程/协程/进程学习 1220【all】

    Python学习---线程基础学习 Python学习---线程锁/信号量/条件变量同步1221 Python学习---同步条件event/队列queue1223 Python学习---进程 1225 ...

  9. Java学习---Quartz定时任务快速入门

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...

  10. 通过Windows Server 2008 R2建立iSCSI存储

    名词解释:iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行 SCSI协议,使其能够在诸如高速千兆以太网上 ...