背景 有时候我们需要快速拉起一个 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/
生成证书
创建一个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
生成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 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 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