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内部的服务发现和负载均衡;

  • 相关阅读:
    分配一维动态数组or 二维动态数组的方法以及学习 new 方法or vector
    关于i++与++i的学习讨论!
    vector 中需要注意的东西!
    c++中 函数的默认参数 学习
    为什么 c++中函数模板和类模板的 声明与定义需要放到一起?
    c++中赋值运算符重载为什么要用引用做返回值?
    为什么const对象只能调用const成员函数,而不能调用非const成员函数?
    java 文件读写
    java Vector
    getRequestDispatcher
  • 原文地址:https://www.cnblogs.com/ww11/p/8941414.html
Copyright © 2011-2022 走看看