zoukankan      html  css  js  c++  java
  • Kubernetes概念

    Container


    什么是 Container?

    Container是运行在宿主机上的一个Sandboxed process与宿主机的其他的process是相互隔离的,具体资源隔离限制技术,即Linux内核自身namespaces & cgroups

    • 基于镜像的一个可运行实例,可以通过DockerAPI & CLI 进行创建、启动、停止、移动、删除等操作

    • Container可以部署到本地主机、虚拟机及云平台

    • 具有轻量便携性(可以凌驾于多种OS平台)

    • Container是相互独立的、相互隔离的,比如运行的应用程序、二进程文件、及相关配置

    什么是 Container image?

    如果用面向对象编程类比,那么容器镜像就是类;容器就是对象

    当创建并运行一个Container时,条件是需要一个文件系统并独立与宿主机,那么该容器的文件系统是由Container image所提供,由于容器镜像包含了容器运行时提供的文件系统,但是要求容器镜像文件必须提供所有应用程序运行时的依赖环境,包括(应用配置、脚本、二进程文件、环境变量、程序默认执行命令、等一些元数据)

    那么Container  image具有什么特性呢,如下

    • Container image 通常是解决某个问题的功能单元

    • Container image 通常归某个Team所有,并具有发布权限

    • Container image 具有独立性,并定义了在运行时加载所需的依赖条件

    • Container image 一旦创建好就不可以修改(这里的修改是在容器运行时)

    • Container image 还具有模块化,运行参数

    Pod


    通过对Container特性了解,实际上Container非常适合微服务应用部署的原则,容器可以提供一个功能单元,并属于某个独立的Team,并具有独立的发布周期,而且还能实现与运行时的隔离,在通常情况下一个Container image 对应一个微服务应用

    通常情况下,不同容器管理平台对容器的生命周期管理也不同,而kubernetes称之为是Pod,Pod具有独立调度、部署和运行一组容器的原子单位。Pod中所有的容器实例并且在同一时,都会调度到同一个work node上,无论何种情况都应如此,这样的优势之处是可以共享文件系统,网络空间和进程命名空间,例如在保证应用在交互之间的性能下,可以通过localhost网络协议互相通信,如下图

     那么Pod具有哪些特性呢,如下

    • Pod是调度的原子单位,意味着调度器在调度时必须找到一个满足Pod中所有容器要求的一个work node 比如(运行时需要的资源、依赖的环境,运行时约束的条件)

    • Pod需要自己所有的容器运行在同一个work node上

    • Pod拥有一个IP地址、名称、端口范围,供所有容器共享使用

    Service


    在kubernetes中,在创建好Pod后,无法直接访问Pod,必须需要创建服务

    什么是Service?

    在kubernetes中,Pod的生命周期一般是很短暂的,由于种种原因(添加、删除、故障、autoscale、状态检测失败、work node迁移等),由于Pod每次生成的IP是不一样的,所以kubernetes需要另一外组件来提供服务,即Service,可以将创建的Pod的IP+Port永久的绑定到一个Service上,那么该Service就是此组Pod的网络入口

    Service是为一组Pod对外提供网络入口

  • 相关阅读:
    10.异常
    9.1 oop习题集合
    9.抽象类和接口
    8.oop-多态
    AngularJs学习笔记二
    浅谈如何坚持计划
    妙味课堂——JavaScript基础课程笔记
    前端学习-试卷
    jquery实战
    boost any
  • 原文地址:https://www.cnblogs.com/apink/p/15787397.html
Copyright © 2011-2022 走看看