Swiss army tool (application troubleshooting) 容器为了安全通常会使用精简的基础镜像,例如alpine,甚至是Distroless,连shell都没有。同时对安全性要求比较高的公司,也会控制权限,不会让开发直接到容器里执行程序。所以之前需要定位Java程序性能问题,需要SRE手动进入容器里面执行heap dump,再手动拷文件出来。因此希望开发一个应用服务,开发可以自己方便做故障定位。 架构设计为了实现上面的目的,需要用到核心的技术是Nsent 2024-04-27 k8s troubleshooting go
eBPF应用开发 1. eBPF应用开发流程 使用 C 语言开发一个 eBPF 程序 借助 LLVM 把 eBPF 程序编译成 BPF bytecode 通过 bpf 系统调用,把 BPF bytecode提交给内核 内核验证并运行 BPF bytecode,并把相应的状态保存到 BPF maps中 用户程序通过 BPF maps查询 BPF bytecode的运行状态 2. 开发实践BCC 是一个 BPF 编 2022-02-18 ebpf
libxdp实现原理 为了在同一个接口上支持多个 XDP 程序,libxdp 为每个 XDP 程序使用两个元数据:运行优先级和链式调用操作。 运行优先级这是程序的优先级,是一个简单的整数,用于在将多个程序加载到同一界面时对程序进行排序。希望提前运行的程序(如数据包过滤器)应为此设置较低的值,而希望稍后运行的程序(如数据包转发器或计数器)应设置较高的值。请注意,仅当先前的程序以作为其链式调用操作的一部分的返回码结束时,以 2022-02-18 xdp
挂载多个XDP 1. 为什么需要多个XDP每个 netdev 只有一个 XDP hook,因此想要使用 XDP 的应用程序必须拥有 XDP hook。 但是如果用户想要安装多个这样的应用程序怎么办? 例如 - 应该可以同时运行所有这些: XDP-基于 DDOS 保护*[1]* XDP-加速 IDS(例如 Suricata)*[2]* 自定义 XDP 程序 2. 如何运行多个XDPlibxdp使用AF_XDP 2022-02-09 xdp ebpf
k8s多租户 背景企业外部多租需求,为保证安全性和提升资源使用率,需要对每个租户提供一个专用的控制层平面 而原生k8s基于命名空间(Namespace) 机制的多租户是弱多租,没法做到很好的隔离 目前硬多租隔离方案有: Kubernetes-sig mutil-tenancy的VirtualCluster loft-sh的vCluster 实现原理上大同小异,具体差异可看这里differences betw 2021-12-01 k8s Multi-tenancy
Operator开发 Kubebuilder和operator sdk 区别There’s not a huge difference between the Go projects that kubebuilder and operator-sdk scaffold. Both use controller-tools and controller-runtime and both scaffold substant 2021-11-17 k8s operator
kubernetes万级规模高可用 当集群节点超过5000时 问题 etcd 出现大量的读写延迟。 kube-apiserver 查询 pods/nodes 延时很高,甚至导致 etcd oom。 控制器无法及时感知数据变化,如出现 watch 数据延迟。 解决方案: 100 节点增长到 4 千节点: 从 apiserver 客户端的角度优先访问本地 cache,在客户端去做负载均衡 apiserver 服务端主要做了 wa 2021-10-27
测试环境搭建 kubernetes master + 2 node (使用cilium替代kube-proxy) helm3 cilium+hubble 切换superedge 安装ISTIO 安装Karmada 1kubeadm init --pod-network-cidr=10.218.0.0/16 --skip-phases=addon/kube-proxy 1kubeadm init 2021-10-12
kubeedge openyurt superedge Kubeedge Openyurt Superedge CNCF项目 是 是 是 开源时间 2018.11 2020.5 2020.12 侵入式修改 是 否 否 和kubernetes无缝转换 否(侵入式修改) 是 是 边缘自治能力 有 有 有 边缘健康检查 无 无 有边缘健康检查,存在东西向安全和流量消耗问题 单元化管理边缘节点 不支持 支持 支持 轻量 2021-10-08
kubernetes集群安装Flink 1、创建flink configmap1kubectl create -f flink-configuration-configmap.yaml flink-configuration-configmap.yaml 1234567891011121314151617181920212223242526apiVersion: v1kind: ConfigMapmetadata: name: 2019-11-30