说明
描述 kubernetes 重要组件
描述 rook 重要组件
kubernetes 架构
组件说明
kubectl
命令行接口
管理员利用该命令对 k8s 进行管理
kubelet
worker node 中运行的进度
用于对 pod 执行增删改管理
Kubelet 从 apiserver 获取pod的配置
确保所描述的容器已启动并运行
负责与主节点通信的工作者服务
docker
docker 在每个工作节点上运行
运行配置的pods
负责下载图像并启动容器
api server
api 服务器是用于控制集群的所有 rest 命令的入口
处理的请求,验证它们,并执行绑定的业务逻辑
结果状态必须在某个地方持久化
用于调用其他组件
scheduler
k8s 调度器
将配置的 pods 和服务部署到节点上
调度程序具有集群成员上可用资源的相关信息, 配置的服务运行所需的信息
决定部署特定服务的位置
kube-proxy
代理服务
用于提供外部网络访问到容器内部提供的服务方法
充当单个工作节点上服务的网络代理和负载平衡器
它负责TCP和UDP数据包的网络路由
etcd
etcd 是一个简单、分布式、一致的键值存储区
它主要用于共享配置和服务发现
CRUD 操作提供了一个 RESTAPI
提供了一个在特定节点上注册观察程序的接口
pod
Kubernetes的目标是管理由多个相互通信的微服务组成的弹性应用程序。通常,这些微服务是紧密耦合
K8S部署的最小单元被称为 POD
kubernetes 下 rook 架构说明
组件说明
kubectl
命令行管理工具
对 k8s 进行管理
对 rook 进行管理 (增删改)
rook operator
由 kubectl 调用
整个 k8s 中有并且只有一个 rook-operator
对 ceph 创建过程中起到重要作用
初始化生成 mon key, user key, osd key 等秘钥
根于 yaml 文件,生成了 ceph 配置
在 ceph/rook 搭建过程中, 分发配置到 mon, mgr, osd, mds 等组件中
监控 ceph/rook 各个组件是否工作正常
rook agent
由 kubectl 调用
每个 k8s node 中都具有 rook agent
接受 rook operator 管理
对本机中的 ceph pod 进行管理
环境说明
master
管理节点
需要提供 dns 服务 (coredns)
需要提供 service 服务
管理 ceph/rook 配置
pod node
在 pod node 运行 pod
工作节点包含管理容器之间的网络
与主节点通信以及将资源分配给计划的容器所必需的所有服务
包含 docker, kubelet, kube-proxy 主要组件
rook node
主要在 rook node 中组件 ceph 集群
rook 由存储服务器搭建( 建议 )
建议每个 contrainer 独立管理一个磁盘 (osd)
系统环境说明
操作系统
centos7.5
内核版本
4.20.7-1.el7.elrepo.x86_64
kubenetes 版本
kubenetes 1.13.3
docker 版本
docker-ce-18.09.1-3
kernel 相关 rook bug 说明
kernels with versions older than 4.7, where the option mds_namespace is not supported
kernels with versions older then 3.15 , Disable some Ceph features by starting the rook toolbox and running ceph osd crush tunables bobtail
kernels with versions older than 4.7, rook Agent logs contain modinfo: ERROR: could not get modinfo from ‘rbd’: Exec format error lines
kernels with versions older than 4.7, not support requirement for multiple shared filesystems (CephFS),