自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 linux cgroup、kubernetes limit

linux cgroup、kubernetes limitCgroups功能的实现依赖于四个核心概念:子系统、控制组、层级树、任务。kubernets设置limit最终设置在了哪里

2023-01-11 16:12:51 111

原创 kubelet源码分析 housekeeping 定时清理

kubelet源码分析 housekeeping 定时清理。housekeeping定时清理所有pod,两秒触发一次清理

2023-01-10 15:21:57 258

原创 kubelet源码分析 syncLoopIteration(二) plegCh、syncCh

kubelet源码分析 syncLoopIteration(二) plegChconfigCh、syncCh、plegCh管道的由来和执行流程

2022-12-16 17:30:22 425

原创 kubelet源码分析 syncLoopIteration(一) configCh

kubelet源码分析 syncLoopIteration函数有四个chan管道。分别是configCh、plegCh、syncCh、housekeepingCh。这篇主要聊一下这四个管道的由来。

2022-12-16 16:25:06 355

原创 kubelet源码分析 添加 pod

kubelet源码分析,添加新的pod,syncpod,addPod

2022-12-01 17:21:41 315

原创 kubelet源码分析 更新/调谐/移除/探针 pod

kubelet源码分析 kubelet.go更新/调谐/移除/探针 pod updatePod

2022-11-25 17:59:52 384

原创 kubelet源码 删除pod pod_workers.go(三)

kubelet源码 pod_workers.go分析

2022-11-24 17:02:42 570

原创 kubelet源码 删除pod pod_workers.go(二)

kubelet源码 删除pod(二)

2022-11-22 14:49:58 248

原创 kubelet源码 删除pod(一)

kubelet删除pod源码分析

2022-11-22 14:41:53 374

原创 dlv调试kubelet

dlv调式kubelet

2022-11-22 14:35:15 170

原创 controller-informer

informer流程

2022-11-22 14:33:05 221

原创 SSL/TLS 协议过程

概念:SSL/TLS 协议位于网络 OSI 七层模型的会话层,用来加密通信一、对称加密和非对称加密1.加密概念A想对B说我喜欢你,这时候C在中间截获了数据,改成了我不喜欢你发送给了B。这样就会导致数据的破坏2.对称加密A和B都通过公钥的方式进行数据传输。A讲要发送的“我喜欢你”通过公钥加密成一股密文发送给B,B在通过公钥解密密文进行传输。这时候如果第三方C用户在中间截取了公钥,就会跟上面一样,随意更改密文传送给C,所以有了非对称加密3.非对称加密非对称加密是用B给A的公钥进行加密,解密只

2022-04-20 14:55:08 614

原创 go 使用configmap通过自建抢占式锁实现 主备

组件背景程序内已经使用了k8s的client端,为了减少其他组件的依赖,所以不使用redis和etcd。采用configmap实现。因为configmap没有锁机制,所以要自己写这个机制,同样ttl机制也需要代码实现。通过corn定时任务,每50秒所有组件抢占一次锁,如果原有leader是default或已经50秒没有更新ttl时间。则进行抢占。否则退出此次任务。每20秒进行一次ttl的更新。确保主一直在工作,同时有备进行争抢。需要实现的功能抢占式锁主备ttl检查每次验证后确保服务只启动一个,

2022-03-22 16:49:17 351

原创 TCP为什么三次握手四次挥手

TCP为什么三次握手四次挥手。为什么不是四次握手或者五次挥手TCP 中的连接是什么,我们简单总结一下:用于保证可靠性和流控制机制的信息,包括 Socket、序列号以及窗口大小叫做连接。所以,建立 TCP 连接就是通信的双方需要对上述的三种信息达成共识,连接中的一对 Socket 是由互联网地址标志符和端口组成的,窗口大小主要用来做流控制,最后的序列号是用来追踪通信发起方发送的数据包序号,接收方可以通过序列号向发送方确认某个数据包的成功接收1.为什么三次握手三次握手只是tcp中的约束,原因为了解决三个问

2021-08-04 10:34:03 207 1

原创 虚拟内存介绍

**虚拟内存**操作系统中的 CPU 和主内存(Main memory)都是稀缺资源,所有运行在当前操作系统的进程会共享系统中的 CPU 和内存资源,操作系统会使用 CPU 调度器分配 CPU 时间并引入虚拟内存系统以管理物理内存。虚拟内存就是物理内存的一种映射。每个进程在创建时都会绑定一块虚拟内存,需要访问内存时需要虚拟内存的翻译映射到物理内存。如果操作系统发现访问的数据不再内存中,操作系统将以页的方式将数据加载到内存。虚拟内存的三个关键作用:缓存,隔离权限,进程独立1.缓存可以理解为虚拟内存

2021-08-04 09:37:06 244

原创 golang GC垃圾回收机制

**golang GC垃圾回收**垃圾回收(Garbage Collection,简称GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的对象,让出存储器资源,无需程序员手动执行。Golang中的垃圾回收主要应用三色标记法,GC过程和其他用户goroutine可并发运行,但需要一定时间的STW(stop the world),STW的过程中,CPU不执行用户代码,全部用于垃圾回收,这个过程的影响很大,Golang进行了多次的迭代优化来解决这个问题。一、Go 历史各个版本在 GC 方面的改进

2021-08-03 13:50:12 305

原创 tp5 oss上传

**tp5 oss上传**1进入项目后,安装扩展composer require aliyuncs/oss-sdk-php2.上传文件 public function upload(){ // 获取表单上传文件 例如上传了001.jpg $file = request()->file('image'); // 移动到框架应用根目录/public/uploads/ 目录下 $return =['Code'=>'','Msg'=>''];

2021-05-26 11:03:14 152

原创 php 冒泡排序,插入排序,快速排序,计数排序,反转链表

冒泡排序,插入排序,快速排序。反转链表1.冒泡排序复杂度o(n²),稳定排序,原地排序不需要额外空间从第一个数据和下一个数据比较,如果第一个大于第二个,进行交换。以此类推$arr = ['1', '5', '6', '3', '2', '4', '4', '7', '8', '2']; for ($i = 0; $i <= count($arr); $i++) { for ($j = 0; $j <= 5 - $i - 1; $j++) { if

2020-12-18 14:20:14 198

原创 dockerfile编译安装php74+nginx1.17+supervisord启动

dockerfile编译安装php74+nginx1.17+supervisord启动一些注意事项 注:纯属个人理解1.使用过镜像生成容器,在commit生成镜像,这样的做法闲的臃肿,切无法在镜像启动时候使用一些命令2.docker是后台运行,所以docker里的服务不可以后台运行,应设置前台运行,只要保证服务的生命周期和docker声明周期一样即可保持运行3.dockerfile就是linux下安装过程的命令复制到dockerfile中好下面直接上dockerfile1.Dockerfile(

2020-12-10 15:19:43 906 3

原创 编译安装php7.4+nginx1.17

编译安装php7.4和nginx1.17. php-fpm.sock监听系统环境centos71.设置时区ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime2.下载wget工具yum -y install wgetyum -y :-y代表全部输入y安装(否则安装时一步已输入y)3.下载php74wget https://www.php.net/distributions/php-7.4.0.tar.gzemm这个过程…漫长的

2020-12-10 14:53:09 498

原创 php验证是否为图片

**php验证是否为图片**需求:前端传过来个图片/语音/视频。存到同一个表。他那里直接传给我路径,后端判断是什么格式需要到函数substr:substr() 函数返回字符串的一部分。strrchr:搜索 “” 在字符串中的位置,并返回从该位置到字符串结尾的所有字符:strpos:查找 “” 在字符串中第一次出现的位置:1、先获取到传过来的路径,进行遍历(伪代码)$file = 接受到的路径foreach ($file as &$row) { $types = '.gif

2020-05-19 14:45:11 231

原创 php无限极分类(导航多级分类)代码+表设计

php无限极分类(导航多级分类)代码+表设计昨天参加个很期待的公司的面试,虽然我博客链接写在了简历上,没想到面试官竟然看了。本来写博客是为了自己记忆更深。现在更有了写点滴的想法。前几天优化一个导航的无限极分类,正好分享一下1.提供了两个接口。第一个为最上层导航。第二个为各级子导航。2.面向对象过程编写。控制器调用服务器层,服务层调用模型层。3.因为想到服务器的优化,所以采用了微服务设计。...

2020-04-14 14:11:16 1214

转载 CDN是什么意思 CDN加速服务有什么功能和作用?

看了服务器的优化,关注到了CDN,不是很了解。转载了一篇感觉不错的文章CDN一词相信很多朋友都不会陌生,网上也经常会看到相关报道。前段时间各大CDN服务商响应总理号召,CDN也都提速降费,像网宿CDN,阿里云CDN都有不小的降价幅度,很多站长都知道CDN加速可以加速网站的打开速度及用户下载资源的速度,而同时也有不少小白朋友还不清楚CDN是什么?有什么用?它是如何实现加速的呢?接下来脚本之家小编将...

2020-04-10 14:10:10 539

原创 windows下安装 swoole

**windows下安装 swoole Cygwin安装swoole**swoole 是php 的扩展,只支持在Linux 下,所以在window 下需要 安装cgywin,Cygwin是一个在windows平台上运行的类UNIX模拟环境cgywin 地址:http://www.cygwin.com/。这里注意下载对版本swoole 地址:https://github.com...

2020-04-01 13:04:08 3042 1

原创 php操作redis实现朋友圈投票

php操作redis实现朋友圈投票案例需求1:每人每天可投票一次2:有固定的被投票人实现1.新建一个vote类,有user投票人和vote被投票人两个变量use think\cache\driver\Redis;class Vote{ public $user;//投票者 public $vote;//被投票者 function __construct...

2020-03-19 16:33:00 13575

原创 docker使用dockerfile创建镜像

docker使用dockerfile创建镜像1、创建一个dockerfilemkdir Dockerfilecd Dockerfiletouch Dockerfilevi Dockerfiletouch demo1.txtvi demo1.txt创建一个dockerfile文件夹,同时创建一个Dockerfile文件,把下面内容写入到DockerfileFROM nginxM...

2019-12-27 17:19:34 3053

原创 docker安装redis

**docker安装redis**1、拉取redisdocker pull redis:latest2、查看是否安装docker images3、启动redis容器docker run -itd --name redis-demo -p 32771:6379 redis我的6379端口已经使用,所以映射到了32771端口,注:安全组要放行端口4、进入redisdo...

2019-12-26 16:53:41 2919

原创 Redis 持久化之RDB和AOF

**Redis 持久化之RDB和AOF**Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识持久化。RDB 详解RDB 是 Redis 默认的持久化方案...

2019-12-24 16:20:09 13888

原创 tp5 读取/下载 excel文件内容

tp5 读取/下载 excel文件内容1、下载一个excel模板导出函数/** * 创建(导出)Excel数据表格 * @param array $expTableData 要导出的数组格式的数据 * @param string $expTitle 导出的Excel表格数据表的文件名 * @param array $expCellName $list数组中与E...

2019-12-24 11:23:35 4353

原创 workerman 进行tcp和http双向连接

workerman 进行tcp和http双向连接本来想采用GatewayWorker来完成的,最后还是想写简单一点。用workerman进行和智能设备的tcp长连接和http的短连接。场景需求。小程序端传给服务器开启设备或调节温度等操作。服务器和小程序http短连接,拿到信息后与设备进行tcp长连接。1、建立tcp连接protected $socket = 'tcp://0.0.0.0:2...

2019-12-20 15:37:17 20768

原创 GatewayWorker流程

GatewayWorker流程手里的项目遇到个需求,就了解了一下GatewayWorker。本来打算用这个了,但是最后还是选择了workerman。简单说一下GatewayWorker流程吧因为项目需求用的php做设备通信。设备客户端使用tcp进行长连接。还要和小程序的应用层进行http连接。所以最初选择GatewayWorker。因为GatewayWorker用于快速开发TCP长连接应用,可...

2019-12-20 13:45:55 3328

原创 MongoDB 增删改查(三)

MongoDB 增删改查(三)聚合查询mongodb自带了一个聚合功能,使用聚合功能,可以直接让mongodb来处理数据。聚合功能可以把数据像放入传送带上一样,先把原始的数据哪找一定的规范进行筛选处理。然后通过多个不用的数据处理阶段来处理数据,最终输出一个汇总的结果。1、聚合的基本写法局和操作的命令式aggregatedb.demo.aggregate([{"$match":{"gend...

2019-12-19 20:00:03 2030

原创 MongoDB 增删改查(二)

MongoDB 增删改查(二)上一篇写了一些基础的增删改查。这篇写点功能类函数1、排序sort为排序函数,-1代表从大到小,1代表从小到大db.demo.find().sort({"age":-1})结果:2、总数count获取集合的个数db.demo.count()查看demo集合下面所有文档个数我们在nav下看一下。确实是五个文档3、查看指定字段之前介绍过fi...

2019-12-19 11:38:52 2010

原创 MongoDB角色权限验证

**mongodb角色权限**用户权限设置网上总结了四条MongoDB是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。切换到admin数据库,添加的账号才是管理员账号。用户只能在用户所在数据库登录,包括管理员账号。管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。注:在操作用户时,启动mongod服务时尽量不开启授权1、添加...

2019-12-18 16:45:24 3811

原创 MongoDB 增删改查(一)

MongoDB 增删改查(一)主要特点MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。你可以在MongoDB记录中设置任何属性的索引 (如:FirstName=“Sameer”,Address=“8 Gandhi Road”)来实现更快的排序。你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。如果负载的增加(需要更多的存储空间和更强的处理能力) ...

2019-12-18 15:28:31 13097

原创 linux下安装mongodb

**linux下安装mangodb**1.MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包。curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.12.tgz我竟然下载了27分钟。。。。2.默认下载路径是到用户目录下的Downloads目录,将其解压tar -zx...

2019-12-17 21:20:47 594 1

原创 简单shell命令(三)

Shell 流程控制1.if else elif#!/bin/bashdemo='1'num='2'if [ $demo == $num ]then echo "demo和num相等"elseecho "不相等"fi结果不相等2.for循环#!/bin/bashfor loop in 1 2 3 4 5do echo "The value is: $lo...

2019-12-16 16:16:34 2392

原创 简单shell命令(二)

基本运算符Shell 和其他编程语言一样,支持多种运算符,包括:算数运算符关系运算符布尔运算符字符串运算符文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 fals...

2019-12-16 15:38:42 2525

原创 简单shell命令学习(一)

简单shell命令学习Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。1.创建...

2019-12-16 14:47:48 16189

转载 Unix / Linux 线程的实质

Unix / Linux 线程的实质线程与进程的比较概述:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进...

2019-12-12 16:32:17 2038

空空如也

空空如也

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

TA关注的人

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