curl

实操将TensorFlow模型部署成Docker服务化

点点圈 提交于 2020-08-06 20:10:26
背景 深度学习模型如何服务化是一个机器学习领域工程方面的热点,现在业内一个比较主流的做法是将模型和模型的服务环境做成docker image。这样做的一个好处是屏蔽了模型对环境的依赖,因为深度学习模型在服务的时候可能对各种框架版本和依赖库有要求,解决运行环境问题一直是个令人头痛的事情。 将模型通过docker服务化后意味着深度学习模型可以在各种环境使用,比如云端直接通过k8s调度拉起,或者在一些IOT领域,比方说一些智能摄像头也可以通过拉起镜像服务的方式使用模型。 看来一些网上的资料,发现大部分资料没有讲得很清楚如何容器化部署TF模型,今天把我自己的学习笔记分享下。 详细流程 模型部署分4步,首先要准备一个TensorFlow模型,还要准备一个docker环境,接着构建自己的docker服务,然后发送请求给docker服务做测试。 1.准备TensorFlow模型 可以直接clone这个项目: https://github.com/tensorflow/serving 然后找到以下这个路径下的叫“saved_model_half_plus_two_cpu”这个模型,这个模型比较简单,就是将预测数据除以2再加2。举个例子,假设预测数据是5,那么预测结果是5/2+2=4.5 /tensorflow_serving/servables/tensorflow/testdata/saved

Docker原生健康检查使用

◇◆丶佛笑我妖孽 提交于 2020-08-06 19:52:09
Dockerfile中使用HEALTHCHECK的形式有两种: 1、HEALTHCHECK [options] CMD command(本次详细解释) 2、HEALTHCHECK NODE 意思是禁止从父镜像继承的HEALTHCHECK生效 下面我们主要介绍第一种形式的应用: options有三个参数可设定: interval:间隔(s秒、m分钟、h小时),从容器运行起来开始计时interval秒(或者分钟小时)进行第一次健康检查,随后每间隔interval秒进行一次健康检查;还有一种特例请看timeout解析。 timeout:执行command需要时间,比如curl 一个地址,如果超过timeout秒则认为超时是错误的状态,此时每次健康检查的时间是timeout+interval秒。 retries:连续检查retries次,如果结果都是失败状态,则认为这个容器是unhealth的 CMD关键字后面可以跟执行shell脚本的命令或者exec数组。CMD后面的命令执行完的返回值代表容器的运行状况,可能的值:0 health状态,1 unhealth状态,2 reserved状态,这个没细研究,用的也很少。 注意:在Dockerfile中只能有一个HEALTHCHECK指令。如果您列出多个,则只有最后一个HEALTHCHECK将生效。 下面我们进行几个测试:

docker配置搭建elasticsearch集群

北城余情 提交于 2020-08-06 17:14:28
一、es集群的配置搭建 准备三台服务器:192.168.81.130、192.168.81.131、192.168.81.132 1、修改每台主机的内核参数vm.max_map_count 编辑/etc/sysctl.conf vm.max_map_count = 655350 然后执行sysctl -p 2、将es镜像pull下来,本文采用elasticsearch:7.1.1 3、编辑docker-compose.yaml文件 version: ' 3 ' services: elasticsearch: # 服务名称 image: elasticsearch: 7.1 . 1 # 使用的镜像 container_name: elasticsearch # 容器名称 restart: always # 失败自动重启策略 environment: - node.name=node- 130 # 节点名称,集群模式下每个节点名称唯一 - network.publish_host= 192.168 . 81.130 # 用于集群内各机器间通信,对外使用,其他机器访问本机器的es服务,一般为本机宿主机IP - network.host= 0.0 . 0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0. 0.0 . 0 ,即本机 - discovery.seed

docker配置搭建elasticsearch集群

岁酱吖の 提交于 2020-08-06 17:06:10
一、es集群的配置搭建 准备三台服务器:192.168.81.130、192.168.81.131、192.168.81.132 1、修改每台主机的内核参数vm.max_map_count 编辑/etc/sysctl.conf vm.max_map_count = 655350 然后执行sysctl -p 2、将es镜像pull下来,本文采用elasticsearch:7.1.1 3、编辑docker-compose.yaml文件 version: ' 3 ' services: elasticsearch: # 服务名称 image: elasticsearch: 7.1 . 1 # 使用的镜像 container_name: elasticsearch # 容器名称 restart: always # 失败自动重启策略 environment: - node.name=node- 130 # 节点名称,集群模式下每个节点名称唯一 - network.publish_host= 192.168 . 81.130 # 用于集群内各机器间通信,对外使用,其他机器访问本机器的es服务,一般为本机宿主机IP - network.host= 0.0 . 0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0. 0.0 . 0 ,即本机 - discovery.seed

docker安装nginx并挂载目录

一世执手 提交于 2020-08-06 13:28:16
在linux上搭建nginx已经ok了 接下来 用docker搭建nginx 拉取nginx镜像 docker pull nginx 查看是否已经拉取成功 docker images 运行nginx实例 docker run --name nginx -d -p 80:80 nginx:latest 如下 curl 127.0.0.1 表示启动成功 查看nginx配置 进入nginx容器 docker exec -it nginx bash cat /etc/nginx/nginx.conf 配置信息如下: user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user

使用Unix工具解析JSON

蓝咒 提交于 2020-08-06 11:39:43
问题: I'm trying to parse JSON returned from a curl request, like so: 我正在尝试解析从curl请求返回的JSON,如下所示: curl 'http://twitter.com/users/username.json' | sed -e 's/[{}]/''/g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' The above splits the JSON into fields, for example: 上面将JSON分为多个字段,例如: % ... "geo_enabled":false "friends_count":245 "profile_text_color":"000000" "status":"in_reply_to_screen_name":null "source":"web" "truncated":false "text":"My status" "favorited":false % ... How do I print a specific field (denoted by the -vk=text )? 如何打印特定字段(由 -vk=text )? 解决方案: 参考一: https:

keepalived 实现LVS负载均衡高可用集群(一)

扶醉桌前 提交于 2020-08-06 11:04:00
1、Keepalived软件前期用来管理并监控LVS集群系统中各个服务节点的状态; 2、后期加入了实现高可用的VRRP功能。因此可以为lvs负载均衡提供高可用功能,也可以为其他服务提供高可用。。 实验镜像:Centos 8.1.1911 草图:(待补) 1、两个real server 安装配置 在keepalived Master上测试无问题。 [root@HA1 ~]# curl http: //192.168.94.140 this is real 1 server [root@HA1 ~]# curl http: //192.168.94.141 this is real 2 server [root@HA1 ~]# 2、安装keepalived、ipvsadm yum install ipvsadm keepalived -y 使用keepalived即可完成real server的添加。 配置文件在/etc/keepalived下 [root@HA1 keepalived]# pwd /etc/keepalived [root@HA1 keepalived]# ls keepalived.conf [root@HA1 keepalived]# cp keepalived.conf keepalived.conf.bak [root@HA1 keepalived]#

zipkin 链路不显示,没有进入es问题

倾然丶 夕夏残阳落幕 提交于 2020-08-06 08:18:01
问题场景: 一周前正常,现在不正常,通过curl 访问单个工程能显示链路。如果通过网关入口访问不显示。 回顾: 一周前将spring cloud的zuul网关改成gateway 排查: 看elk日志,gateway将 traceId 打印出来,但是工程没有配置zipkin。 猜测: gateway将 traceId传入到后端服务,但是没有将记录传入到zipkin存储。 解决: 将gateway配置zipkin,链路显示正常 来源: oschina 链接: https://my.oschina.net/xiaominmin/blog/4297703

Nginx-keepalived+Nginx实现高可用集群

我是研究僧i 提交于 2020-08-06 08:05:57
Keepalived+Nginx 高可用集群(主从模式) 集群架构图: 说明:Keepalived机器同样是nginx负载均衡器。 1)实验环境准备(此处都是使用的centos7系统) # cat /etc/redhat- release CentOS Linux release 7.4 . 1708 (Core) 在所有节点上面进行配置 # systemctl stop firewalld // 关闭防火墙 # sed -i ' s/^SELINUX=.*/SELINUX=disabled/ ' /etc/sysconfig/selinux // 关闭selinux,重启生效 # setenforce 0          // 关闭selinux,临时生效 # ntpdate 0 .centos.pool.ntp.org // 时间同步 # yum install nginx -y     // 安装nginx 2)配置后端web服务器(两台一样) # echo " `hostname` `ifconfig ens33 |sed -n 's#.*inet \(.*\)netmask.*#\1#p'` " > /usr/share/nginx/html/index.html // 准备测试文件,此处是将主机名和ip写到index.html页面中 # vim /etc/nginx

awk文本处理-完美处理

孤街醉人 提交于 2020-08-06 07:54:53
我们作为一个程序员,经常在开发中需要处理一些日志文件,awk是一个很好处理文件字符串的命令,这块记录一下! 使用场景: 批量请求一个url地址,根据awk截取的json作为请求参数处理数据,主要涉及到截取请求参数awk使用以及curl访问某一个路径。 1、 截取一个包含文本keyword的字符串,输出到一个log日志文件 cat my.log|grep -B 1 'keyword' > 1.log 2、去掉无用的文本,只保留json格式的请求数据 cat 1.log |awk -F '"' '{print $5}' > needData.txt 3、通过txt文件改为json文件,为请求数据做准备,文件名称为:get_message_json.sh #!/bin/sh dir="./log" json_dir="./json" for file_a in ${dir}/* do log_file_name=`basename $file_a` extension="${log_file_name##*.}" if [ "$extension" == "txt" ];then json_file_name="${log_file_name}.json" awk -F '接收消息:' '{print $2}' ${dir}/$log_file_name > "${json_dir}/$