摘要:go没有继承。类似于Java继承,SecurityGroup类继承了SecurityGroupRule列表类。 type SecurityGroup struct { Id string Name string Rules []SecurityGroupRule } type SecurityGro
阅读全文
摘要:问题:执行go mod vendor后,项目中增加了import依赖,不会增加go:generate go run后面依赖。解决:为了避免每次go mod拉取依赖,先import它,然后执行go mod vendor,最后删除该import。
阅读全文
摘要:功能 地址 不同版本Linux内核代码(支持跳转) https://elixir.bootlin.com/linux/v6.5/source 正则表达式验证 https://www.regexp.cn/Regex json展开 https://www.json.cn ip和主机字节序整数互转 htt
阅读全文
摘要:相比于klog,logrus支持输出json日志,但是默认time不在最前面,而在最后,因为日志输出时按照key字母顺序排序。 go get github.com/sirupsen/logrus go get github.com/natefinch/lumberjack package main
阅读全文
摘要:问题1:被序列化的结构体首字母必须大写 type Student struct { sex string age int } 如果被序列化的结构体首字母不大写,那么序列化结果是空。 告警内容 struct type 'test/json_config.Student' doesn't have an
阅读全文
摘要:package main import ( "encoding/json" "log" ) type Student struct { Sex string `json:"sex"` Age int `json:"age"` } func main() { s1 := &Student{ Sex:
阅读全文
摘要:kube-ovn v1.10.10 在subnet发生变化时,例如删除pod,ovn-cni更新主机路由,保证节点上只有目的网段ovn-default和join,指向ovn0。 pkg/daemon/controller.go runSubnetWorker ->1 从队列中获取变化的subnet
阅读全文
摘要:goto语句可以直接完成跳转,在Linux内核代码中频繁出现。匹配上goto的代码块,最后需要加个return,不然会执行后面的代码块。 #include <stdio.h> int main() { printf("1\n"); goto case1; printf("2\n"); case1:
阅读全文
摘要:k8s v1.19.0 pod ip不是由cni告诉kubelet的,而是kubelet pleg基于nsenter进入network namespace+ip命令查询网卡得到。 pkg/kubelet/pleg/generic.go Start -> relist -> updateCache(更
阅读全文
摘要:kube-ovn v1.12.22 在kube-ovn中,ls是subnet,lr是vpc,ovn0是ovn-default才有的容器网关,即自定义vpc没有ovn0,自定义vpc不支持和k8s节点主机网络互通。 步骤中参数值只是类比,不和截图完全相同。 步骤1:veth和ovn0作为ovs por
阅读全文
摘要:package main import ( "context" "encoding" "encoding/json" "fmt" "log" "github.com/go-redis/redis/v8" ) var _ encoding.BinaryMarshaler = &Student{} va
阅读全文
摘要:kind: ConfigMap apiVersion: v1 metadata: name: redis namespace: default labels: app: redis data: redis.conf: |- port 6379 bind 0.0.0.0 dir /data appen
阅读全文
摘要:安装依赖 go get github.com/onsi/ginkgo/v2/ginkgo go install github.com/onsi/ginkgo/v2/ginkgo go get github.com/onsi/gomega 运行用例 mkdir test cd test ginkgo
阅读全文
摘要:create table user(id bigint primary key auto_increment, age int); gorm使用函数查询时,通过IFNULL来确保查询不到记录时有默认值。 max函数 select max(age) from user; select IFNULL(m
阅读全文
摘要:k8s v1.19.0以deployment controller为例pkg/controller/deployment/deployment_controller.gorun函数处理enqueueDeployment函数写入队列的key namespace/name,与pkg/controller
阅读全文
摘要:问题现象 k8s中etcdctl备份etcd时第2步卡住。 export ETCDCTL_API=3 etcdctl --endpoints 172.18.0.2:2379 snapshot save snapshot.db 问题分析 k8s中执行etcdctl命令时没有指定证书文件路径。 解决问题
阅读全文
摘要:安装Etcd集群 docker pull quay.io/coreos/etcd:v3.3.1 docker run -d --name etcd1 quay.io/coreos/etcd:v3.3.1 etcd -name etcd1 -advertise-client-urls http://1
阅读全文
摘要:因为status是cr的subresource,所以不支持使用kubectl直接更新cr status,由controller来更新status。在KubeBuilder框架中,使用xxx.Status().Update(xxx)方式来更新status。在ClientSet中,通过UpdateSta
阅读全文
摘要:安装依赖和工具 # ubuntu安装protobuf apt install libprotobuf-dev protobuf-compiler protoc-gen-go protoc-gen-go-grpc -y # 查看protobuf版本 protoc --version # 安装grpcu
阅读全文
摘要:安装环境 cat <<EOF | kind create cluster --name test --config - kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 networking: kubeProxyMode: iptables disab
阅读全文