文章目录
Getting Started
容器部署
部署 docker
$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
拉取 vpp-agent 镜像
镜像包含 vpp-agent 和 vpp
$ docker pull ligato/vpp-agent
拉取 etcd 镜像 和启动 etcd
$ docker pull quay.io/coreos/etcd:v3.1.0
$ docker run -p 2379:2379 --name etcd --rm quay.io/coreos/etcd:v3.1.0 /usr/local/bin/etcd -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379
启动 vpp-agent 和 vpp
docker run -it --rm --name vpp-agent -p 5002:5002 -p 9191:9191 --privileged ligato/vpp-agent
查看信息
docker ps -f name=vpp-agent
编译部署
安装 go
$ wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz
$ tar -C /usr/local -xzf go1.16.7.linux-amd64.tar.gz
$ export PATH=$PATH:/usr/local/go/bin
拉取代码
git clone https://github.com/ligato/vpp-agent.git
编译最新稳定版本
使用国内代理
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn
编译
$ cd vpp-agent
$ make cmd
查看对应的二进制
$ ls cmd
设置配置
创建配置集目录
$ mkdir /opt/vpp-agent/dev
/opt/vpp-agent/dev/etcd.conf
insecure-transport: true
dial-timeout: 1s
endpoints:
- "127.0.0.1:2379"
/opt/vpp-agent/dev/grpc.conf
endpoint: 0.0.0.0:9111
/opt/vpp-agent/dev/supervisor.conf vpp-agent-init 使用
programs:
- name: "vpp"
executable-path: "/usr/bin/vpp"
executable-args: ["-c", "/etc/vpp/vpp.conf"]
- name: "agent"
executable-path: "/bin/vpp-agent"
executable-args: ["--config-dir=/opt/vpp-agent/dev"]
hooks:
- cmd: "/opt/vpp-agent/dev/init_hook.sh"
/opt/vpp-agent/dev/init_hook.sh
#!/usr/bin/env bash
terminate_process () {
PID=$(pidof $1)
if [[ ${PID} != "" ]]; then
kill ${PID}
echo "process $1 terminated"
fi
}
if [[ "${SUPERVISOR_PROCESS_NAME}" = "agent" && "${SUPERVISOR_PROCESS_STATE}" = "terminated" ]]; then
terminate_process vpp-agent-init
fi
if [[ "${SUPERVISOR_PROCESS_NAME}" = "vpp" && "${SUPERVISOR_PROCESS_STATE}" = "terminated" ]]; then
terminate_process vpp-agent-init
启动
$ ./vpp-agent -config-dir=/opt/vpp-agent/dev
测试一下
curl -X GET http://localhost:9191/dump/vpp/v2/interfaces