自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pushme_pli的专栏

记录我的进步,一步一步

  • 博客(65)
  • 资源 (2)
  • 收藏
  • 关注

原创 QPS和Burst, 记录我的一次踩坑

今天又踩一坑。我们开发了有个k8s controller,是基于”Knative/pkg“这个框架的(吐槽下google这帮人,就是不用kubebuild), 其中有一个功能是是指定reconcile的线程数,也就是说有多少个线程来运行reconcile loop。因为我们这个controller 要求吞吐量大,所以定了个比较大的数:100.然后测试,同时并发的创建1000个CR,结果是吞吐量一直上不去,查了查发现奇怪的事情:Workqueue中排队request一直稳定在900左右 在Con

2021-03-12 21:39:24 2687 1

原创 解决golang import private 仓库的问题

今天花了大概两个多小时时间去搞定一个看起来挺简单的问题:import一个位于private repository上的包。比如这样:Import “GitHub.ibm.com/fakegroup/fakeproduce/fakepackage”但是Compile的时候报错了:fatal: could not read Username for 'https://github.ibm.com': terminal prompts disabledOK, 那就enable terminal p.

2021-03-01 20:27:45 1587

原创 K8s 中的Book mark解决了什么问题

这就要从kubernetes各个模块的通信机制说起。List-Watch 是kubernetes中server和client通信的最核心的机制, 比如说api-server监听etcd, kubelet监听api-server, scheduler监听api-server等等,其实其他模块监听api-server相当于监听etcd,因为在k8s的设计中,只有api-server能跟etcd通信,其他模块需要etcd的数据就只好监听api-server了。但什么是List-Watch呢?简单来讲就

2021-02-23 21:53:46 1643

原创 一个不完美的workaround 解决calico-node不ready

今天偶然翻之前一个k8s的环境,居然发现curl 不通worker node上的pod, master上的pod是正常的。 感激翻了翻calico,发现calico node的pod是不ready的,这样:这是一个kubeadm的环境,只有两个node,一个master一个worker,使用的CNI是calico,看了看calico-node-xxxx的情况, 发现event里面有东西:calico/node is not ready: BIRD is not ready: BGP not es

2021-02-17 11:06:02 733

转载 迄今为止看到的讲的做清晰的k8s certificate

感谢指导:https://cloudnative.to/blog/k8s-certificate/

2021-01-15 11:13:54 400

原创 Reconciling的concurrence如何保证同一个对象的request不会被同时处理

最近准备写一个支持concurrent处理request的controller,说白了就是多线程reconcile, 但是一直有个疑问萦绕心头:如果同一个resource的request先后被触发,本应是在队列中先后被reconcile处理,但在concurrence的情况下会不会被同时处理?如果同时处理了,就出问题了。在研究中,发现了一篇文章,多谢指导:https://openkruise.io/en-us/blog/blog2.html其实client-go的队列机制避免了这个问题的发.

2021-01-07 11:31:01 339

原创 一文讲清楚Taints, tolerations, node affinity and pod affinity 和 pod anti-affinity

https://banzaicloud.com/blog/k8s-taints-tolerations-affinities/简单总结:Taints是node的特殊标签,Tolerations是pod的属性,两者相配,pod才能被binding到该node,但是记住是才能,不是一定。所以Taints/Tolerations的使用场景是:不允许不符合条件的pod绑定到某个node。Node Affinity是pod的属性,是用来基于node的label还选择node的。使用场景是把p.

2020-07-17 15:11:19 1002

原创 快速实现基于Kustomize的Operator

Operator最近越来越流行,它是CoreOS推出的旨在管理安装k8s应用的技术框架, 属于devops的范畴,你可以简单理解为一个Installer,熟悉k8s的同学可能马上就会问,那置Helm于何地?你说对了,Operator就是来革Helm的命的!Operator其实说白了就是一个k8s CRD和Controller, 一般都是用Redhat推出的工具:Operator...

2020-01-22 13:53:39 412

原创 一场纠结,事关Microk8s,Alpine和kubedns

事情开始的很简单,并没有显露出日后狰狞的面孔。我试图创建一个k8s的环境,用于测试和学习,选项不多:Microk8s(https://microk8s.io/):Ubuntu安装非常简单 Minikube(https://github.com/kubernetes/minikube):得装一个Hypervisor,kvm或者virtualbox。 Kind (https://githu...

2019-06-09 21:09:09 1396

原创 Knatives实战之Knative-Serving

Knative是google主导的一个opensource项目,主要面向的领域是serverless。今年的google大会基于Knative,google发布了google could run,这也令knative变得炙手可热了。最近玩了玩,总结下,以供后查。项目地址:https://github.com/knative可以看到Knative分了六个子项目,不少了,我们逐一认识:...

2019-05-09 08:35:54 517

原创 k8s CronJobs导致的一次崩溃

最近在玩kubeflow/katib和kubeflow/pipeline 找了个例子, 具体流程是:超参调优(Katib)-- train — serving但是跑着跑着忽然脱了,cluster中多了数百个Error状态的pod,而且数量还在不断增加,这是要crash的节奏啊!赶紧抓了一个pod describe看了看,发现这个: - apiVersion: batch/v1...

2019-03-22 10:45:32 1413 2

原创 在http_proxy背后的Ubuntu 16.04 安装microk8s

手头刚好有台Ubuntu, 决定装个microk8s玩玩, 没想到还挺曲折,记录下来以备后查。因为这台Ubuntu没有接到Internate上,所以得使用http_proxy,因为涉及到的软件众多,proxy的设置也很麻烦: 为command line设置代理: export http_proxy = http://${ip}:3128 export h...

2019-03-18 22:57:00 2281

原创 实战,在Kubeflow中启动Jupyter notebook(续)

上篇:https://blog.youkuaiyun.com/pushme_pli/article/details/88524393续上篇,上次启动了Jupyter Nodebook的server,但是在PV的建立上有点死板。记得Jupyter Nodebook登录界面是用任何用户都可以登录的对吧,但在昨天的实现中,如果你用其他用户登录,然后Spawn一个server是铁定不会成功的,原因是没有PV给你用...

2019-03-14 21:08:30 1951 2

原创 实战,在Kubeflow中启动Jupyter notebook

写了一篇本篇的续,可以自动创建PV:https://blog.youkuaiyun.com/pushme_pli/article/details/88561261今天装好了Kubeflow,准备玩一个E2E的case。 按照Kubeflow的设计,它拥有全生命周期的ML/DL的开发和部署,也就是说囊括了模型编写 ---模型训练 — 超参搜索 — infrerence部署等全流程的支持,我决定试一试,...

2019-03-13 09:18:50 3401 3

原创 Kubeflow UI https之暴露

最近接了任务,希望能把Kubeflow的GUI集成在我们的产品中。玩了玩Kubeflow, 看了看它的UI,确实非常之简陋:另外,这个UI以http发布的,问题来了,我们的GUI是https的,要知道在https的页面中是没有办法发出http的请求的!Google了下,最基本的方案是在在kubeflow UI前放一个https的proxy,比如nginx.恰好我们的产品是基于k...

2019-03-11 22:25:46 2098

原创 使ESXi的VM支持虚拟化

今天想装个minikube,手头有一台VM, 装完了启动:minikube start --vm-driver kvm2 --cpus 4 --memory 8096 --disk-size=40g报错:invalid argument: could not find capabilities for domaintype=kvm查了下,有人说可能是VM不支持虚拟化,扶额,居然忘了这...

2019-02-21 09:01:36 1362

原创 Spring oauth2的token timeout(修改之前不完美的方案)

上一个方案:https://blog.youkuaiyun.com/pushme_pli/article/details/86502499今天上文提到的实现token timeout的解决方案出了问题:在同时发送若干个request的时候产生了异常,非常常见的JDBC DuplicateKeyException因为使用了Spring oauth2的JdbcTokenStore(https://docs...

2019-02-19 17:02:43 2983 1

原创 JPA Entity与DB之间的映射

最近在捣鼓JPA和mysql,发现JPA的Entity class和DB的table,column之前的mapping一直没弄明白,记录下,以供后查:首先,有两个概念:逻辑名字(logical Name)       Java Entity和Attribute在JPA中的命名(明白在Java class中的名字可不是JPA中的名字,JPA很傲娇啊)物理名字(Physic Name)...

2019-02-05 10:58:37 976

原创 使用JPA在mysql一个column中存储多个字符串

最近捣鼓了下Spring boot和mysql,不可避免的用到了JPA,怎么说呢,快速开发挺好的,但确实有坑,记录下,以供后查。 一个需求是在mysql的一个column,名为tags中存储多于一个的字符串。这个字段前端是以JSON array形式上送到server,而在server端(spring boot)的domain类中是:private List<String&g...

2019-02-03 18:25:37 3551

原创 Spring oauth2的token timeout

这几天绕了一个大圈子,内容其实很简单,想为后台基于Spring boot, Spring oauth2的应用加上session timeout的功能。整个应用架构比较简单:UI 基于Spring oauth2的auth service 基于Spring boot的service众所周知,oauth2下是使用token作为认证的凭证, 基本流程是这样的:上图所示模块跟我们架构中...

2019-01-16 10:01:16 2662 1

原创 RabbitMQ, Kafka和Pulsar (三)

接上两篇:RabbitMQ, Kafka和Pulsar (一)RabbitMQ, Kafka和Pulsar (二)今天我们看看PulsarPulsar算是非常新的一个挑战者,目标直指Kafka。官网的文档挺完善的,整个项目主要是用Java完成的,但因为比较新,所以网上很难找到有价值的讨论和问题的解决。其实对比Pulsar和Kafka,就目前来看,很难看出优势在哪里,按照一般的理...

2019-01-08 08:57:47 2204 1

原创 RabbitMQ, Kafka和Pulsar (二)

接上篇:RabbitMQ, Kafka和Pulsar (一)我们用Kafka试试同样的需求。之前提到Kafka天生支持消息存储和回看,Kafka中的概念有:Producer: 消息生产者 Topic: 接受Producer产生的消息,存储消息,每个Topic下都会有若干Partition。 Partition: 是Topic下的概念,是一个有序的存储队列,唯一的作用是增加Topic...

2019-01-07 09:21:56 936

原创 RabbitMQ, Kafka和Pulsar (一)

因为要引入Notification机制和log的监控和查看,大概率是需要MQ这类工具,所以研究了下目前比较火热的开源的MQ软件:Rabbit MQ, Kafka还有Pulsar.其实这三个软件虽说都适合MQ的场景,但是其实侧重点有很大的不同.RabbitMQ: 是AMQP(Advance Message Queuing protocol)的实现,是典型的消息中间件产品。它的特点是富br...

2019-01-06 11:47:17 4413

原创 父子进程间,环境变量的继承

项目中用shell脚本启动了一个java daemon, 本想着在java代码中可以使用profile中定义的变量:CONF_DIR,却得到了个空。挺奇怪,模糊记得父子进程间环境变量是继承的啊,按照这个逻辑:linux profile —> shell —> java daemon 是父子的关系,profile中有的环境变量应该一层一层被传递到java daemon啊?稍微...

2018-12-27 09:32:40 3505

原创 Spring auth2的权限控制表达式遇到的问题

下午花了时间探索了下Spring security中的权限控制表达式, Spring在version 3.0的时候引入了EL表达式,并内置了一些。这些表达式在定义方法级别的权限控制时非常有用,感受一下:在Spring Security中有四个annotation支持EL表达式:@PreAuthorize, @PreFilter, @PostAuthorize 和@PostFilter....

2018-12-26 17:07:13 875

原创 如何让命令继续运行,当关闭console后

昨天下班的时候听同事抱怨用ssh登录远端linux,运行一个命令,没想到花费时间超出预期,到下班还没结束,又不能关掉console,否则命令就terminate了。想了想这方面的知识,nohup, &等等,查了下以备后用。首先,当关掉console或者因网络故障console断开,远端linux就会收到一个HUP(hangup)信号,然后linux就会关闭之前连接(tty)以及它的...

2018-12-21 09:42:12 2856

原创 Epoch 和 Batch

今天在看keras的文档的时候看到行代码:model.fit(x_train, y_train, epochs=5, batch_size=32)epochs和batch_size, 忽然有点迷糊,知道是两个很重要的hyper parameter, 具体指什么想不起来了,赶紧查了下,以备后用。依然是几个重要的名词:Batch size,Epoch这两个参数是SGD中的超参,假定...

2018-12-19 13:26:24 419

原创 Deep Learning, Score function, Loss function 和 optimization function(三)

接上篇......Optimization之前提到Loss函数用于衡量估计值(scrore)和真实值(label, 如鸟, 猫啊)的差距(Loss),这个估计值是基于某个W(weight)然后代入score函数算出来的。而Optimization函数是用来寻找一个更好的W能让loss尽可能的低。其实就是用于寻找一个更合理的W,目的是让Loss尽可能的低,这样就更接近真实值。对这种情形在...

2018-12-18 09:48:57 499 1

原创 通过配置http proxy解决websocket不能连接的问题

前两天玩websocket除了问题,我把解决的过程写成了一片博客:https://blog.youkuaiyun.com/pushme_pli/article/details/84891838其中提到关键问题是使用了http proxy:http-proxy-middleware,后来解决的方法是不用proxy了,这只是避开了这个问题,仔细研究了下,可以通过proxy配置的方法解决这一问题。...

2018-12-11 14:12:52 15090 1

原创 实现websocket使用sockjs和stomp遇到的问题

今天在捣鼓websocket的时候遇到了麻烦,本想着比较简单就照着Spring boot给的教程:https://spring.io/guides/gs/messaging-stomp-websocket/没想到client端怎么都连不到server端,刚看到console中打出来:Web Socket Opened...接着没多久就报错:Whoops! Lost connec...

2018-12-08 13:26:53 9182 1

原创 Https原理的简单描述

对Https的原理有点不清楚,研究了下,总结如下,首先是几个关键字:Certification, RSA, Symmetric key Https使用了SSL/TSL通信协议来实现互联网上的通信加密。SSL(Secure Sockets Layer)是TSL(Transport Layer Security)的前身,已经没了十几年了。 Https的请求在发起真正的数据交...

2018-12-05 17:28:06 508

原创 Deep Learning, Score function, Loss function 和 optimization function(二)

接上篇......我们先看看SVM,要loss小,SVM希望正确分类的得分要至少比所有不正确分类的得分都高个固定的分数△(比如高个10分),如果达到了这个要求loss就是0,看看公式吧:其中s是score的缩写,表明得分,j是每一个分类(比如猫类,车类)而yi则是正确的分类,注意j≠yi。 这个公式的意思就是说:将每一个分类的得分减去正确分类的得分再加上一个固定分,然后在跟0比...

2018-12-03 20:25:58 553 1

原创 Deep Learning, Score function, Loss function 和 optimization function(一)

最近接触了深度学习(Deep Learning),觉得挺困难的,主要困难在跟数学搅和在了一起,天知道大学时候的数学基础还有多少没有交给老师,很费劲。现在总结下深度学习入门的几个基本概念,以供后查。放一个wikipedia关于Deep Learning的定义镇楼:https://en.wikipedia.org/wiki/Deep_learning因为深度学习使用场景是在是太多,为了...

2018-11-28 16:40:28 1849

原创 Makefile include 遇到的小问题

项目中有个Makefile, 但是调用 make 不跟任何参数时候执行了一个奇怪的target, 这个target并没有出现在当前的Makefile中,而根据本Makefile的意图,它是想在不跟任何参数时执行一个叫做rpms的target:摘自Makefile:.PHONY: rpmsdefault: rpms仔细查看了一遍Makefile发现在文件的开头有这么一句代码:include $(T...

2018-04-10 19:09:09 1148

原创 web-fragment 中的执行顺序

最近在一个decouple的项目中引入了web-fragment.xml,  遇到了一些问题,比较好玩,记录下。web-fragment.xml 是servlet 3.0 以后引入的,它也是用来提供web部署描述的,功能上跟web.xml是一模一样的。不一样的地方是web-fragment.xml是在WEB-INF/lib/下的jar中。 想想就知道好处在哪里了,这样一来,多个模块的web部署就可...

2018-03-29 23:28:13 1647 1

原创 令人迷惑的Promise chain

最近看一段javascript代码,越看越奇怪,虽然最后问题解决了,但是这段奇怪的代码一直萦绕在我心头,是使用了Promise Chain的代码,今天终于找了点时间,大概了解了下,现在记录下来以备后用。什么是Promise字面意思是“承诺”, 官方定义是表示:一个异步事件的完成(失败)以及这个事件的结果。建议看看MDN's Promise docs,有助于形成一个完整和正确的认

2018-01-24 10:38:39 614

原创 一只乌龙,关于systemd的

今天一个同事告诉我遇到了一个问题:有一系列的sh和golang写的脚本,相互之间是通过stdout传递结果,在手工调用的时候工作良好,但是在托管给systemd的时候却不工作。怀疑是systemd截取了stdout,导致程序失败。这个怀疑不无道理,因为在systemd的配置文件中有个很可以的配置项: StandardOutput=journey, 顺便贴出来官网对这个字段的解释:Sta

2018-01-15 21:57:44 1820

原创 Http session和cookie有什么区别

Session是什么,cookie又是什么

2017-12-20 14:41:45 661

原创 如何 repack 一个RPM包

最近接到一个需求:通用的支持 repack 一个RPM包。这个需求乍一看并不困难,但是仔细一想,发现有阴谋的味道^_^先了解下RPM包的基本知识。RPM这种格式的文件最初是Redhat 公司发明的,于1997年,现在使用并不局限于Redhat,其他很多linux发行版本都可以使用甚至Ubuntu。Build一个RPM 包需要(1)准备.spec文件,(2)使用rpmbuild这个工

2017-12-16 11:11:31 1316

原创 冷门:Dojo Gridx中,如何编写一个module

DOJO 是一个开源的 Javascript 开发框架,最近版本是1.9,类似的还有大名鼎鼎的Jquery, YUI 等等。 因为工作的原因最近接触了这个框架,奇怪的是好像在业界DOJO并不流行,网上资料也较少,只有IBM在大力的推动,看来效果也是差强人意,感觉是个冷门的玩意。经过几天的接触觉得这个DOJO还不错,有很多值得推荐的地方。1. 模块化:Dojo的库都做成了一个一个的模块,类似ja

2014-01-16 23:12:06 2887

awk完全教程

无比强大的AWK,学会了就是牛人了!20字够了吗?

2012-03-19

python 三方库 win32file的API

可以为所欲为的操作windows,爽 学点python吧,好处多多!!!

2012-03-01

空空如也

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

TA关注的人

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