自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (5)
  • 收藏
  • 关注

原创 Scheduler-Framework中的Permit使用和注意事项

解释Scheduler-Framework的介绍现在也比较多了,这篇文章假设您已经了解Scheduler-Framework的框架和每个扩展点的作用。如果想全面了解,可以参阅:《浅谈 Kubernetes Scheduling-Framework 插件的实现》《自定义 Kubernetes 调度器》《kube-scheduler》接下来,我们就重点说说PermitPermitPermit用户阻止或者延迟与Node绑定,属于Binding Cycle阶段,就是说,此时Permit已经经过了预选

2020-05-27 18:29:21 501 1

原创 踩坑client-go for kubernetes乐观锁

直接上一段代码func (po *PreOccupy) SetPodAnnotation(pod *v1.Pod) error { clientSet := po.Handle.ClientSet() if _, ok := pod.Annotations[OccupyExpireTime]; ok { pod.Annotations[OccupyExpireTime] = "" } if _, ok := pod.Annotations[OccupyKilled]

2020-05-19 17:03:52 1579

原创 基于“OneBuild”方法对镜像进行快速装箱

在云原生领域,无论使用哪种编排调度平台,Kubernetes,DockerSwarm,OpenShift等,业务都需要基于镜像进行交付,我们在内部实践“Source-to-image”和链式构建,总而总结出“OneBuild”模式。其核心思想是:一处构建,多处使用。

2024-02-19 18:21:00 864 1

原创 02 Uber Go 语言编码规范 - 指导原则 - interface 合理性验证

在开发interface时,要对interface的合理性进行验证,在编译时验证接口的符合性。这包括:将实现特定接口的导出类型作为接口API的一部分进行检查实现同一接口的(导出和非导出)类型属于实现类型的集合任何违反接口的合理性检查的场景,都会终止编译,并通知给用户补充:以上3条是编译器对接口的检查机制,大体意思是错误的使用接口会被编译器报错。所以可以利用这个机制让部门问题提前暴露。源代码// 如果Handler没有实现http.Handler,会在运行时报错type Handler st

2020-10-30 17:30:44 184

原创 02 Uber Go 语言编码规范 - 指导原则 - 指向 interface 的指针

首先,在规范中,我们建议和倡导,保存时运行goimports和gofmt,如果

2020-10-29 15:09:59 212

原创 01 Uber Go 语言编码规范 - 介绍

Uber Go 语言编码规范学习分享01-开篇介绍02-指导原则103-指导原则204-性能05-规范106-规范207-编程模式08-图说设计模式09-写在最后

2020-10-29 14:38:22 182

原创 原生scheduler-framwork调度插件详细

图插件详细说明

2020-09-17 17:51:08 200

原创 使用git reset进行多commit合并

在开发分支下,往往会有多次提交,可能是feature,也可能是bugfix,如果git管理员基于commit进行打tag,这就比较麻烦,所以在打tag之前,最好把相似或者针对同一个feature/bugfix的多次提交进行合并。工具 git reset使用git reset开始合并首先通过git log找到当前分支的你想要合并的commit 991b88a8be945952c5b83b9e290f65d05c9d0bddAuthor: R1 <123456@abc.com>Date

2020-09-16 16:06:56 1171

转载 Kubernetes v1.19 正式发布

Kubernetes v1.19 正式发布本周 Kubernetes v1.19 正式发布,这是今年发布的第二个版本,也是耗时最长的一个版本。在此版本中有 34 个增强功能,其中 10 个GA,15 个 beta 以及 9 个 alpha。并且从 v1.19 开始,Kubernetes 每个版本的支持周期延长至 1 年。(感谢[ Long Term Support (LTS) working group ](https://github.com/kubernetes/community/tree/mas

2020-08-31 10:29:52 835 1

原创 Kubernetes Controller Manager 代码梳理

ControllerManager同样作为集群的一个大脑,负责集群内的Node,资源控制器,副本数管理,NameSpace,ServiceAccount、资源配额等管理,维护集群的状态。ControllerManager通过APIServer来获取整个集群的状态,确保所有node都处于预期的工作状态。ControllerManager一般和APIServer、Kube-Scheduler部署在同一台机器上。也可以单独部署。ControllerManager一般有两个部分组成,kube-controller

2020-08-19 16:27:11 266

原创 kube-scheduler 调度中的流氓兔 - preempt

preempt 作用这兔子在pod调度失败后,在没有禁用抢占调度的情况下,开始了“流氓式”的调度。它的作用是抢占低优先级的pod,如果成功了,那么就更新pod spec,返回nodename。func (sched *Scheduler) preempt(ctx context.Context, prof *profile.Profile, state *framework.CycleState, preemptor *v1.Pod, scheduleErr error) (string, error

2020-08-14 17:49:07 211

原创 kube-scheduler组件代码走读

基于v1.18.5版本组件作用kube-scheduler组件负责将pod调度到合适的节点上,在调度过程中,整体分为优选和预选两个阶段。其在集群中存在的作用,相当于集群另外一个大脑。组件源码入口package mainimport ( "math/rand" "os" "time" "github.com/spf13/pflag" cliflag "k8s.io/component-base/cli/flag" "k8s.io/component-base/logs" _ "k

2020-08-14 16:29:30 354

原创 kubelet 创建容器源码过程

在创建容器,会执行kubernetes\pkg\kubelet\kuberuntime\kuberuntime_manager.go中的SyncPod方法,该方法的整体做的事情是:计算需要创建或者删除的pod个数;如果sandbox容器发生改变则杀掉重来;删掉不需要在pod中维持或者保留的containers;创建一个sandbox容器;创建临时容器;创建初始化容器;创建正常的容器;更新容器资源。首先看computePodActions // Step 1: Compute sand

2020-08-13 17:04:32 244

原创 kubelet启动过程代码走读

kubelet启动过程分析基于1.18.5入口入口文件kubernetes\cmd\kubelet\app\server.go中的startKubelet是完成初始化之后,开始对pod进行管理的入口,从方法看,startKubelet不断调用k.Run方法,不断的同步信息。func startKubelet(k kubelet.Bootstrap, podCfg *config.PodConfig, kubeCfg *kubeletconfiginternal.KubeletConfigurati

2020-08-12 20:11:02 265

原创 kubernetes scheduler genericScheduler findNodesThatPassFilters思路整理

代码作用查找能够满足filter过滤插件的节点,返回结果有可能是0,1,N// findNodesThatPassFilters finds the nodes that fit the filter plugins.func (g *genericScheduler) findNodesThatPassFilters(ctx context.Context, prof *profile.Profile, state *framework.CycleState, pod *v1.Pod, status

2020-08-07 14:38:24 130

原创 The subversion command line tools are no longer provided by Xcode.

今天使用svn,发现cli直接提示错误,“The subversion command line tools are no longer provided by Xcode.”wxf@mbp_15 ~ % svnsvn: error: The subversion command line tools are no longer provided by Xcode.版本:macos 10.15.5 catalina解决办法:wxf@mbp_15 ~ % sudo rm -rf /Library/

2020-06-05 15:04:54 9151 7

原创 kubernetes 生产可用部署方案架构图

2020-06-04 15:59:56 947

转载 12-Factor

一份基准代码(Codebase),多份部署(deploy)12-Factor应用(译者注:应该是说一个使用本文概念来设计的应用,下同)通常会使用版本控制系统加以管理,如Git, Mercurial, Subversion。一份用来跟踪代码所有修订版本的数据库被称作 代码库(code repository, code repo, repo)。在类似 SVN 这样的集中式版本控制系统中,基准代码 就是指控制系统中的这一份代码库;而在 Git 那样的分布式版本控制系统中,基准代码 则是指最上游的那份代码库。

2020-05-28 17:11:52 251

全数新零售业务介绍.pdf

全数新零售业务介绍.pdf

2020-06-05

QTP:动态加载对象库

QTP脚本,动态加载对象库,无需再将对象库进行关联,该对象库脚本开始执行加载,脚本执行完毕后释放。注意:动态加载脚本时,对象库不能在副对象库加载,否则报错。

2013-02-26

Wisdom-soft ScreenHunter 5 Free,免费截图

这个软件是在工作中无意发现的,很好用。分享给大家

2011-03-31

C#.net分页功能

C#手写分页功能,手写,欢迎分享!用存储过程实现。

2010-04-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除