北京中科专注治疗白癜风 https://baike.baidu.com/item/%E5%88%98%E4%BA%91%E6%B6%9B/21900249?fr=aladdin前面我们介绍过,k8s是用来实现自动化部署、扩展、管理容器化应用的开源系统,它让我们可以像控制一台单一的计算机一样控制整个节点集群。假设此刻有3个节点,要怎么用k8s来管理我们的机器上的应用容器的呢?简单来讲,就是选择其中一台作为master节点,另外两台作为worker节点,分别在这3个节点上安装k8s对应的组件,然后就可以使用k8s来管理节点上的应用容器。k8s采用主从结构,将节点分为两种类型,一种是matser节点,一种是worker节点,如下图所示:master节点作为控制节点,主要工作是对worker节点们进行管理,该节点上不运行容器,且一个master节点可以管理上百甚至上千个worker节点。worker节点作为真正的工作节点,其上面会部署容器,运行业务对应的容器;在正式开始安装k8s之前,还需要了解下主节点和worker节点里面都分别包含了什么内容?了解了这些,我们才能知道安装的时候需要修改哪些配置文件以及修改的配置文件是干嘛用的?先来看一份比较简单一点的k8s架构图,看看k8s都包含了什么:k8s内部由很多组件构成,但主节点和worker节点包含的组件不同,组件各自负责不同的部分。master节点包含的组件及其作用:APIServer:是k8s最核心的组件,统一的资源操作入口,包括提供认证、授权、访问控制、API注册和发现等机制,其他的组件运行依赖于apiserver,通过api接口可以对k8s资源对象进行curd以及监控,也能进行健康,日志等监控。ETCD:是k8s的key-value数据库,集群的状态信息都持久化存储在ETCD中。Scheduler:属于调度器的角色,负责决策pod按照哪种算法调度到哪个node上,它会把决策的信息通过apiserver发送给kubelet,让kubelet执行。Controller-Manger:为了管理集群中不同的资源,k8s为不同的资源建立了对应的controller。k8s中分了8个controller,不同的Controller负责对不同资源的监控和管理。worker节点包含的组件及其作用:kubelet:真正的容器管理和维护者,它根据master节点上shcedule的调度决策去真正控制节点上的容器,维护Container的生命周期,同时也负责存储(CSI)和网络(CNI)的管理。kube-proxy:集群内部通过kube-proxy访问其他pod,其主要功能是提供集群内部的服务发现和负载均衡功能。cAdvisor:cAdvisor是用来分析资源使用率和性能的工具,kubelet通过cAdvisor获取其所在Node及容器(Docker)的数据,包含CPU、内存、文件系统和网络使用等统计信息。pod:Pod是k8s管理的最小单位,k8s将每个应用容器都放在pod里面,每个Pod里面可以包含多个容器(Docker),一个Node上可以运行多个Pod。有了如上的了解,如果要部署一个lnmp的环境,同时需要连接redis,那么简单的架构图如下:上图中:matser节点上不安装任何容器应用。nginx和PHP分别在不同的pod里面,同时被部署在了一个node1上面。mysql和redis也分别在不同的pod里面,同时都被部署在了node2节点上。好了,关于k8s的基本组成,就先介绍到这里,以后咱们会慢慢介绍k8s的原理。有了基本的了解,下一章,就让我们上手来安装下k8s吧。每天5分钟|轻松掌握开发工作中必会的k8s-开篇每天5分钟|轻松掌握开发工作中必会的docker套路-
转载请注明:http://www.aierlanlan.com/cyrz/7747.html