
k8s
文章平均质量分 65
k8s
悟世者
希望用技术改变世界的程序员,资深数据库内核架构师,长期在一线从事数据库核心模块开发。有希望咨询和交流的问题可以直接私信或者留言,看到后会及时回复。
展开
-
2022-05-07 designs_集群扩缩容设计方案
一、背景介绍用户置备的基础设施场景(UPI)通过bootstrap阶段的安装部署流程后,已经具备了一个完整的ccos集群。集群规划可能是3个master节点0个worker节点,或者3个master节点和大于等于2个worker节点。若需要将新的worker节点加入现有集群,或者将现有集群中的worker节点从集群中移除,需要提供相应的扩展集群和移除worker节点方案。本文针对如何进行CCOS集群扩缩容进行方案设计说明二、如何扩展节点扩展worker节点是将一台全新的用户置备服务器,并且已经完成原创 2022-05-07 14:30:44 · 228 阅读 · 0 评论 -
2022-05-06 k8s集群扩容缩容
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2022-05-06 09:36:52 · 480 阅读 · 0 评论 -
2022-04-27 openshift集群kubelet中出现unable to fetch pod logs错误问题定位
集群kubelet中出现unable to fetch pod logs错误问题描述:查看kubelet日志命令:journalctl -xefu kubelet现象描述:http://cdp.cestc.cn/product/#/project/defect/list?projectId=1501448966260252673release image:0.0.0-rc.1-20220425214427-20220426011558kubelet ver...原创 2022-04-27 21:24:22 · 2615 阅读 · 1 评论 -
2022-04-24 k8s-csi核心操作流程记录
目录摘要:核心流程:Provisioning VolumesDeleting VolumesAttaching VolumesDetaching VolumesMounting VolumesUnmounting Volumes摘要:k8s-csi核心操作流程记录核心流程:Provisioning VolumesA cluster admin creates aStorageClasspointing to the CSI driver..原创 2022-04-24 19:34:53 · 554 阅读 · 0 评论 -
2022-04-24 存储系统进阶路线记录
目录摘要:存储系统分类:k8s存储系统:摘要:分布式存储系统分为分布式模块和存储模块, 当前对存储模块的解读过于分散,不成系统,对后续的进阶不利, 无法让存储系统成为自身的一部分.本文分析如何深入的理解存储.存储系统分类:文件系统 linux内核文件系统的实现 以0.12最简内核分析文件系统 vfs文件系统架构 如何与字符设备和块设备交互 socket如何集成进文件系统 posix文件系统接口 块存储 iscsi接口 对原创 2022-04-24 11:48:32 · 215 阅读 · 0 评论 -
2022-04-22 OpenEBS云原生存储
目录OpenEBS简介架构数据平面控制平面参考OpenEBSOpenEBS是一款使用Go语言编写的基于容器的块存储开源软件。OpenEBS使得在容器中运行关键性任务和需要数据持久化的负载变得更可靠。OpenEBS由CloudByte研发,这是一家专业做容器化存储的公司,OpenEBS是其一款开源产品,CloudByte将其在企业级容器存储的经验付诸到该项目中。这个项目的愿景也很简单,就是让需要持久化存储的工作负载中的存储服务能够直接集成在环境中,存储服务可以自动管理,原创 2022-04-22 21:26:12 · 2682 阅读 · 0 评论 -
2022-04-18 openshift-单元测试的一些问题
目录环境:硬件规格:集群10.253.24.4单机10.253.15.56编译和运行:运行日志:集群串行执行:集群并行执行:失败的测试用例收集:需要解决的失败用例:一. [sig-instrumentation] Prometheus when installed on the cluster shouldn't report any alerts in firing state apart from Watchdog and AlertmanagerRec...原创 2022-04-18 21:30:17 · 1596 阅读 · 0 评论 -
2022-04-14 redis-operator业界方案分析
目录摘要:需求分析:功能需求:性能需求:数据安全性及高可用:业界redis-operator实践借鉴:一. spotahome/redis-operator二. operatorHub中开源的redis-operator三. AmadeusITGroup/Redis-Operator四. 同盾redis-operator摘要:调研业界redis-operator的做法, 借鉴优秀的设计, 指出不足, 列出改进点和开发计划, 实现后作为底座的sys数原创 2022-04-14 21:22:30 · 1605 阅读 · 0 评论 -
2022-04-13 spotahome-redis-operator部署测试并gdb调试
摘要:说明如何快速用spotahome-redis-operator部署哨兵加主从github地址:GitHub - spotahome/redis-operator: Redis Operator creates/configures/manages high availability redis with sentinel automatic failover atop Kubernetes.https://github.com/spotahome/redis-operator.原创 2022-04-13 17:51:49 · 1570 阅读 · 0 评论 -
2022-04-11 redis-operator社区版star排名前九记录
目录摘要:社区版redis-operator:一.spotahome/redis-operator二.OT-CONTAINER-KIT/redis-operator三.ucloud/redis-cluster-operator四.kudobuilder/operators五.ucloud/redis-operator六.AmadeusITGroup/Redis-Operator七.amaizfinance/redis-operator八.tongdu...原创 2022-04-11 20:51:36 · 567 阅读 · 1 评论 -
2022-04-08 redis-operator方案ppt化
目录摘要:PPT:redis企业版operator文档:What is an operator?What does an operator do?摘要:记录redis-operator方案的ppt化PPT:redis企业版operator文档:The Redis Enterprise operator is the fastest, most efficient wa...原创 2022-04-08 20:59:06 · 914 阅读 · 0 评论 -
2022-04-02 关于获取k8s的etcd的crd策略的反思
摘要:记录关于获取k8s的etcd的crd策略的反思获取k8s的etcd的crd的方式:一. 部署在和etcd相同的node上,通过hostpath拿到二. 从pod内通过client-go从etcd的pod内将crd复制到本pod方案抉择:执行过程:首先从直觉上觉得从pod里把etcd的crd复制出来是应该选择的 在做的时候, 发现遇到了重重阻力,主要是无法利用client-go复制出pod内的文件 搜了一堆资料, 找到了client-go-helper..原创 2022-04-02 21:12:44 · 642 阅读 · 0 评论 -
2022-04-02 利用client-go从k8s的pod中复制文件
摘要:由于需要用到etcd中的crt文件, 本文记录如何实现从pod中将文件拷贝出来代码实现:packagemainimport("archive/tar""flag""fmt""io""io/ioutil""os""path""path/filepath""strings"corev1"k8s.io/api/core/v1""k8s.io/client-go/kubernetes""k8s.io/client-go/kubernetes/s...原创 2022-04-02 12:18:09 · 1818 阅读 · 0 评论 -
2022-04-01 访问k8s内的etcd的数据
摘要:记录访问k8s内的etcd的数据环境准备:k8s集群:cert:/etc/kubernetes/pki/apiserver-etcd-client.crt key:/etc/kubernetes/pki/apiserver-etcd-client.key cacertetcd:必须使用V3版本:export ETCDCTL_API=3 必须通过密钥访问访问命令:export ETCDCTL_API=3查看member list...原创 2022-04-01 14:20:33 · 765 阅读 · 0 评论 -
2022-03-31 从0开始制作docker基础镜像
目录摘要:操作步骤:一. 创建工作目录:二. 制作rootfs三. 修改repo文件四. 推送镜像摘要:记录从无到有制作一个基础镜像的方法操作步骤:一. 创建工作目录:mkdir -p /home/os二. 制作rootfs//这行命令就是往/home/os这个目录安装了bash以及yumyum -c /etc/yum.conf --installroot=/home/os --releasever=/ install bash y.原创 2022-03-31 10:35:31 · 1211 阅读 · 0 评论 -
2022-03-30 设计k8s的redis-operator中的controller的设计模式
目录摘要:设计思想:一. 观察者模式二. 状态器模式例如:摘要:operator中的controller是一个非常好的设计模式的淬炼对象, 本文对其中有意思的设计做一些记录.设计思想:一. 观察者模式主要表现在informs与k8s-apis的交互上第一步先使用list拿到所有的资源类型 第二步使用watch,向k8s-apis的etcd注册监听事件 第三步, 当k8s的etcd的资源有所变化, 则利用etcd的watch机制对注册者进行广播需要原创 2022-03-30 21:30:31 · 2824 阅读 · 0 评论 -
2022-03-29 k8s上部署redis企业版相关文档
目录Redis Enterprise Software on KubernetesRedis Enterprise Software on Kubernetes architectureDeploymentRedis Enterprise clusters (REC)Redis Enterprise databases (REDB)SecurityRedis Enterprise Software logs on KubernetesManage memory resour.原创 2022-03-29 16:22:48 · 847 阅读 · 0 评论 -
2022-03-29 redis-operator-需求分析
目录摘要:目标:需求分析思维导图:相关调研:中控业务方建议:摘要:记录redis-oprator的相关需求, 对其做分析目标:1)参考业界优势的redis Operator技术,总结对比选型,做到兼听则明。2)以做一流的redis服务为目标,你那些测试例弄的挺好,是这个思路。3)要看细节,要设计好需求分析思维导图:RedisOperator需求分析 1. 技术选型要求 1. 必须用operator 1. k8...原创 2022-03-29 10:00:30 · 1588 阅读 · 0 评论 -
2022-03-28 redis企业版对比社区版文档记录
目录摘要:operator-hub中redis企业版地址:redis企业版集群架构:redis企业版文档说明:内部集成存储类型:redis-gears:无冲突复制数据类型CRDT:CRDT的一个分支实现:redis-on-flash:企业版广告中的说明:摘要:分析operator-hub中的redis企业版, 对比与社区版的区别.operator-hub中redis企业版地址:OperatorHub.io | The registr原创 2022-03-28 14:02:58 · 1319 阅读 · 0 评论 -
2022-03-24 k8s中pod绑定localpv使pod重调度操作
目录摘要:操作流程:一. Pod的最初状态, 0号pod在bj-wlc-test-10-255-190-80上。二. 找到使用的pvc三.保存原先的PV、PVC四. Scale Statefulset replica=0 (主要是删除pod,然后才能删PVC、PV)五. 依次删除PVC、PV六. 将pv的nodeAffinity修改为需要调度的节点上七. 去bj-wlc-test-10-255-190-79这台机器上, 创建路径八. 确认namespace下没有pen原创 2022-03-24 17:40:50 · 1137 阅读 · 0 评论 -
2022-03-24 k8s-结合csi接口完成redis备库重建
摘要:redis的高可用, 使用local pv导致pod无法重新调度, 本文说明如何使pod可被再次调度, 从而完成备库重建csi相关:csi相关服务的节点图:csi相关创建pvc及挂载:备库重建的时序:aliyun的csi:controllerServer:CreateVolume// CreateVolume csi interfacefunc (cs *controllerServer) CreateVolume(ctx ..原创 2022-03-24 15:39:40 · 558 阅读 · 0 评论 -
2022-03-23 k8s的localpv相关逻辑梳理
目录摘要:localpv相关的静态结构-类图:localpv创建的动态的结构-时序图:localpv核心模块说明说明:volumeMangervolumeManager::Runreconcilerreconciler:syncStates摘要:记录在k8s的in-tree源码中, localpv相关的逻辑的静态结构和静态结构, 包含以下部分:UML类图 UML时序图 核心函数的位置及核心代码localpv相关的静态结构-类图:.原创 2022-03-23 20:08:56 · 602 阅读 · 0 评论 -
2022-03-22 k8s的pvController的处理流程
摘要:记录k8s的pv-controller的核心处理核心处理:volumeWorker// volumeWorker processes items from volumeQueue. It must run only once,// syncVolume is not assured to be reentrant.func (ctrl *PersistentVolumeController) volumeWorker(ctx context.Contex..原创 2022-03-22 10:23:01 · 495 阅读 · 0 评论 -
2022-03-21 k8s的csi插件资料搜集
摘要:记录k8s的csi插件资料搜集csi插件资料搜集:GitHub - container-storage-interface/spec: Container Storage Interface (CSI) Specification.spec/spec.md at master · container-storage-interface/spec · GitHub官方文档:https://kubernetes-csi.github.io/docs/..原创 2022-03-21 22:19:38 · 451 阅读 · 0 评论 -
2022-03-18 对于redis的operator的概要设计
摘要:此前云平台以上一任op组规划出的op服务, 作为代理k8s与上层业务交互的服务, 对上层业务开发起到了一系列的阻碍生产力的方面. 本文不详细展开.本文以redis数据库为具体例子, 提出以redis-operator来作为数据库实例与k8s交互间的作用层的设计. 目的有以下几个方面:减少数据库开发中仅起到接口转发的中间层, 减少开发者的工作量 以云原生的方式进行业务与k8s层的交互, 使业务可以根据自己的需求快速实现, 而不需要依赖其他服务阻塞开发流程, 加快业务迭代速度...原创 2022-03-18 10:42:19 · 1276 阅读 · 0 评论 -
2022-03-17 使用k8s的operator-hub中的redis-operator组建cluster集群-操作手册
目录摘要:redis-operator的代码仓库:使用redis-operator部署redis-cluster集群:一. 安装crd资源执行安装crd命令:执行结果:查看crd:二. 编译controller执行编译controller命令命令执行结果:三. 启动controller进程三. 查看redis-cluster集群是否已组建:查看pod查看redis的cluster集群信息:摘要:记录使用operator-hub中的redis原创 2022-03-17 14:41:31 · 1235 阅读 · 0 评论 -
2022-03-17 redis-operator-redis单点-redis配置记录
目录摘要:redis-operator使用的镜像:redis镜像:redis-export:redis镜像本地查看:拉取容器 docker pull quay.io/opstree/redis:v6.2.5运行容器 docker run进入容器:redis使用的配置的结论:redis的配置:摘要:redis-operator使用的了quay.io/opstree/redis:v6.2.5, 记录对于redis配置的处理redis-ope..原创 2022-03-17 12:23:36 · 1317 阅读 · 0 评论 -
2022-03-16 k8s的operator-hub中的redis-operator的redis-cluster的组建redis-cluster集群及cluster高可用处理
目录摘要:时序图:核心函数:RedisClusterReconciler:Reconcile中组建cluster集群及高可用部分:CheckRedisNodeCountcheckRedisClusterExecuteRedisClusterCommandExecuteRedisReplicationCommandExecuteFailoverOperationexecuteFailoverCommand摘要:记录k8s的operator-hub中的redi原创 2022-03-16 18:55:28 · 915 阅读 · 0 评论 -
2022-03-16 k8s的operator-hub中的redis-operator的redis-cluster的CreateRedisLeaderService处理
目录摘要:时序图:核心函数:CreateRedisLeaderServiceRedisClusterService:CreateRedisClusterServiceCreateOrUpdateServicegetServicecreateServicepatchServiceupdateService摘要:记录k8s的operator-hub中的redis-operator的redis-cluster的CreateRedisLeaderService处理原创 2022-03-16 18:27:22 · 502 阅读 · 0 评论 -
2022-03-16 k8s的operator-hub中的redis-operator的redis-cluster的CreateRedisLeader处理
目录摘要:流程图:核心函数:RedisClusterReconciler:ReconcileCreateRedisFollowerRedisClusterSTS:CreateRedisClusterSetupCreateOrUpdateStateFulcreateStatefulSetpatchStatefulSetupdateStatefulSet摘要:记录k8s的operator-hub中的redis-operator的redis-cluster的原创 2022-03-16 18:20:47 · 987 阅读 · 0 评论 -
2022-03-16 k8s的operator-hub中的redis-operator的HandleRedisFinalizer处理
摘要:记录k8s的operator-hub中的redis-operator的HandleRedisFinalizer处理时序图:核心函数:// Reconcile is part of the main kubernetes reconciliation loop which aimsfunc (r *RedisReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, ..原创 2022-03-16 17:41:02 · 454 阅读 · 0 评论 -
2022-03-16 k8s的operator的controller创建过程的静态结构和动态结构
目录摘要:静态结构:动态结构:摘要:记录k8s的operator的controller创建过程的静态结构和动态结构, 静态结构为类图, 动态结构为时序图静态结构:动态结构:原创 2022-03-16 14:09:10 · 685 阅读 · 0 评论 -
2022-03-16 k8s的operator接收数据到数据队列的过程
摘要:operator使用多路复用从socket接收数据后写入队列, 由独立的处理协程读出数据处理.本文记录operator读取数据到数据队列的过程调用堆栈:(gdb) bt#0 k8s.io/client-go/util/workqueue.(*Type).Add (q=0xc00007e420, item=...) at /root/work/hello/vendor/k8s.io/client-go/util/workqueue/queue.go:121#1 0x..原创 2022-03-16 11:29:50 · 407 阅读 · 0 评论 -
2022-03-16 k8s的operator的Reconcile执行追踪
目录摘要:调用堆栈:核心函数:sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.goController::StartController::processNextWorkItemController::reconcileHandler摘要:记录对k8s的operator的Reconcile执行追踪调用堆栈:(gdb) bt#0 hello/controller原创 2022-03-16 10:52:49 · 1982 阅读 · 0 评论 -
2022-03-15 使用kubebuilder命令创建operator工程
摘要:记录使用kubebuilder命令创建operator空工程的基本命令步骤:一. 进入go安装的src目录需要根据个人机器情况进入go安装目录的src目录我的目录是cd /usr/local/go/src二. 创建工程名字的文件夹, 例如hello[root@node-201 github]# cd /usr/local/go/src/[root@node-201 src]# pwd/usr/local/go/src[root@node-2..原创 2022-03-15 17:24:40 · 1115 阅读 · 0 评论 -
2022-03-15 关于redis-operator的一些需求摘要
目录摘要:目标:相关调研:中控业务方建议:摘要:记录redis-oprator的相关需求, 对其做分析目标:1)参考业界优势的redis Operator技术,总结对比选型,做到兼听则明。2)以做一流的redis服务为目标,你那些测试例弄的挺好,是这个思路。3)要看细节,要设计好相关调研:KubeVelaocmkarmadadaemonSet存储插件csi去掉multisandbox中控业务方建议:跟原生保持原创 2022-03-15 15:10:56 · 840 阅读 · 0 评论 -
2022-03-14 k8s的oprator的资料搜集
目录摘要:k8s的operator代码生成相关:code-generatorCode Generation for CustomResourceskubebuilder:operator相关:k8s官方controller案例:crd官网说明:crd的yaml基本概念:redis的operator相关:开源社区的redis的operator推荐:摘要:收集在调研和时间operator过程中有价值的资料, 使其他同事可以快速的根据本文的资料进行调原创 2022-03-14 10:55:47 · 1850 阅读 · 0 评论 -
2022-03-11 operator程序启动时连接kube-apis过程
目录摘要:与k8s-apis建立连接过程:核心处理的时序图:具体的函数调用堆栈:核心函数:operator程序启动manager:Newcluster::Newclienlt:NewDynamicRESTMapperrestmapper:NewDiscoveryRESTMapperdiscovery:ServerGroupsAndResources摘要:operator程序在启动时与k8s-apis服务建立连接, 本文记录当operator..原创 2022-03-11 17:37:27 · 1862 阅读 · 0 评论 -
2022-03-11 k8s的operator运行时服务间交互分析
摘要:分析operator程序在运行时与k8s的交互逻辑服务间连接:查看operator程序交互的端口:[root@ccos-autodeploy-14-67 helloworld]# netstat -anp|grep 740141tcp 0 0 127.0.0.1:40296 127.0.0.1:6443 ESTABLISHED 740141/./bin/manage tcp6 0 0 ..原创 2022-03-11 17:07:07 · 474 阅读 · 0 评论 -
2022-03-11 快速上手operator的helloworld工程-操作指南
摘要:为简化新同事上手operator的操作, 制作使用operator的hello world性质的项目.以让不熟悉operator的同事, 能快速且直观的开始使用operator.制作operator项目的方式:使用 kubebuilder 标准规范制作 项目依赖的go模块直接放在项目的vendor文件夹内, 不需额外下载 仅包含基本流程, 便于使用者将注意力集中于operator本身项目地址:项目说明:项目根目录有reade.md...原创 2022-03-11 15:40:14 · 2409 阅读 · 0 评论