Step 6: OpenVINO™ Model Server Setup
Configure the OpenVINO™ Model Server
Perform configuration steps on the control plane.
Go to the AMR_containers folder:
cd <edge_insights_for_amr_path>/Edge_Insights_for_Autonomous_Mobile_Robots_*/AMR_server_containers
Generate the keys used for the OpenVINO™ model server remote inference setups:
chmod +x 01_docker_sdk_env/artifacts/02_edge_server/edge_server_fleet_management/ovms/generate_ovms_certs.sh sudo ./01_docker_sdk_env/artifacts/02_edge_server/edge_server_fleet_management/ovms/generate_ovms_certs.sh <control_plane_IP>
NOTE:The IP of the control plane is used to generate certificates.Copy the keys to the SFTP server. If the SFTP server is not configured, see Step 2: SFTP Server Setup.
Open an SFTP terminal:
sftp fdo_sftp@<sftp_server_ip>
Copy the OpenVINO™ model server certificates to the SFTP server:
mkdir /fdo_sftp/etc/amr/ mkdir /fdo_sftp/etc/amr/ri-certs/ cd /fdo_sftp/etc/amr/ri-certs/ lcd <AMR_Server_Containers>/01_docker_sdk_env/artifacts/02_edge_server/edge_server_fleet_management/ovms/keys/ put server.pem put client.key put client.pem
Exit the SFTP terminal:
exit
Start the OpenVINO™ Model Server
On the control plane, install the playbook:
ansible-playbook AMR_server_containers/01_docker_sdk_env/docker_orchestration/ansible-playbooks/02_edge_server/openvino_model_server/ovms_playbook_install.yaml
If the playbook fails to install, see Troubleshooting.
Check the OpenVINO™ Model Server Installation
On the control plane, verify that the services, pods, and deployment are running:
$ kubectl get all --output=wide --namespace ovms-tls NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod/ovms-deployment-75c7dffdc5-cgxp9 1/1 Running 1 (50m ago) 50m 10.245.202.9 glaic3roscube <none> <none> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR service/ovms-service NodePort 10.110.177.249 <none> 3335:32762/TCP,2225:32763/TCP 50m app.kubernetes.io/instance=ovms-tls-abcxzy,app.kubernetes.io/name=ovms-tls NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR deployment.apps/ovms-deployment 1/1 1 1 50m ovms-tls 10.237.23.153:30003/intel/ovms-tls:2022.2 app.kubernetes.io/instance=ovms-tls-abcxzy,app.kubernetes.io/name=ovms-tls NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR replicaset.apps/ovms-deployment-75c7dffdc5 1 1 1 50m ovms-tls 10.237.23.153:30003/intel/ovms-tls:2022.2 app.kubernetes.io/instance=ovms-tls-abcxzy,app.kubernetes.io/name=ovms-tls,pod-template-hash=75c7dffdc5
NOTE:CLUSTER-IP is a virtual IP that is allocated by Kubernetes* to a service. It is the Kubernetes* internal IP. Two different pods can communicate using this IP.On each edge node, verify that the Docker* container is running:
docker ps | grep ovms-tls 6b64514a4b9a c9e7db04fe06 "/usr/bin/dumb-init …" 10 minutes ago Up 10 minutes k8s_ovms-tls_ovms-deployment-5856948447-t78tz_ovms-tls_3cd84b35-c604-4948-9228-e381fd0714fa_1 ceeaa7673bcd k8s.gcr.io/pause:3.5 "/pause" 10 minutes ago Up 10 minutes k8s_POD_ovms-deployment-5856948447-t78tz_ovms-tls_3cd84b35-c604-4948-9228-e381fd0714fa_1