自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于openssl v3搭建ssl安全加固的c++ tcpserver

c++代码调用openssl库来对通信数据进行安全加固

2024-01-24 23:04:47 685 2

原创 clion本地调试nginx-1.22.1

nginx源码本地调试

2023-10-22 17:44:17 349

原创 pmm最新版本v2.40.0尝鲜体验

让DBA快速初窥pmm v2.40.0

2023-10-11 13:40:01 303

原创 prometheus通过blackbox-exporter监控web站点证书

prometheus通过blackbox-exporter监控线上web站点

2023-09-04 22:18:55 1525

原创 centos7升级glibc2.28

centos7升级glibc

2023-08-13 13:37:18 3279 1

原创 centos7使用yum安装gcc8

yum升级gcc工具链

2023-08-13 11:45:33 2485

原创 编译mysql8.0.33遇见错误libstdc++.so.6: version CXXABI_1.3.9 not found

编译mysql8.0.33是,在Built target icui18n环节出现libstdc++.so.6: version CXXABI_1.3.9 not found

2023-07-13 00:47:36 654

原创 容器镜像的设计原理

镜像在存储实现上的设计

2023-04-14 01:20:58 468 1

原创 docker pull遇见自签证书的https registry

docker pull时需要校验CA的合法性,几条命令解决

2023-04-13 21:41:58 408

原创 kube-apiserver鉴权源码简析

kube-apiserver的鉴权其实so easy

2022-11-19 23:41:08 497

原创 pod生命周期回调prestop、poststart源码分析

preStop和postStart的原理和源码分析

2022-10-30 22:22:59 674

原创 go error

github.com/pkg/errors给了你对error进行套娃的能力

2022-10-16 00:03:19 148

原创 golang接口变量和nil

golang接口和nil的比较

2022-10-07 12:37:53 222

原创 deployment滚动更新时副本减少的分析

滚动更新的缩容分析

2022-08-29 03:13:43 334

原创 promethues metric_relabel_configs用途和源码

prometheus metric_relabel_configs的使用场景和源码分析

2022-06-12 02:23:55 428

原创 docker registry提示Layer already exists但blob数据不存在

docker registry的GC行为导致了数据的不一致

2022-05-22 15:19:28 4278

原创 ingress nginx日志时间精确到毫秒

ingress nginx访问日志的时间精度为毫秒

2022-05-18 21:51:24 2047

原创 kubernetes单独安装metrics-server

单独部署metrics-server

2022-05-04 00:35:24 449

原创 openssl创建自签CA、签发证书、添加k8s节点

openssl基本用法、为证书指定SAN、为kubernetes集群手工添加节点

2022-04-20 23:14:35 3352

原创 kubernetes gvk显示现象

kubernetes gvk显示和http request直接相关

2022-04-17 22:17:45 643

原创 网络内核参数net.ipv4.tcp_syn_retries的含义和效果测试

tcp_syn_retries和验证测试

2022-04-11 22:20:20 4586

原创 linux全局内存机制和cgroup内存机制

linux内存机制

2022-04-09 23:18:47 1089

原创 nginx ingress代理websocket流量

nginx ingress转发websocket

2022-03-22 23:45:39 6665 2

原创 [ docker-ce源码分析系列 ] 修改resolv.conf文件被还原的原因

docker resolv.conf文件被覆盖的原因

2022-01-05 00:37:42 1424

原创 go text/template在渲染时不转义html特殊字符

解决方案:复写内置的解析方法,它的key是"html"。tmpl, err = tmpl.New("").Funcs(template.FuncMap{ "html": func(s string) string { return s },}.Parse("example.tmpl")var buf bytes.Buffertmpl.Execute(&buf, data)result := buf.String()...

2021-12-01 20:03:03 1439

原创 kubelet liveness probe源码简析

1 概述:1.1 环境版本信息如下:a、操作系统: centos 7.6,amd64b、kubernetes版本:v1.15.4c、服务器docker版本:v18.09.22 liveness探针功能:存活性探针用于探测目标容器是否正常运行,手段有http get请求、tcp请求以及exec命令。探测失败,则kubelet会调用停止容器的API(docker stop)来结束目标容器。3 源码简析:探针的实现是定时器,定时器会定期执行预先设置好的探测动作,探测结果存放在kubelet的

2021-11-21 15:18:12 1255

原创 调试kubernetes dashboard v2.3.1

1 概述1.1 环境软件版本信息如下:a、操作系统: centos 7.6,amd64b、kubernetes dashboard版本: v2.3.1c、kubernetes版本: v1.15.4d、服务器docker版本:v18.09.2e、nodejs版本: v14.16.1f、npm版本:6.14.12g、go版本: 1.16.62 安装依赖2.1 安装go环境略,请参考百度。2.2 安装docker和kubernetes环境略,请参考百度。2.3 安装node

2021-10-25 23:47:41 466

原创 [ docker-ce源码分析系列 ]docker exec残留sh进程的原因

1 概述:1.1 环境版本信息如下:a、操作系统: centos 7.6,amd64b、服务器docker版本:v18.09.2c、docker的存储驱动: overlay22 现象:执行 [ docker exec -it 容器ID sh ]命令,用户可在容器中执行shell指令进行各种操作,此时用户直接kill掉docker exec命令,或者直接关闭xshell,则该sh进程依然残留在容器中,这种sh进程会消耗虚拟终端的数量,本质上是消耗文件描述符。如果用户退出时不是通过执行exit指

2021-10-10 22:47:02 660

原创 [ docker-ce源码分析系列 ]docker build源码简析

1 概述:1.1 环境版本信息如下:a、操作系统: centos 7.6,amd64b、服务器docker版本:v18.09.2c、docker的存储驱动: overlay22 源码简析:用户执行docker build命令,本篇文章简要分析docker daemon构建镜像的过程。2.1 服务端注册路由initRoutes()r.postBuild就是处理docker build请求的方法。func (r *buildRouter) initRoutes() { r.routes

2021-09-20 15:53:41 648

原创 buildkit对接私有仓库

1 概述:1.1 buildkit是什么BuildKit(https://github.com/moby/buildkit)是Docker官方社区推出的下一代镜像构建工具(独立运行于Docker),使用它可以更加快速、有效、安全地构建容器镜像。Docker v18.06版本开始集成该组件。BuildKit可用于多种导出格式(例如OCI)以及前端支持(Dockerfile),可以非root用户运行,并提供高效缓存、并行构建等功能。BuildKit支持的容器运行时包括containerd和runc。bui

2021-08-03 23:11:25 3057

原创 离线安装k3s v1.21.1 和单进程原理

1 概述:1.1 k3s是什么k3s是经CNCF一致性认证的Kubernetes发行版,专为物联网及边缘计算设计。K3s 有以下增强功能:打包为单个二进制文件。使用基于sqlite3的轻量级存储后端作为默认存储机制(v1.19开始使用内置etcd)。同时支持使用 etcd3、MySQL 和 PostgreSQL 作为存储机制。封装在简单的启动程序中,通过该启动程序处理很多复杂的 TLS 和选项。默认情况下是安全的,对轻量级环境有合理的默认值。添加了简单但功能强大的batteries-inc

2021-06-18 16:34:38 647

原创 nginx ingress按照http header进行路由

1 概述:1.1 环境版本信息如下:a、操作系统:centos 7.6b、kubernetes版本:v1.15.0c、ingress nginx版本:0.47.01.2 nginx按照http header转发流量nginx的配置文件nginx.confg中,可使用if语句块来转发流量,表达式包含http header的判断,执行语句是proxy_pass指令,格式类似:if ($http_region = "sz") { proxy_pass http://echo-sz.defaul

2021-06-10 02:26:45 4337

原创 [ docker-ce源码分析系列 ]创建(create)容器简析

1 概述:1.1 环境版本信息如下:a、操作系统: centos 7.6,amd64b、服务器docker版本:v18.09.22 源码简析:用户docker run,client至多会向docker daemon发起三次远程调用,分别是创建(拉取)镜像、创建容器、启动容器。本篇文章分析创建容器这个远程调用。2.1 注册路由initRoutes()func (r *containerRouter) initRoutes() { r.routes = []router.Route{

2021-03-28 01:57:10 768 2

原创 golang代码执行kubectl apply

1 概述:1.1 环境版本信息如下:a、操作系统:centos 7.6,amd64b、kubernetes版本:v1.15.0c、docker版本:v1.18.06d、golang版本: v1.132 代码:指定多个目录或文件,效果等同于kubectl apply。package mainimport ( "k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/cli-runtime/pkg/printers" cliresourc

2021-03-26 00:08:02 725

原创 源码编译docker-ce v18.09.2(简单易懂100%成功)

1 概述:1.1 环境版本信息如下:a、操作系统: centos 7.6,amd64b、服务器docker版本: v18.06.0c、服务器git版本: 1.8.3.1d、目标编译的docker版本: v18.09.22 前置准备2.1 宿主机安装docker编译环境是一个容器,因此需要在宿主机安装容器引擎,在后续的步骤中运行出一个容器来编译目标软件docker-ce v18.09.2。yum install yum-utils -yyum-config-manager --add-

2021-03-09 22:12:32 1823 1

原创 源码编译rancher v2.5.6和debug in kubernetes

1 概述:1.1 环境版本信息如下:a、操作系统:centos 7.6,amd64b、kubernetes版本:v1.18.16c、docker版本:v1.18.06d、rancher版本:v2.5.6e、golang版本: v1.14f、goland版本: 2020.32 安装go环境和docker:省略。3 编译和构建镜像:3.1 在裸机环境执行编译构建命令mkdir -p /opt/ && cd /opt/# 下载rancher源码git clone

2021-03-05 23:39:48 920 3

原创 故障恢复时期kubernetes dns的响应超过15秒

1 概述:1.1 环境版本信息如下:a、操作系统:centos 7.6c、kubernetes版本:v1.15.01.2 故障恢复时期下的dns查询延时的现象kubernetes dns的实现是coredns,以Deployment的形式双副本分别部署两个节点。一个coredns实例立刻死亡(服务器瞬间宕机,k8s service流量未进行切除),业务pod查询dns时,有机会得到dns服务器的时间长达15秒的失败响应(因为/etc/resolv.conf文件默认超时5秒,重试2次)。等ku

2021-02-04 23:29:22 730

原创 pcstat查看文件在系统中的缓存情况

1 概述:1.1 环境版本信息如下:a、操作系统:centos 7.62 pcstat工具pcstat是一个基于Go语言开发的小工具,用于查看文件在操作系统中的缓存情况。2.1 安装go语言环境参考搜索引擎。2.2 安装pcstatgo get -u github.com/tobert/pcstat/pcstat2.3 测试...

2021-01-19 23:26:24 3155

原创 kubernetes nodelifecontroller源码简析

1 概述:1.1 环境版本信息如下:a、操作系统:centos 7.6c、kubernetes版本:v1.15.01.2 NodeLifeController原理概述节点上的kubelet程序会定期更新kube-apiserver中node lease或者node status数据,kube-controller-manager中的NodeLifeController会监听这些信息变化,如果一个node很长时间都没有在kube-apiserver中进行状态更新,NodeLifeControll

2021-01-17 17:34:52 592

原创 kubernetes configmap热更新源码简析

1 概述:1.1 环境版本信息如下:a、操作系统:centos 7.6c、kubernetes版本:v1.15.01.2 configmap热更新原理概述configmap(secret的热更新也是一个原理)是kubernetes支持的卷的一种,底层原理是kubelet根据configmap中的内容在宿主机上写成若干文件(目录默认是/var/lib/kubelet/pods/<pod的UUI>/volumes/kubernetes.io~configmap/<卷名>),

2020-12-14 02:10:47 1294

空空如也

空空如也

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

TA关注的人

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