-
Mirrors
各种资源镜像
-
Reflection
Reflection(反射)
-
Ssl_with_sm_and_rsa
背景
有国密需求的场景,可能需要https的ssl证书使用sm2等国密加密算法。
问题
基于国密的ssl,只能使用支持国密ssl的浏览器访问,如果使用chrome等不支持国密算法,而是支持RSA、ECC等算法的国际浏览器(客户端),那么网站的https会无法访问。 由于引申出一个需求:一个网站同时支持多种ssl证书对应到一个host。
解决方案
参考:https://www.wosign.com/Docdownload/sm2_ssl_installation_guide-linux.pdf
-
Gh_pr_cla
有些repository提交pr,需要签署cla。 现在简化版的cla,可以根据提交时候的email自动关联。
-
Git
将已经push到remote的提交记录,合并成为一个提交记录
一定要谨慎操作,此操作会影响到其他人(如果也在用同一个分支的话),所以最好是自己有一个feature分支,再如此操作 参考:https://stackoverflow.com/questions/5667884/how-to-squash-commits-in-git-after-they-have-been-pushed
git rebase -i origin/my-branch~4 my-branch # 出现一个可交互的窗口,方便选择需要合并的提交记录,里面会包含这最近的4次提交,将需要合并的提交记录,设置为pick,之后保存。 # 会再次出现一个可交互的窗口,方便设置提交信息(commit message),可以修改成单独的日志,也可以在已有的里面选择,如果不需要,则注释掉即可 git push origin +my-branch
或者 优先考虑以下这个方式,交互性比较好。
git reset --soft HEAD~4 git commit #也可以用gui工具提交
-
Performance
性能测试
-
Ipv6
ipv6
开启内核参数 sysctl -w net.ipv6.conf.all.forwarding=1
-
Pod_svc_net
相关概念
-
Ip_range
A/B/C 类网段(IPV4)
-
Lb_arp_no_response
现象
lb svc对应的ip,丢包严重,大部分时候,在集群外网络不可访问。 网络拓扑为 一个bond底下,有多个vlan的子网卡,在这些子网卡上,分别建一个对应的网桥。lb绑定的网卡,在这些网桥上。
-
ipvs模式下,节点上的vm无法访问lb
现象
创建的vm,无法访问 ingress controller 上的服务。
-
Calico Pod Directly
背景
-
Iris Framework
反向代理相关
-
磁盘扩容
云主机上扩容系统盘成功,但在系统内,只在磁盘上扩容了,没有在系统分区上进行扩容。
-
Os
unix系统图谱
-
MetalLB,多网卡环境有时候会无法访问
背景
k8s LB类型的service,在多网卡环境下,通过externalIP访问,有时候无法正常访问。
-
ipvs模式下,频繁断网
现象
k8s 使用ipvs,跨节点访问svc,频繁出现Connection reset by peer的错误
-
Vlan
VLAN相关文档:
-
Tcp_handshake
tcp详解
-
Ssh
修改ssh的key以及fingerprint
rm -rf /etc/ssh/ssh_host_* ssh-keygen -A # client端删除know_hosts里面对应的信息 ssh-keygen -R 192.168.1.1
-
多网卡设置
多网卡路由设置(source-based routing, policy-based routing)
-
Linux_network
网络
-
Iptables
iptables
-
Calico
calico网络解析
https://www.ffutop.com/posts/2019-12-24-how-calico-works/
-
Tips
通过json patch的时候
- 如果key包含
/
, 需要将/
转义成~1
- 如果values是个json字符串,需要将json字符串里的
"
转义成\"
- 如果返回错误
the server rejected our request due to an error in our request
,需要检查一下,父节点是否存在。比如 add "/metadata/annotations/foo",时,需要确认"/metadata/annotations"是否存在,如果不存在,需要添加
[ {"op":"add","path":"/metadata/annotations","value":{}}, {"op":"add","path":"/metadata/annotations/foo","value": "bar"} ]
- 如果key包含
-
k8s入门-基础概念
k8s相关概念
-
Promethues
在k8s中上报数据给Promethues
-
Networking
图解Kubernetes网络(一)
【编者的话】本文阐述了Kubernetes网络模型,并详细描述了Kubernetes Pods在节点内和节点间的通信方式,帮助读者在碰到Kubernetes网络问题时从容应对。
-
Metrics
kubectl top node:
-
Metal_lb
2023 udpate
metallb,现在的ip不是都由同一个node进行管理,而是不同的ip会根据 节点名字+#+ip 做sha256,之后升序排序,如果排序后的第一个是本节点,则负责arp响应
-
Kube_proxy
ipvs详解 https://zhuanlan.zhihu.com/p/94418251
-
k8s一致性认证(kcsp)
前提
准备一个k8s集群,如果没有,参考kubeadm部署k8s
-
kubeadm部署k8s
修改hosts文件,每个节点都要
-
Ticker
如果想要实现类似timer的东西,不建议用time.sleep+循环, 因为time.sleep()会一直增加毫秒数,最终导致跳时间。
-
ORM框架ent
golang orm框架ent https://github.com/ent/ent
-
Golang
- golang里面能看到这样的
~T
,其含义是“底层类型是该类型” 比如~int
, 代表的含义是“底层类型是int类型”。比如type myInt int
,那么myInt
也是属于~int
- golang里面能看到这样的
-
Go_mod
module 代码目录: $GOPATH/pkg/mod
-
Yaml
多行字符串
-
虚拟化
libvirt: 一套虚拟的接口。(底层也会调用qemu) qemu: 一套完整的虚拟化技术,可以独立工作,但性能比较差。也可以搭配kvm工作,性能比较好。 kvm: linux的一个内核模块,可以虚拟化出cpu、内存。当与qemu配合时,cpu、内存等硬件由kvm处理,起到加速作用。所以虚拟机的性能较好。 virsh: 一套命令行工具,方便查看/操作 libvirt接口下的一些资源
-
Markdown
折叠:(貌似非标准语法,在github上可用)
yyyyy
zzzzz
-
Longhorn_create_block_flow
csi总体流程:
-
Longhorn
csi相关
- 创建出pvc
- csi-provisioner监控到新pvc(provisioner虽然是多例,但会选举出一个实例进行服务)
- 通过csi driver的socket调用本机csi-plugin
- 调用longhorn-manager的svc创建lh volume
- volume_controller监控到新的lh volume
- volume_controller创建对应的engine/replica instance
-
生成自签名证书
Here are 2 ways to create key and crt.
-
Docker_img_pull_push
- 外网拉取镜像并打成压缩包
- 上传压缩包到内网环境,之后解压并push到内网镜像仓库
-
Docker
GraphDriver
-
Containerd
k8s使用containerd作为cri,容器镜像通过dockerfile+docker来build,基础镜像为alpine 问题:
-
Ci_cd
CI/CD概念
-
Ceph
ceph整体介绍 https://www.modb.pro/db/323057
-
蓝绿发布/金丝雀发布/A-BTest 区别
蓝绿发布/金丝雀发布/A-BTest 区别
-
Bash
bash读取文件中的hosts,再用ssh登录到远程机器,命令未能正常执行。
现象为:只有第一个节点的部分命令得到执行 原因是:
while read
从文件中读取的时候,需要指定< abc.txt
来读取数据流,但这个会被ssh命令给拦截。