“docker、kubernetes”知识分享
来源:湖北国菱计算机科技有限公司-荆州网站建设-荆州软件开发-政府网站建设公司
时间:2019-07-22
2019年7月12日湖北国菱公司软件开发部成员与运维部成员组织学习关于“docker、kubernetes原理及使用” 知识分享会,知识要点如下:
第一点:什么是容器
在同一台机器上运行的不同的组件需要不同的,可能存在冲突的依赖库版本,或者其他的不同环境需求。
当一个应用程序仅由较少数量的大组件构成时,完全可以接受每个组件分配专用的虚拟机,以及通过给每个组件提供自己的操作系统实例来隔离他们的环境。但是当这些组件开始变小且数量开始增长时,如果不想浪费硬件资源,又想持续压低硬件成本,那就不能给每个组件配置一个虚拟机。但是这不仅仅浪费硬件资源,因为每个虚拟机都需要被单独配置和管理,所以增加虚拟机的数量也就是导致人力资源的浪费,因为这增加系统管理员的工作负担。
第二点:什么是docker
Docker是一个打包,分发和运行应用程序的平台。正如我们所说,他允许将你的应用程序和应用程序依赖的整个环境打包在一起。这既可以是一些应用程序需要的库,也可以是一个被安装的操作系统所有可用的文件。Docker使的传输这个包到一个中央仓库成为可能,然后这个包就能被分发到任何运行docker的机器上,在哪儿被执行。
Docker三大组件
镜像:docker镜像里包含了你打包的应用程序及其所依赖的环境。它包含应用程序可用的文件系统和其他的元数据,如镜像运行时的可执行文件路径,
镜像仓库:docker镜像仓库用于存放docker镜像,以及促进不同人和不同主机之间共享这些镜像。当你编译你的镜像时,要么可以在编译它的电脑上运行,要么可以先上传到一个镜像仓库,然后下载到另外一台电脑上并运行它。某些仓库是公开的,允许所有人从中拉取镜像,同时也有一些是私有的,仅部分人和机器可接入。
容器:docker容器通常是一个linux容器,它基于docker镜像被创建。一个运行中的容器时一个运行在docker主机上进程,但他和主机,以及所有运行在主机上的其他进程都是隔离的。这个进程也是资源受限的,意味着他只能访问和使用分配给他的资源(cpu,内存等)。
第三点:什么是kubernetes
Kubernetes是一个软件系统,他允许你在其上很容易地部署和管理容器化的应用。他依赖于Linux容器的特性来运行异构应用,而无须知道这些应用的内部详情,也不需要手动将这些应用部署到每台机器。因为这些应用运行在容器里,他们不会影响运行在同一台服务器上的其他应用,当你是为完全不同的组织机构运行应用时,这是很关键的。对于云供应商来说是至关重要的,因为他们在追求高硬件可用率的同搜索时也必须保障所承载应用的完全隔离。
1、Kubernetes集群架构
主节点:它承载着kuberentes控制和管理整个集群系统的控制面板。
工作节点:它们运行用户实际部署的应用
2、控制面板
控制面板用于控制集群并使它工作。它包含多个组件,组件可以运行在单个主节点或者通过副本分别部署在多个节点以确保高可用性。这些组件是:
Kubernetes API服务器,不和其他控制面板组件都要和它通信
Scheculer,它调度你的应用(为应用的每个可部署组件分配一个工作节点)
Controller Manager,他执行集群级别的功能,如复制组件,持续跟踪工作节点,处理节点失败等
Etcd,一个可靠的分布式数据存储,它能持久化存储集群配置
3、工作节点
工作节点是运行容器化应用的机器。运行,监控和管理应用服务的任务是由以下组件完成的:
Docker,rtk或其他的容器类型
Kubelet,它与API服务器通信,并管理它所在的节点的容器
Kubernetes service proxy(kube-proxy),它负责组件之间的负载均衡网络流量
以上就是这次分享会的全部内容了,希望对大家的学习或者工作具有一定的参考学习价值,也希望能给容器小白们一些帮助。