加载中...

第三章 试验部署集群架构详解

一、核心组件

1.1 配置存储中心

etcd服务:用于存储集群的元数据信息(集群的状态,资源,健康检查,各节点信息)相当于整个K8s集群的数据库

1.2 中控节点(master)

  • Kube-apiserver服务:
    提供了集群管理的REST API接口(包括鉴权、数据校验及集群状态变更);
    负责其他模块之间的数据交互,承担通信枢纽功能;
    是资源配额控制的入口;
    提供完备的集群安全机制。

  • Kube-controller-manager服务:
    由一系列控制器组成,通过apiserver监控整个集群的状态,并确保集群处于预期的工作状态;
    相当于控制器的管理器,可以管理以下的控制器:
    Node Controller
    Deployment Controller
    Service Controller
    Volume Controller
    Endpoint Controller
    Garbage Controller
    Namespace Controller
    Job Controller
    Resource quta Controller

  • Kube-scheduler服务:
    主要功能是接收调度pod到适合的运算节点上;
    预算策略;
    优选策略。

1.3 运算节点(node)

  • Kube-kubelet:
    简单地说,kubelet的主要功能就是定时从某个地方获取节点上的pod的期望状态(运行什么容器、运行的副本数、网络或者存储如何配置等等)。并调用对应的容器平台接口达到这个状态;
    定时汇报当前节点的状态给apiserver,以供调度的术后使用;
    镜像和容器的清理工作,保证节点上镜像不会占满磁盘空间,退出的容器不会占用太多资源。

  • Kube-proxy:
    是K8s在每个节点上运行网络的代理,service资源的载体;
    建立了pod网络和集群网络的关系(clusterip-->podip);
    常用的三种流量调度方式:Userspace(废弃)、IPtables(濒临废弃)、IPvs(推荐);
    负责建立和删除包括更新调度规则、通知apiserver自己的更新,或者从apiserver那里获取其他kube-proxy的调度规则变化来更新自己。

二、Cli客户端

kubectl

三、核心插件:

  • CNI网络插件-->flannel/calico

  • 服务发现用插件-->coredns

  • 服务暴露用插件-->traefik

  • GUI管理插件-->Dasbord

四、架构图解

4.1 集群逻辑架构

4.2 测试环境架构

4.3 集群网络架构

五、常见的K8s安装部署方式

5.1 Minikube单节点微型K8s

(仅供学习、预览使用)
登录官网即可在线部署




查看起了哪些服务

5.2 二进制安装部署

(生产首选,新手推荐)
对于一个熟练的工程师来说,也需要一天的时间才能部署好一个k8S集群(关键是需要自签各种证书,证书默认的过期时间是一年,二进制安装可以设置证书国企时间)
本例使用二进制部署方式

5.3 使用kubeadmin进行部署

K8s的部署工具,放在K8s里(相对简单,熟手推荐)

posted @ 2021-07-15 22:05  沾沾自喜的混子  阅读(126)  评论(0编辑  收藏  举报