自定义博客皮肤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)
  • 收藏
  • 关注

原创 python3 交叉编译环境搭建

实现python的跨平台编译

2022-09-08 17:03:07 2326

原创 python3 watch etcd

解决python3 etcd3 watch不到数据的问题

2022-08-19 18:12:13 1194 1

原创 k8s kube-router+ipvs pod网络分析

集群中的每个节点上都有一个kube-bridge网桥,是部署k8s时创建的网桥,用于pod间通信k8s 利用veth pair和网桥实现容器通信,一端与pod绑定,一端绑定到kube-bridge上每个容器里都有类似这种route:Destination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0 12.0.2.1 0.0.0.0 UG 0 .

2021-06-16 18:32:16 985

原创 docker(k8s)容器内tcpdump抓包

docker容器内tcpdump抓包问题在项目中遇到了一些网络问题,想要看下在容器中抓一些包,但发现容器没有tcpdump命令,如果直接安装的话比较麻烦。namespace资源隔离Linux 命名空间对全局操作系统资源进行了抽象,对于命名空间内的进程来说,他们拥有独立的资源实例,在命名空间内部的进程可以实现资源可见。对于命名空间外部的进程,则不可见,实现了资源的隔离。这种技术广泛的应用于容器技术里。列举下几个方面的资源隔离namespace隔离内容UTS主机名与域名I

2021-05-08 18:04:46 4077

原创 elastic sense插件中文输入支持

问题发现因为chrome的elasticsearch-head插件在自定义查询的时候用着不是很爽,就想换一个插件,于是就找到了sense(chrome已将其下架),于是从别人的网盘里下载sense插件放到chrome上。但使用中发现输入中文完全没有反应,这就不爽了…问题定位如何找到input框的代码直接看截图:1.3. 此时在查询框随便输入字符,就能看到中间跳出源码位置可看到代码位置在:sense\lib\src-noconflict\ace.js代码修改先了解几个概念:

2021-03-19 12:32:46 309 1

原创 ElasticSearch学习

ElasticSearch index mapping字段解析先给出一个mapping示例,如下:{ "_source": { "enabled": true, "includes": ["*.count", "meta.*"], "excludes": ["meta.des", "meta.o.*"] }, "properties": { "title": { "type":

2021-02-23 14:59:14 167

原创 metalLB原理解析

针对layer2模式进行分析metallb会根据配置的地址池为LoadBalancer类型的service分配external-ip(vip)一旦MetalLB为service分配了一个外部IP地址,它需要使集群之外的网络知道该VIP“存在”在集群中。MetalLB使用标准路由协议来实现这一点:ARP、NDP或BGP。在layer2模式下,MetalLB的某一个speaker(这个speaker由metallb controller选择)会响应对service VIP的ARP请求或IPv6的NDP请

2020-11-02 11:58:11 5025

原创 ceph radosgw实现在不同用户间的文件copy

目标: 将用户A的bucket-A桶里的file拷贝到用户B的bucket-B的桶中准备:安装s3cmd命令步骤:# 查看用户列表:radosgw-admin user list# 查看用户的信息: radosgw-admin user info --uid={userID}# 这个命令会放开bucket-A下所有文件的所有权限给用户B, 如果想只是放开一个文件的话,可在uri中指定文件:s3://bucket-A/files3cmd -c s3conf-A setacl s3://buck

2020-09-28 11:59:36 429 2

原创 kafka、zookeeper配置sasl认证

1:配置zookeeperzoo.cfg 增加以下配置:authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProviderrequireClientAuthScheme=sasljaasLoginRenew=3600000quorum.auth.enableSasl=true # 打开sasl开关, 默认是关的quorum.auth.learnerRequireSasl=true # ZK做为leaner的时候,

2020-06-05 18:35:47 7887 1

原创 golang 利用redis实现分布式锁

redis知识准备redis SETNX命令SETNX 如果key不存在则创建,并返回true如果key存在则不操作,并返回falseredis TTL命令如果对key设置了过期时间,则TTL命令返回key到过期时所剩余的时间如果key没有设置过期时间,则TTL命令返回-1代码package mainimport ( "fmt" "github.com/go-r...

2020-04-02 11:36:16 4088

原创 golang json浅析

json常用方法示例package mainimport ( "encoding/json" "fmt" "os" "time")type info struct { Name string `json:"name"` Age int `json:"age"` Extra interface{} `json:"extra"`}...

2020-03-29 23:08:28 200

原创 go bytes 浅析

go bytes 定义了一些操作 byte slice 的便利操作package mainimport ( "bytes" "fmt" "io" "os")func handleErr(err error) { if err != nil { panic(err) }}func main() { s := [...

2020-03-22 21:04:47 1192

原创 golang bufio浅析

bufio 在读写文件时提供了缓存,先将要读取或写入的内容放到缓存中readfunc bufIoRead() { file := "./test-file" fd, err := os.Open(file) if err != nil { panic(err) } defer fd.Close() // 初始化一个缓冲区大小为10...

2020-03-17 10:38:52 989

原创 go 使用http长连接读写influxdb

由于服务一直在向influxdb中写入数据,使用短连接的话连接会频繁的创建和关闭,所以改写为长连接

2020-03-11 18:15:23 1544 4

原创 golang解析linux /proc/net/tcp /proc/net/tcp6文件中的IP地址

直接上代码package mainimport ( "encoding/binary" "encoding/hex" "errors" "fmt" "net" "strconv" "strings")func hexToByte(s byte) (byte, error) { if s <= '9' && s >= '0' { ...

2020-03-11 17:47:03 1585

原创 golang快速排序算法(非递归)

golang快速排序代码(非递归)如果不使用递归的话需要借助队列或栈来实现排序,我这里使用栈的方式来实现,栈的实现如下:// 定义栈type Stack struct { S []*Index}// 栈内元素结构type Index struct { Left int Right int Key int}// 入栈func (s *Stack) Push(...

2020-02-10 16:10:44 1286 1

原创 shell打印字符串的md5值

shell打印字符串的md5值@TOC使用echo:在这里插入代码片echo -n “10.10.25.27:8089”|md5sum|cut -d ’ ’ -f1欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对M...

2020-01-20 10:52:41 437

原创 golang 数组 字符串 切片理解

1、数组数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。数组的长度是数组类型的组成部分。因为数组的长度是数组类型的一个部分,不同长度或不同类型的数据组成的数组都是不同的类型,因此在Go语言中很少直接使用数组(不同长度或不同类型元素的数组因为类型不同无法直接赋值)。如上面所说,因为长度也是数组的类型组成部分,所以即使两个有相同元素类型但长度不同的数组是无法进行赋值...

2019-10-12 19:16:29 921

原创 kubernetes通过ingress访问service

ingress 部署(1) 部署ingress-controller kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml由于网络问题,pull镜像可能会失败,可预先将镜像pull下来。(2) 部署ingress ser...

2019-08-22 18:46:14 2267

原创 kubernetes集群外部访问Pod或Service

由于Pod和Service是kubernetes集群范围内的虚拟概念,所以集群外的客户端系统无法通过Pod的IP地址或者Service的虚拟IP地址和虚拟端口号访问到它们。为了让外部客户端可以访问这些服务,可以将Pod或Service的端口号映射到宿主机,以使得客户端应用能够通过物理机访问容器应用。将容器应用的端口号映射到物理机(1) 通过设置容器级别的hostPort,将容器应用的端口...

2019-08-22 11:44:29 1264

原创 go mod unrecognized import path "xxxx" 解决办法

go mod unrecognized import path “xxxx” 解决办法go mod init / tidy 后,会在当前项目目录下生成一个go.mod文件,例如:# cat go.modmodule mm/mm-router/routerrequire ( github.com/go-redis/redis v0.0.0-20190503082931-75795aa4...

2019-07-29 18:34:12 9958

原创 kafka的基本操作命令

kafka的基本操作kafka 的安装包里集合了所有命令的shell脚本,脚本目录在:kafka_2.12-2.0.0/bin/对于kafka容器,脚本路径一般在:/opt/kafka_2.12-2.2.0/bin/ 或者 /opt/kafka/bin/列出所有的topic# --bootstrap-server 为kafka服务的ip:portkafka-topics.sh --bo...

2019-07-24 12:00:18 461

原创 golang 函数返回chan类型

golang 函数返回chan类型在阅读kafka的golang 客户端代码sarama-cluster时,遇到了如下一段代码:// Messages returns the read channel for the messages that are returned by// the broker.//// This channel will only return if Confi...

2019-07-18 16:30:32 5870

空空如也

空空如也

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

TA关注的人

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