- 博客(126)
- 资源 (16)
- 收藏
- 关注
原创 katacontainers启动分析
程序入口文章目录程序入口初始化环境初始化事件通知器初始化命名空间初始化service实例启动service事件处理协程处理事件default初始化sandbox启动sandboxstart程序启动命令示例:/usr/bin/containerd-shim-kata-v2 -namespace k8s.io -address /run/containerd/containerd.sock -publish-binary /usr/bin/containerd -id 19639196b889a15b8d
2021-06-02 23:30:46
1325
原创 katacontainers网络文件系统分析
准备sandbox和container启动文件sandbox:{ "metadata": { "name": "busybox-pod", "uid": "busybox-pod", "namespace": "test.kata" }, "hostname": "busybox_host", "log_directory": "", "dns_config": { }, "port_mappings": [], "resources": { }, "labels": {
2021-06-02 23:29:38
2694
原创 katacontainers v2编译
开发环境设备信息操作系统:Centos 8 发行版Hypervisor:VMWare[root@localhost ~]# cat /etc/*releaseCentOS Linux release 8.2.2004 (Core) NAME="CentOS Linux"VERSION="8 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="8"PLATFORM_ID="platform:el8"PRETTY_NAME="CentO
2021-06-02 23:28:23
1041
原创 katacontainers二进制安装
kata v2适配kubernetescri+containerd+kata v2+qemu部署环境kubernetes使用cri方式对接containerd,containerd使用插件方式加载katacontainers v2containerd采用自己的方式管理容器镜像,不能公用docker已有镜像,并且containerd镜像使用了命名空间进行了隔离,cri默认命名空间是k8s.io,containerd默认存储命名空间是default,在调试的时候需要注意以上问题二进制安装kata部署
2021-06-02 23:27:01
2018
原创 bpf map映射简介
bpf map映射简介bpf程序运行在内核,而且为了保证bpf程序运行的安全性,bpf虚拟机限制了系统调用,如果bpf程序需要和用户空间程序进程通信就需要bpf映射,bpf提供了如hash、stack、array等映射,在bpf程序中可以根据需求直接使用。bcc bpf map映射分析bcc中的BPF可以使用bcc的宏定义定义,当bcc加载bpf程序时再转换成section段定义进行编译。bcc的BPF映射定义在src/cc/export/helpers.h文件,bcc编译bpf代码时替换bpf程序
2020-10-26 15:45:07
2417
原创 bpf-bcc加载代码分析
BCC简介bcc作为bpf的api库,提供了加载、编译,运行bpf代码功能,其核心功能是对bpf的系统调用进行封装,降低bpf使用门槛。BCC源码介绍[root@localhost bcc]# lsbuild CMakeLists.txt CONTRIBUTING-SCRIPTS.md Dockerfile.debian Dockerfile.ubuntu examples images introspection LICENSE.txt man RE
2020-10-26 13:00:23
1431
原创 Kubernetes kubeadm证书时间修改的正确姿势
版本kubeadm v1.16.3需求kubeadm init 部署集群时自动生成相关证书,包括api-server、etcd、ca等,自动生成过程中起始时间默认为当前系统的时间,如果当前系统时间不正确会导致生成的证书异常,所以需要根据需求进行定制apiserver.crt apiserver-kubelet-client.crt ca.crt front-proxy-ca.crt ...
2019-12-09 21:16:08
1400
原创 Cisco VPP VLIB_INIT_FUNCTION宏定义分析
VLIB_INIT_FUNCTIONvpp初始化接功能节点如acl、icmp、abf等时都是通过VLIB_INIT_FUNCTION宏定义进行初始化的,初始化过程主要包括运行环境、内存、以及对应功能的一些初始化,如acl初始化的地方:static clib_error_t *icmp4_init (vlib_main_t * vm){ ip_main_t *im = &ip_m...
2019-12-09 01:01:38
1672
原创 Cisco VPP 网络接口注册分析
简介Vpp在实际应用场景中专注于网络数据包的处理,收发数据包的过程一般由第三方软件提供如:DPDK、NETMAP等,但自身也提供了丰富的虚拟网络接口,如:Virtio、Vxlan、Ipsex等。每种接口,不论是虚拟的还是物理的在启动的时候都会主动向Vpp注册自己的接口。DPDK接口注册分析VPP编译过程中可以选择是否编译DPDK的IGB_UIO驱动,默认是不编译的,编译IGB_UIO驱动方法...
2019-12-04 11:19:29
1381
原创 Cisco VPP Vhost-user协商时序
vhost-user 分为服务端和客户端,以下时序为libvirtd和vpp进行协商,协商过程中不管libvirtd作为vhost-user的服务端或者客户端,都由libvirtd主动使用Unix Socket套接字发起协商vhost-user协商时序: vm libvirtd ---> ...
2019-10-26 12:05:04
772
2
原创 Cisco VPP Unix事件监听机制分析
VPP内部使用Epoll的方式监听VPP外面使用Unix Socket通道访问或者配置VPP的请求,主要注册事件包括cli、tuntap接口配置、vhost-user接口配置等
2019-10-25 17:21:41
555
转载 Linux Socket---write/send/sendto/wirev/sendmsg
首先,我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构;在我们的虚拟机上发送icmp回显请求包,ping另一台主机192.168.1.111。我们使用系统调用sendto发送这个icmp包。ssize_t sendto(int s, const void *buf, size_t len, int flags, ...
2019-10-18 16:35:06
1593
原创 Kubernetes DNS解析简要分析
Kubernetes POD IP会随POD的创建销毁动态变化,所以提出Service的方式访问POD网络,Kubernetes的Service可以使用Iptables实现也可以使用IPVS实现,本文简要分析Iptables实现方式。部署POD,进入POD观察域名解析服务器地址:Develop>kubectl exec -it -n default ncss-i-mysql-ha-0 /...
2019-09-04 20:22:38
2749
原创 Kubernetes Multus-CNI
简介Multus CNI 作为K8S的CNI插件,支持同时添加多个网络接口到K8S环境中的POD。这样的部署方式有利用用户把管理网络和业务网络相互隔离,有效控制容器集群网络架构下图是Multus CNI配置pod网络接口的例子。图中显示了POD具有三个接口:eth0、net0和net1。eth0将kubernetes集群网络连接到kubernetes服务器/服务(例如kubernetes ap...
2019-02-09 17:44:12
7079
2
原创 Kubernetes 部署contiv-vpp
简介Contiv/VPP is a Kubernetes network plugin that uses FD.io VPP to provide network connectivity between PODs in a k8s cluster. It deploys itself as a set of system PODs in the kube-system namespace, ...
2019-02-08 15:29:32
3493
1
原创 Kubevirt 部署虚拟机
ArchitectureKubeVirt is built using a service oriented architecture and a choreography pattern.Stack +---------------------+ | KubeVirt |~~+---------------------+~~ | Orchestration...
2019-01-11 11:29:26
3537
1
原创 docker cni插件分析
CNI简介Container Networking Interface(CNI)提供了一种linux的应用容器的插件化网络解决方案。最初是由rkt Networking Proposal发展而来。他的模型只涉及两个概念:容器(container) : 容器是拥有独立linux网络命名空间的独立单元。比如rkt/docker创建出来的容器。网络(network): 网络指代了可以相互联系的一组...
2018-11-08 22:29:46
2886
原创 kubeadm国内部署-Ubuntu16.04
系统信息root@ubuntu:~# cat /etc/*releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=16.04DISTRIB_CODENAME=xenialDISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"NAME="Ubuntu&
2018-10-12 13:07:33
7437
5
原创 vpp gerrit提交patch过程
准备环境注册gerrit账号及环境配置1、进入fdio gerrit登录页面https://gerrit.fd.io/r/login/%23%2Fq%2Fstatus%3Aopen 2、点击Account signup / management注册账号 选择‘I need to create a Linux Foundation ID’进行账号注册 也可以使用face...
2018-09-15 14:31:33
4701
2
原创 Cisco VPP vxlan tunnel
拓扑环境目的: 使用vxlan隧道连接两个主机,实现每个主机的内部网络可以通过vxlan隧道进行通信。host1内部运行vpp和一个网络命名空间APP1。网络命令空间APP1模拟host1端的内部网络,里面有一个网络接口veth_vpp1,这个接口与vpp之间使用veth方式连接,当vpp里面的host-APP1接口收到数据包后就会发送到网络命名空间的veth_vpp1接口。host1...
2018-08-18 22:17:02
4408
原创 Opendaylight Service Function Chaining Demo
ODL-SFC 环境搭建作者信息:绿盟科技SPG团队 张力茂ODL Service Function Chaining在网络通信过程中,包含各式各样的网络服务功能。既可以包含传统的像防火墙,NAT等功能,也有包含特定的网络应用功能(Service Function)。将特定的网络应用功能有序地组合起来,接着让流量通过这些服务功能就构成了网络服务链(Network Service...
2018-07-26 17:18:31
2533
1
原创 Cisco VPP KVM vhost-user
目的:VPP作为KVM数据平面,使用vhost-user方案进行数据包通信什么是 vhost-user在 vhost 的方案中,由于 vhost 实现在内核中,guest 与 vhost 的通信,相较于原生的 virtio 方式性能上有了一定程度的提升,从 guest 到 kvm.ko 的交互只有一次用户态的切换以及数据拷贝。这个方案对于不同 host 之间的通信,或者 guest 到...
2018-07-26 16:47:45
3452
1
原创 Python eventlet 模块笔记
作者信息:绿盟科技SPG团队 张力茂协程什么是协程协程,又称微线程,纤程。英文名Coroutine。协程是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其他的协同程序共享全局变量。子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程的调用和子程序不同。协程看上去也是子程序,但执行过程中,在“子程序”(协程)内部可中断,然后转而执行别的“子程序”,在适当的...
2018-07-26 16:44:55
18987
原创 RabbitMQ笔记
RabbitMQ 简介RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过...
2018-07-26 16:30:43
436
原创 《Cisco VPP SFC》4、ODL SFC 安装
1、部署基础环境1.1 安装 gitsudo apt-get install git1.2 安装 Mavensudo apt-get install maven安装完成后:0 added, 0 removed; done.Running hooks in /etc/ca-certificates/update.d...done.done.root@ubunt...
2018-07-26 16:29:20
1179
原创 《Cisco VPP SFC》3、honeycomb 安装
honeycomb介绍 Honeycomb is a generic NETCONF/RESTCONF java-based management agent and provides a framework for building specialized agents. It uses many features and utilities from different Open...
2018-07-13 18:03:25
1862
原创 《Cisco VPP SFC》2、NSH_SFC 安装
SFC概念SFC是Service Function Chain的缩写,直译过来是服务功能链,通常简称服务链。简单地说把服务功能联接起来提供的一个有序的服务组合叫做服务链。SFC的延伸的含义包括服务链的定义,服务链的部署,基于policy的traffic steering,重点是在chain和策略,而不是在某个具体的服务功能service function。在SFC中service是服务的泛...
2018-07-13 14:55:42
2792
原创 《Cisco VPP SFC 》1、 VPP 安装
基础环境 Linux ubuntu 4.13.0-36-generic #40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux1、安装 git sudo apt-get install -y git 2、下载vpp源码 sudo git clone https://ge...
2018-07-13 13:35:22
1295
原创 Cisco VPP VPP+KVM环境部署
部署目的:虚拟机网卡由VPP接管,VPP为虚拟机提供二层交换功能网络拓扑:guest host 1 <—> VPP(Bridge) <—> guest host 2准备资源:1、宿主机安装VPP2、下载测试镜像和OVMF.fd文件(测试镜像clear-22980-kvm.img.xz),下载地址:https://download.cl...
2018-06-13 21:59:34
4134
20
转载 ironic架构及相关技术简介
简介如今Openstack在虚拟化管理部分已经很成熟了, 通过nova我们可以创建虚拟机、枚举虚拟设备、管理电源状态、安装操作系统等。但是有时候虚拟机无法满足要求,比如以下几种情况需要直使用物理机:高性能的计算集群。计算任务需要访问无法虚拟化的硬件设备。数据库主机(有些数据库在hypervisor中运行效率很差)。单租户、专用硬件、安全性、可靠性和其他控制要求。快速部署云基...
2018-05-30 15:44:34
18577
1
转载 安装与配置ironic
安装及配置由于Ironic的配置很长,下面我们简短的说一下安装和配置过程,具体的安装配置教程参考官方手动配置教程或者使用devstack安装。Ironic需要与Nova、Neutron、Glance、Keystone等进行交互,于是先要对这些进行配置。1.配置KeyStone首先我们需要在keystone中创建ironic用户、服务、endpoint信息。keystone us...
2018-05-30 15:43:30
1337
原创 Cisco VPP IKEV2 配置说明
1、 配置网络接口地址: cli: set int state GigabitEthernet2/6/0 up set int ip address GigabitEthernet2/6/0 192.168.10.10/24 2、 创建IKEV2配置 cli: ikev2 profile add pr1 //创建名为pr1的IKEV2配置 ikev2 profil...
2018-02-27 20:18:29
5128
原创 Cisco VPP IPSec配置
IPSEC SA:ipsec sa add 10 spi 1001 esp crypto-alg aes-cbc-128 crypto-key 4a506a794f574265564551694d653768 integ-alg sha1-96 integ-key 4339314b55523947594d6d3547666b45764e6a58ipsec sa add 20 spi 1000...
2018-02-27 20:18:18
2772
1
原创 Cisco VPP CSIT调用API过程
csit_cmd: vpp_ipsec_add_sad_entryfile: vpp-csit\csit\resources\libraries\python\IPsecUtil.py1、组织数据ckey = crypto_key.encode('hex') ikey = integ_key.encode('hex') tunnel = 'tunnel_sr...
2018-02-27 20:18:04
1345
原创 Cisco VPP emacs+gdb单步调试
VPP主要由VPP框架加上插件业务组成,开发插件时首先会编译成动态库,在VPP启动时通过指定路径加载动态库,所以在gdb调试时需要指明动态库路径。 启动可执行文件: 设置启动参数: 设置启动参数需要明确指定插件路径,VPP启动时会根据路径加载库文件。设置断点: 设置断点过程,“Function xxx not defined”意为进程符号表中没有“xxx”符号表,但是此处的...
2018-02-27 20:17:47
1972
2
原创 Cisco VPP 插件开发
VPP业务主要由插件扩展,在编译时插件会编译成动态库,并由plugin.c解析。解析过程:vlib_unix_main->vlib_plugin_early_init->vlib_load_new_plugins->load_one_plugin->VPP初始化插件首先由“VLIB_INIT_FUNCTION”宏定义初始化插件运行环境,如果支持CLI就使用“VLIB_C...
2018-02-27 20:17:34
3793
计算机程序设计艺术 全三卷 高清
2018-02-20
TMS320C55x Assembly Language Tools User"s Guide Rev G
2014-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人