zoukankan      html  css  js  c++  java
  • Docker Kubernetes(K8s)简介

    入职了新公司,使用了Docker和K8s,需要有一个基础的了解,对网络上相关信息进行了简单总结。

    一Docker

    1简介:

    Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。

    2功能:

    虚拟化解决了应用运行环境的复杂,硬件管理的问题,提供可移植性。

    3架构:

    Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
    Docker 客户端(clients)会与 Docker 守护进程进行通信。
    Docker 守护进程(daemon)和容器运行在一台主机上。用户并不直接和守护进程进行交互,而是通过 Docker 客户端间接和其通信。
    Docker 容器和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的环境。每一个 Docker 容器都是从 Docker 镜像(image)创建的。
    Docker仓库(repsitory)用来保存镜像。

    4应用场景:

    1)提供一次性的环境
    2)提供弹性的云服务
    3)组建微服务架构

    二K8s

    1简介:

    全新的基于容器技术的分布式架构领先方案。Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

    2功能:

    Kubernetes内奸的透明负载均衡和故障恢复机制,不管后端有多少服务进程,也不管某个服务进程是否会由于发生故障而重新部署到其他机器,都不会影响我们队服务的正常调用。

    3架构:

    Master:集群控制管理节点,所有的命令都经由master处理。
    Node:是kubernetes集群的工作负载节点。Master为其分配工作,当某个Node宕机时,Master会将其工作负载自动转移到其他节点。负责Pod对应容器的创建暂停等任务。
    kubelet:运行在每个计算节点上,作为agent,接受分配该节点的Pods任务及管理容器,周期性获取容器状态,反馈给kube-apiserver。
    Pod:Pod是Kurbernetes进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。一个Pod可以包含一个容器或者多个相关容器。
    在Kubenetes中,所有的容器均在Pod中运行,一个Pod可以承载一个或者多个相关的容器,同一个Pod中的容器会部署在同一个物理机器上并且能够共享资源。

    核心组件:

    etcd保存了整个集群的状态;
    apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
    controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
    scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
    kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
    Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);
    kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;

  • 相关阅读:
    BZOJ 2034 【2009国家集训队】 最大收益
    vijos P1780 【NOIP2012】 开车旅行
    BZOJ 2115 【WC2011】 Xor
    BZOJ 3631 【JLOI2014】 松鼠的新家
    BZOJ 4717 改装
    BZOJ 2957 楼房重建
    BZOJ 4034 【HAOI2015】 T2
    BZOJ 1834 【ZJOI2010】 network 网络扩容
    BZOJ 2440 【中山市选2011】 完全平方数
    BZOJ 2733 【HNOI2012】 永无乡
  • 原文地址:https://www.cnblogs.com/ww11/p/8941414.html
Copyright © 2011-2022 走看看