今年最后一次线上发版后,春节前应该不再忙了,还是决定把学习k8s的笔记记录一下,纯粹个人学习。不足之处请谅解。
引文:最近几年随着云技术逐渐成熟,市面上有不少云厂商提供了相关成熟的PASS平台,但针对很多的企业,特别是一些国企央企对于私有化部署更加注重。所有对于搞技术的人,对于学习k8s ,我认为是有必要的。
一、kubernates vs openshirft
我们企业,集团已经采购了红帽 openshirft 作为 pass 平台,这个没啥好说的,有相应的团队来维护管理,还为企业提供解决方案; openshirft 的开发维护的人,有加入到kubernates进行一些新功能的开发验证。所以今天的kubernates 的发展也离不开这帮人,很多kubernates 一些功能和一些解决方案,都是他们进行解决,然后开源。当然,由于openshirft 企业版是收费的,也为kubernates开源社区提供了基本资料,总之两者相互推动发展。
二、kubernates 架构
kubernates 是一个自动化部署,扩展和管理容器化应用程序的开源系统。
节点分类:控制节点、工作节点
- 控制节点-master:
一般来说,我们会把 controller manager 组件(控制k8s集群中nod节点、pod、service等资源的管理,维持对应资源的运行状态);
会把 scheduler 组件 (主要是个通过一些调度算法,资源对象调度到合适的节点上,如污点、节点亲和、pod亲和、pod反亲和等);
会把 kube api server 组件(提供对应的集群api接口,保持用户、节点通过 kubectl和kubelet 保持通讯和下达指令,并且更新etct存储的k8s集群中的元数据);
通过集群方式来部署上诉组件,使其高可用。
- 工作节点-work
每个工作节点,部署kubelet 组件,用户管理pod,把节点、pod等资源的信息通过 该组件与kubeapiserver通讯,获取更新对应的元数据
- etcd key-value 数据库,通过高可用进行集群部署,一般来说可以单独部署,也可用部署在master节点上。主要用于存储整个k8s集群中元数据