绕过conntrack,使用eBPF增强 IPVS优化K8s网络性能ingress Tc egress Hit eBPF map? Does SNAT nic nic Y N • How IPVS talks with eBPF program? • eBPF map id is passed to IPVS module • Ip_vs_new_conn() inserts eBPF map • Key: (protocol, cip:cport Value: (protocol, lip:lport, rsip:rsport) • Ip_vs_conn_unlink() deletes entries in eBPF map How eBPF does SNAT eBPF map IPVS eBPF SNAT add del refer • V.S service in pure eBPF • Reuse the IPVS’s functionality functionality and maturity • Many scheduling algorithms • Reuse IPVS timer to reclaim eBPF map • More efficient and secure • V.S Taobao IPVS SNAT patch • Bypass conntrack/iptables • Less modification0 码力 | 24 页 | 1.90 MB | 1 年前3
腾讯云 Kubernetes 高性能网络技术揭秘——使用 eBPF 增强 IPVS 优化 K8s 网络性能-范建明尽量将大部分代码放在eBPF中,方便升级和维护。 • eBPF loader 创建eBPF map时,将map的id 传给IPVS内核模块 • 在ip_vs_new_conn 时,插入eBPF map • (protocol, clientip:cport -> targetip:dport) • 在ip_vs_conn_unlink时,删除eBPF map • 由于eBPF中没有timer机制 IPVS 如何做SNAT? 和业界方法比较 V.S. 纯粹的eBPF service 和其他的优化方法对比 V.S. Taobao IPVS SNAT patch • 复用了IPVS timer来回收eBPF map。避开了eBPF map没有timer的问题 • 继承了IPVS丰富的功能,稳定性。例如调度算法丰富。 • 优势 • 完全绕过了conntrack/iptables • 对内核修改更小 04 性能测试0 码力 | 27 页 | 1.19 MB | 9 月前3
Автоматизация управления ClickHouse-кластерами в KubernetesReplica Service Replica Service User Config Map Common Config Map Stateful Set Pod Persistent Volume Claim Persistent Volume Per-replica Config Map Altinity ClickHouse operator – использование0 码力 | 44 页 | 2.24 MB | 1 年前3
Kubernetes开源书 - 周立使⽤Label选择器定义 service 指向的⼀组Pod。类似地, replicationcontroller 所管理的Pod总数也可⽤Label选择 器定义。 两个对象的Label选择器都使⽤map在 json 或 yaml ⽂件中定义,只⽀持equality-based requirement选择器: "selector": { "component" : "redis", {"\r\nLastState: "}}{{.lastState}}{{end}}' simmemleak-hra99 Container Name: simmemleak LastState: map[terminated:map[exitCode:137 reason:OOM Killed startedAt:2015-07-07T20:58:43Z finishedAt:2015-07- 07T20:58:43Z IETF RFC 6901, section 3 。 要在Pod中使⽤Extended Resource,请将资源名称作为 spec.containers[].resources.requests map中key。 注意:Extended resources不能提交过⼤的值,因此如果request和limit都存在于容器spec中,则两者必须相等。 TODO:这是什么意思? 只有当所有资源的r0 码力 | 135 页 | 21.02 MB | 1 年前3
石墨文档Go在K8S上微服务的实践-彭友顺他是在另一个服务 返回的,所以每次error在客户端是反序列化,new出来 的。是无法通过errors.Is判断其根因。 • 将gRPC的错误码注册到一起,然后通过FromError方式, 利用map唯一性的判别,转化为本地错误,使用 errors.Is来判断根因。 • errors.Is(eerrors.FromError(err), UserErrNotFound()) 微服务的开发阶段 micro/chapter1/build.ht ml 微服务的部署阶段 注入信息 版本信息 发布版本 • 配置 • 过去自己实现agent读取etcd,写文件 • 现在写入config map,挂载到pod • 应用 • 一行代码kubectl apply -f deployment.yaml • 拉取镜像、启动服务、探活、滚动更新等功能 微服务的启动阶段 启动参数 加载配置0 码力 | 41 页 | 3.20 MB | 1 年前3
运维上海2017-机器学习模型训练的Kubernetes实践-袁晓沛AI�����! AI�������! ����K8S! ��K8S�AI��! ������! Ceph Volume��� �! ����Ceph Volume��! • rbd map������! • mount������������������! • mount rbind��������������! ����Volume����! • shared: ����0 码力 | 39 页 | 5.82 MB | 1 年前3
Over engineeringthe core of Kubernetes kopsmasterPublicName: “api.nivenly.com” So how does it work ? ? ? Kops 1.4 State Store Unmarshal Tasks Map Compare Reconcile Kops 1.4 tasks := []*Task We have to track our work Where do tasks come from0 码力 | 75 页 | 4.56 MB | 1 年前3
Kubernetes Native DevOps Practicestatus to buildjob Submit buildjob List/Watch buildjob Pod Pod Pod Pod Build task configuration - map to k8s Job, can also be a raw k8s job Job / Pod / Node info BuildJob / Job status Pipeline / Stage0 码力 | 21 页 | 6.39 MB | 1 年前3
vmware组Kubernetes on vSphere Deep Dive KubeCon China VMware SIGmanages desired policy. Enforcement passes Pod -> container runtime -> Linux OS Cgroups are used to map Pod CPU and Memory Resources • Note: Two Cgroups Drivers exist (cgroupfs [default], systemd) 200 码力 | 25 页 | 2.22 MB | 1 年前3
VMware SIG Deep Dive into Kubernetes Schedulingmanages desired policy. Enforcement passes Pod -> container runtime -> Linux OS Cgroups are used to map Pod CPU and Memory Resources • Note: Two Cgroups Drivers exist (cgroupfs [default], systemd) 200 码力 | 28 页 | 1.85 MB | 1 年前3
共 11 条
- 1
- 2













