NeuVector-5.4.4 allinone部署

背景

有时候我们需要快速拉起一个 NeuVector 环境来进行 Demo 或者验证问题。而 NeuVector 提供了 allinone 的方式来支持一键拉起 NeuVector 环境。

环境

Env Version
Docker 24.0.9
OS Ubuntu 22.04.5
uname 5.15.0-140-generic
NeuVector 5.4.4

新版本证书要求

NeuVector 包括用于管理器(控制台/UI 访问)、控制器(REST API,内部)、执行器(内部)和扫描仪(内部)通信加密的默认自签名证书。

从 5.4.2 版本开始,这些内置的证书不会自动生成,需要手动生成。

参考文档:https://open-docs.neuvector.com/deploying/production/internal/

生成证书

  1. 创建一个ca.cfg文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = California
L = San Jose
O = NeuVector Inc.
OU = Neuvector
CN = Neuvector
[v3_req]
keyUsage = digitalSignature, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = Neuvector
  1. 生成ca.crt, tls.key, tls.crt
1
2
3
4
5
6
7
openssl genrsa -out ca.key 2048
openssl req -x509 -sha256 -new -nodes -key ca.key -days 3650 -out ca.crt
openssl genrsa -out tls.key 2048
openssl req -new -key tls.key -sha256 -out cert.csr -config ca.cfg
openssl req -in cert.csr -noout -text
openssl x509 -req -sha256 -in cert.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out tls.crt -days 3650 -extensions 'v3_req' -extfile ca.cfg
openssl x509 -in tls.crt -text

部署 allinone 容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
## 这里 192.168.2.68 替换为 allinone 节点的 IP
docker run -d --name allinone \
--pid=host \
--privileged \
-e CLUSTER_JOIN_ADDR=192.168.2.68 \
-e NV_PLATFORM_INFO=platform=Docker \
-p 18300:18300 \
-p 18301:18301 \
-p 18400:18400 \
-p 18401:18401 \
-p 18301:18301/udp \
-p 8443:8443 \
-p 10443:10443 \
-v /lib/modules:/lib/modules:ro \
-v /var/neuvector:/var/neuvector \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /sys/fs/cgroup:/host/cgroup:ro \
-v /proc:/host/proc:ro \
-v /root/neuvector/cert/ca.crt:/etc/neuvector/certs/internal/ca.cert \
-v /root/neuvector/cert/tls.crt:/etc/neuvector/certs/internal/cert.pem \
-v /root/neuvector/cert/tls.key:/etc/neuvector/certs/internal/cert.key \
neuvector/allinone:5.4.4

部署 scanner 容器

1
2
3
4
5
6
## 这里 192.168.2.68 替换为 allinone 节点的 IP
docker run -td --name scanner -e CLUSTER_JOIN_ADDR=192.168.2.68 -e CLUSTER_ADVERTISED_ADDR=192.168.2.68 -p 18402:18402 -v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /root/neuvector/cert/ca.crt:/etc/neuvector/certs/internal/ca.cert \
-v /root/neuvector/cert/tls.crt:/etc/neuvector/certs/internal/cert.pem \
-v /root/neuvector/cert/tls.key:/etc/neuvector/certs/internal/cert.key \
neuvector/scanner:6