自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

翻译 (译)线性一致性 vs 串行化

线性一致性和串行性都是数据库和分布式系统中执行并发操作的重要概念,并且很容易将它们混淆。这篇文章对两者之间的差异进行了简短、简单且实用的概述。

2024-02-12 20:54:52 59

原创 利用k8s Infra 容器,解决pod网络故障注入的问题

我们知道,在kubernetes中,pod中容器的资源隔离主要通过namespace和cgroup来实现。2.通过前面infra容器的前置知识,可以知道infra container是和pod所有容器共享networknamespace的,因此可以直接把故障做在infra容器上,并且infra容器的生命周期是和pod相同的。在给pod注入网络故障,模拟pod网络延迟,丢包的场景下,会出现注入故障的目标container重启,进而导致故障恢复失败,最后只能重启相应pod来恢复故障。

2024-02-04 10:48:32 660

原创 使用event_control监听memory cgroup的内存使用率

如果要在日常使用中监控一个应用程序的内存使用率,定时轮训存在一定的延迟,让我们看看如何做到触发即通知

2023-03-07 17:59:17 178

翻译 (译)Kubernetes 如何控制你的集群

Kubernetes is the most popular container orchestrator by far. Much of its success comes from its reliability. All software has bugs. Kubernetes is somehow less buggy than alternatives when it comes to running your containers.

2023-02-12 17:10:38 162

原创 kubernetes的垃圾回收机制(资源对象删除机制)

k8s中,在删除deployment的时候,deployment从属的replicaset也会被删除,这背后就是垃圾收集器控制器在起作用

2023-01-25 16:31:34 1344

原创 自动生成webhook组件证书

在开发监控operator的时候,如果项目带有webhook功能,如何部署时自动生成证书

2023-01-18 20:17:24 1393 1

原创 device-plugin组件原理介绍

一:device-plugin能做什么:在k8s中使用gpu资源和设备过程中想到如下几个问题:1.如何在不修改k8s任何组件的情况下引入除cpu,memory外的第三方资源2.kubelet在创建docker的时候如何让docker使用到node的gpu资源。3.k8s在调度任务的时候如何识别到第三方资源(上层调度器如何看到底层资源和设备)。针对引入第三方资源的问题,社区给出了解决方案:community/device-plugin.md at master · kubernetes/c

2021-10-06 21:02:13 2194 2

原创 scheduler优选算法中的map-reduce

查看k8s1.16scheduler的代码中发现其中有这么一段代码:pkg/scheduler/core/generic_scheduler.go:730results := make([]schedulerapi.HostPriorityList, len(priorityConfigs), len(priorityConfigs)) // DEPRECATED: we can remove this when all priorityConfigs implement the // M.

2021-09-21 19:11:03 218

原创 使用controller-runtime开发简单的controller

kubebuilder和operator-sdk都是在controller-runtime基础上做了一层封装,如果不需要自定义crd资源,只是使用k8s现有的resource做一些自定义的开发,可以直接使用controller-runtime快速开发。这里我们实现一个对namespace打上label就创建对应的service功能。 首先先初始化一个manager,manager的作用是用来管理controller var namespace string var m...

2021-02-14 17:02:30 2171 2

原创 client-go阅读和使用(三) informer机制

kubernetes并没有使用传统的消息队列来传递消息,而是使用了informer机制来实现各模块间的消息传递,每个资源对象都实现了一套自己的informer,如下图:

2020-08-16 11:06:57 683

原创 由nginx响应时间变大引出的tcp重传和带宽限速问题

test

2020-08-14 14:55:58 1369

原创 client-go阅读和使用(一) Client客户端对象

1.RESTClient客户端最基础的客户端。其他客户端都是基于它实现。ClientSet客户端2.ClientSet客户端最经常使用的客户端。需要提前知道Resource所在的Group和对应的Version信息。 不能直接访问CRD资源。需要通过client-gen重新生成ClientSet才能访问。// Clientset contains the clients for groups. Each group has exactly one// version included in

2020-08-09 20:01:29 1314

原创 使用client-go 之dynamicclient(二)

在开发中碰到一个场景,在一个yaml文件中同时定义了deployment和service两种资源类型(可能还有更多个),

2020-05-15 16:22:38 1957 5

原创 客户端上传文件发生Connection reset by peer: socket write error问题排查

1.问题描述研发在测试环境进行测试,通过内网上传文件能正常收到nginx返回的错误信息,nginx做了30MB大小的上传限制{ "return_code": 20010, "returnDesc": "Request body too large. It should not exceed [30 MB]"}通过走公网域名访问就会报错:java.net.Soc...

2020-02-21 17:21:10 5811

原创 容器网络实验(二):模拟flannel vxlan模式

前置知识: FDB表:Forwarding DataBase,相当于交换机的mac表 实验拓扑 创建vxlan网卡(注意vxlan0的mac地址,后面手动添加arp和fdb表需要用到) host1:ip link add vxlan0 type vxlan id 42 dstport 4789 local 192.168.120.128 dev ens33 ...

2020-01-31 13:23:12 764

原创 容器网络实验(一):模拟docker bridge模式

创建vethpair对ip link add v0 type veth peer name v0_pip link add v1 type veth peer name v1_p加入namespaceip netns add ns1ip netns add ns2ip link set v0 netns ns1ip link set v1 netns ns2分配ip,启动网...

2020-01-28 19:17:47 307

原创 容器化redis-cluster使用(一)集群自身ip变化更新问题

最近把redis-cluster集群迁移到了k8s上后发生了一个问题,当一个pod重启后,java程序报错,连不上redis服务器。我们查看集群状态后发现,当pod重启后,pod的ip发生了改变(我们并没有固定redis-cluster的pod的ip),去非重启pod使用cluster nodes查看集群信息,一切正常,但在重启pod节点查看集群信息,发现集群信息中使用的还是重启前的p...

2019-09-17 10:43:19 9810 3

原创 容器化redis-cluster使用(二)java客户端刷新cluster topology问题

前一篇提到了容器ip变化后集群自发现的问题,现在接着讲这个问题引申出的另两个问题:1.虽然集群ip问题解决了,但java client还是连接报错,似乎连的是老的ip地址。2.当key所在的master挂了,slave切换到master后,java客户端却一直尝试重连,直到超时,并没有随着master的切换去连主拿key。以下代码和例子为环境模拟。集群信息:1...

2019-09-16 22:11:27 6607 2

原创 swarm基本原理以及带来的容器运维

最近公司上了docker,在考虑容器编排工具时,出于上手简单易用的目的,小范围推广了官方的swarm,试用了一段时间后,做了如下总结:一、swarm可以解决的问题1.容器编排问题2.负载均衡问题3.集群管理问题4.应用部署、迭代问题展开:1.容器编排问题关键字:replicas,label,volumereplicas可以控制启动docker实例的数量label可以控制docker实例在哪些节点启...

2018-02-22 17:49:34 1037

转载 shell中的多进程【并发】

根据我个人的理解, 所谓的多进程 只不过是将多个任务放到后台执行而已,很多人都用到过,所以现在讲的主要是控制,而不是实现。先看一个小shell: 看执行结果: 很明显是8s=============================这种不占处理器却有很耗时的进程,我们可以通过一种后台运行的方式来达到节约时间的目的。看如下改进: 用“{}”将主执

2017-03-28 23:19:47 9590 1

原创 记一次keepalived脑裂问题查找

在自己环境做keepalived+redis实验时,当重启了备用redies机器后,发现两台redies主机都拿到了VIP[root@redis2 ~]# ip addr list1: lo: mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2017-03-06 15:47:50 8859 2

原创 django实现局部页面刷新

模块:{% csrf_token %}{{ form.model }}应用:{{ form.application }}{{ form.text }}模仿京东提交表单未登录跳出登陆界面功能,用jquery ajax提交表单来实现。网上有很多类似的代码,我参考了一些代码来实现自己的功能先附上表单

2017-01-09 14:19:10 13765

原创 windows下的session隔离机制以及带来的影响

备存

2016-11-10 09:21:14 3811 1

空空如也

空空如也

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

TA关注的人

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