Kubereters

An open-source system for automating deployment, scaling, and management of containerized applications;

Traditional >> Hypervisor >> Container

Traditional:

  No way to define resource boundaries for applications in a physical server before, run each applications on a different physical server;

Hypervisor:

  Will run multi VMs on a single physical server's CPU;

  Allow applications to be isolated between VMs and provides a level of securiy as the infomation of one application cannot be freely accessed by another     application;

  Each VM is a full machine running all the components, including its own operating system;

Container:

  Have relaxed isolation properties to share the operating system among the applications;

  Lightweight;

  A container has its own filesytem/CPU/memory/process space/..

  Are portable across clouds and OS distributions because they are decoupled from the underlying infrastrucure;

  Benifits of containers:

    1. Agile application creation and deployment: increased ease and efficiency of container image creation compared to VM image use

    2. Continuous development, integrations and deployment:

      provide for reliable and frequent container image build and deployment with quick and easy rollbacks;

    3. Dev and Ops separation of concerns: create application container images at build/release time rather than deployment time, thereby decoupling applications from infrastructure;

    4. Obervability not only surfaces OS-level information and metrics, but also application health and other signals;

    5. Environmental consistency across development, testing, and production; Runs the same on a laptop as it does in the cloud;

    6. Cloud and OS distribution portabilty: Runs on Ubuntu, RHEL, CoreOS, on-prem, Google Kubernetes Engine, and anywhrere else;

    7. Application-centric management;

    8. Loosely coupled, distributed;

    9. Resource isolation;

    10. Resource utilization;

Benefits of Kubernetes:

  1.  Service discovery and load balancing    

      kubernetes expose a container using the DNS name or using their own IP address;

      if traffic to a container is high, kubernetes is able to load balance and distribute the network traffic so that the deployment is stable;

  2.  Stroage orchestartion

      automatically mount a storage system of local storages/public cloud providers/..

  3.  Automated rollouts and rollbacks

      automake kubernets to create new containers

  4.  Self-healing

      restart fail containers, kill no-respond containers;

  5.  Automatic bin packing

      tell kubernetes how much CPU and RAM each container needs, kubernets can fit containers onto your nodes to make the best use of you resources;

Kubernetes Master

When deploying kubernetes, we wil get a cluster, which is a set of machines (nodes),

that run containerzed applications managed by kubernetes.

A cluster has at least one worker node and at least one master node;

Kubernetes Master is a collection of three processes that run on a single node in your cluster, which is designed as the master node;

Three processes:

  Kube-apiserver;

  Kube-controller-manager;

  Kube-scheduler;

Individual non-master node in cluster run two processes:

  kubelet

    which communicates with the Kubernetes Master;

    The primary node agent that runs on each node; It can register the node with tha apiserver using one of

      the host name;

      a flag to override the hostname;

      specific logic for a cloud provider;

    

  kube-proxy

    a network proxy which reflects Kubernetes networking services on each node;

    Kubernets network proxy runs on each node, this relects services as defined in the Kubernetes API on each node

    and can do simple TCP/UDP and SCTP stream forwarding or round robin TCP/UDP/SCTP forwarding across a set of backends/

    Service cluster IPs and ports are currently found through Docker-links-compatible   

 

Kubernetes Objects

Kubernetes contains serveral abstractions representing the state of system;

Basic Kubernetes objects include:

Kata-container

An open-source project and community working to build a standard implement of lightweight VM that feel and perform like containers, but provide the workload isolation and security advantages of VMs;

Kata container Components

  • Agent      -- The Kata-agent runs inside the virtual machine and sets up the container environment
  • KSM throttler   -- An optional utility that monitors containers and deduplicates memory to max container density on a host
  • Proxy      -- A process running on the host and co-ordinates access to the agent running inside the VM
  • Runtime     -- Be invoked by a container manager and provides high-level verbs to manage containersd
  • Shim        -- A process that runs on the host, acts as though it is the workload ( which actually runs inside the VM), required to be compliant with th expecations of the OCI runtime sepc
  • Hypervisor    --
  • Kernel      -- HV uses a linux kernel to boot the guest image

Docker

Following storage drivers:

  • overlay2     is the preferred storage driver, for all currently supported linux distributions, and requires no extra conf
  • aufs       is the preferred stroage driver for Docker 18.06 or older, when running on Ubuntu 14 on Kernel 3.13 which has no support or ovrlay2
  • devicemapper   is supported, but requires direct-lvm for production environments, because loopback-lvm, while zero-conf, has very poor performance.

Basic concepts of docker/kubernete/kata-container的更多相关文章

  1. Kata Container 介绍

    docker容器,性能高,不安全:VM虚拟机,安全性好,性能损耗大:Kata Container轻量级虚拟机的容器,即安全,性能也高. 开源容器项目Kata Containers,旨在将虚拟机(VM) ...

  2. Basic Concepts of Block Media Recovery

    Basic Concepts of Block Media Recovery Whenever block corruption has been automatically detected, yo ...

  3. docker的网络-Container network interface(CNI)与Container network model(CNM)

    Overview 目前围绕着docker的网络,目前有两种比较主流的声音,docker主导的Container network model(CNM)和社区主导的Container network in ...

  4. (二)Basic Concepts 基本概念

    Basic Concepts There are a few concepts that are core to Elasticsearch. Understanding these concepts ...

  5. Docker入门03——Container

    1 启动容器 1.1 新建并启动 1.2 启动已终止容器 2 后台运行 3 终止 4 进入容器 5 导入和导出 5.1 导出 5.2 导入 6 删除 1 启动容器 1.1 新建并启动 docker r ...

  6. CMUSphinx Learn - Basic concepts of speech

    Basic concepts of speech Speech is a complex phenomenon. People rarely understand how is it produced ...

  7. docker Cannot start container [8] System error: exec format error

    docker Cannot start container  [8] System error: exec format error 学习了:https://www.aliyun.com/jiaoch ...

  8. Docker 容器(container)

    版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...

  9. Docker实现退出container后保持继续运行的解决办法

    现象: 运行一个image,例如ubuntu14.04: 1 docker run -it --rm ubuntu:14.04 bash 退出时: 执行Ctrl+D或者执行exit 查看线程: 1 d ...

随机推荐

  1. Akka-CQRS(9)- gRPC,实现前端设备与平台系统的高效集成

    前面我们完成了一个CQRS模式的数据采集(录入)平台.可以预见:数据的产生是在线下各式各样的终端系统中,包括web.桌面.移动终端.那么,为了实现一个完整的系统,必须把前端设备通过某种网络连接形式与数 ...

  2. MacBook Pro配置汇编开发环境

    配置开发环境 方法一: 打开命令行,输入指令which nasm查看nasm的安装路径,Mac系统默认安装了nasm.一般默认返回的路径是/usr/bin/nasm 接着输入指令alias nasm= ...

  3. vue+element项目中 给input赋值之后无法修改

    点击修改按钮 将值赋值给 input 但是无法修改,input不可编辑,部分input可以编辑 , 解决方法一. 改变data数据初始值 解决方法二. 用this.$set input:{ descr ...

  4. win7安装镜像注入USB3.0,NVMe驱动

    现在的新款主板和笔记本因为原生自带了USB3.0和NVMe,在安装WIN7的时候会出现进入安装界面后不识别USB设备且在硬盘列表中无法读取M.2类型的固态硬盘信息.导致这个现象的原因就是在WIN7安装 ...

  5. C# vb .net实现博物馆哑色框架特效滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的博物馆哑色框架效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授 ...

  6. C#录制声卡声音喇叭声音音箱声音

    在项目中,我们会需要录制电脑播放的声音,比如歌曲,电影声音,聊天声音等通过声卡音箱发出的声音.那么如何采集呢?当然是采用SharpCapture!下面开始演示关键代码,您也可以在文末下载全部源码: 设 ...

  7. 无法生成服务引用(添加WebService)

    参考地址:http://www.52study.org/bencandy-120-1076-1.html 问题场景:.在工程中添加WebService,报错: 解决办法:  1.配置该服务引用 将下面 ...

  8. 利用jQuery-Word-Export导出word (含ECharts)

      写在前面的话:写博客的初衷是想把自己学到的知识总结下来,在写的过程中,相当于又把知识梳理了一遍.我坚信有输入,有输出,技术才会进步.我一般都会自己写一个小demo,测试没有问题,再进行整理. 在实 ...

  9. python 函数的链式调用(一个函数调用使用两个括号)

    # python 函数的链式调用 def funcA(a): def funcB(b): for a_each in a: x = funcB(a_each) return x return func ...

  10. 【开发工具】- Windows下多个jdk版本切换

    一.直接安装jdk,如图我安装了JDK6.JDK7和JDK8三个版本: 二.在安装JDK8后需要在 C:\Windows\System32 该目录下删除 java.exe 和 javaw.exe两个文 ...