K8s笔记--基础架构
前言
K8s目前也是比较主流的一套分布式容器编排工具,因此有着很好的社区,网络上与其相关的技术文章也是数不胜数,该篇文章只是之前学习K8s的笔记搬运。我一直觉得学习一个组件最好的方式还是先了解他的组成架构,然后才会尝试去搭建运行。因此在开始搭建K8s集群前还是应当先对其基础架构中的模块有所了解,该篇文章主要梳理K8s集群部署时我们需要运行的模块(或者说我们在搭集群实质上是在运行哪些模块)。以下是K8s的架构图(截取至K8s官方网站)。
K8s架构模块
Master节点
名称 | 作用 |
---|---|
ControllerManager | 负责管理集群各种资源,如Deployment、DaemonSet、Namespace等等 |
Kube-apiserver | 提供HTTP/HTTPS的RESTFUL接口,CLI工具以及管理端UI界面都通过其管理资源 |
etcd | 储存配置信息以及各种资源的状态信息 |
Scheduler | 决定POD最终在哪个Node上运行,这将涉及到调度策略 |
Kubelet | 根据配置信息创建Pod并运行容器以及上报容器运行的状态 |
Node节点
名称 | 作用 |
---|---|
Kube-proxy | TCP/UDP流转发,是Service组件的实现,当有多个副本时能实现负载均衡,通过Service暴露的端口以及Selector选择器找到一组Pod实现负载均衡 |
Kubelet | 根据配置信息创建Pod并运行容器以及上报容器运行的状态 |
例子
通过以下几组截图看下K8s集群在运行的各个模块。