![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Cloud
文章平均质量分 66
pushme_pli
这个作者很懒,什么都没留下…
展开
-
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 · 2471 阅读 · 1 评论 -
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 · 1461 阅读 · 0 评论 -
一个不完美的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 · 667 阅读 · 0 评论 -
迄今为止看到的讲的做清晰的k8s certificate
感谢指导:https://cloudnative.to/blog/k8s-certificate/转载 2021-01-15 11:13:54 · 373 阅读 · 0 评论 -
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 · 293 阅读 · 0 评论 -
一文讲清楚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 · 422 阅读 · 0 评论 -
快速实现基于Kustomize的Operator
Operator最近越来越流行,它是CoreOS推出的旨在管理安装k8s应用的技术框架, 属于devops的范畴,你可以简单理解为一个Installer,熟悉k8s的同学可能马上就会问,那置Helm于何地?你说对了,Operator就是来革Helm的命的!Operator其实说白了就是一个k8s CRD和Controller, 一般都是用Redhat推出的工具:Operator...原创 2020-01-22 13:53:39 · 355 阅读 · 0 评论 -
一场纠结,事关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 · 1321 阅读 · 0 评论 -
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 · 452 阅读 · 0 评论 -
在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 · 2208 阅读 · 0 评论 -
k8s CronJobs导致的一次崩溃
最近在玩kubeflow/katib和kubeflow/pipeline 找了个例子, 具体流程是:超参调优(Katib)-- train — serving但是跑着跑着忽然脱了,cluster中多了数百个Error状态的pod,而且数量还在不断增加,这是要crash的节奏啊!赶紧抓了一个pod describe看了看,发现这个: - apiVersion: batch/v1...原创 2019-03-22 10:45:32 · 1324 阅读 · 2 评论 -
实战,在Kubeflow中启动Jupyter notebook
写了一篇本篇的续,可以自动创建PV:https://blog.csdn.net/pushme_pli/article/details/88561261今天装好了Kubeflow,准备玩一个E2E的case。 按照Kubeflow的设计,它拥有全生命周期的ML/DL的开发和部署,也就是说囊括了模型编写 ---模型训练 — 超参搜索 — infrerence部署等全流程的支持,我决定试一试,...原创 2019-03-13 09:18:50 · 3320 阅读 · 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 · 1985 阅读 · 0 评论 -
实战,在Kubeflow中启动Jupyter notebook(续)
上篇:https://blog.csdn.net/pushme_pli/article/details/88524393续上篇,上次启动了Jupyter Nodebook的server,但是在PV的建立上有点死板。记得Jupyter Nodebook登录界面是用任何用户都可以登录的对吧,但在昨天的实现中,如果你用其他用户登录,然后Spawn一个server是铁定不会成功的,原因是没有PV给你用...原创 2019-03-14 21:08:30 · 1841 阅读 · 2 评论