nginx代理ambassador,再转到mlfow-tracking服务
这个服务的代理,相对于服务网关来说,有些典型,
今天调通了,作个记录。
一,nginx配置
upstream ai_ambassador { ip_hash; server 1.2.3.4:30080; } server { listen 8080; server_name localhost; client_max_body_size 500m; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; add_header 'Access-Control-Allow-Origin' '*'; proxy_http_version 1.1; proxy_set_header Connection ""; location / { proxy_pass http://ai_ambassador; proxy_set_header Host $host; proxy_set_header X-Real-Scheme $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
二, zipkin
记住红线部署,不然,nginx会抱怨zipkin重定义次数太多,因为/zipkin本身的服务里使用了302跳转。
--- apiVersion: v1 kind: Service metadata: name: zipkin annotations: getambassador.io/config: | --- apiVersion: ambassador/v1 kind: TracingService name: tracing service: zipkin:9411 driver: zipkin --- apiVersion: ambassador/v1 kind: Mapping name: zipkin_mapping prefix: /zipkin rewrite: /zipkin/ service: zipkin:9411 spec: selector: app: zipkin ports: - port: 9411 name: http targetPort: 9411 # nodePort: 32764 # type: NodePort --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: zipkin spec: replicas: 1 strategy: type: RollingUpdate template: metadata: labels: app: zipkin spec: containers: - name: zipkin image: harbor.xxx.cn/3rd_part/openzipkin/zipkin:2.16 imagePullPolicy: IfNotPresent ports: - name: http containerPort: 9411
三,指定ambassador的nodeport端口。
--- apiVersion: v1 kind: Service metadata: name: ambassador spec: type: NodePort ports: - name: http port: 80 targetPort: 8080 protocol: TCP nodePort: 30080 selector: service: ambassador
四,由于要将mlfow tracking的数据放到mysql中,先建一个mysql服务(嘿嘿,由于拼写错误,ml flow tracking和ml flow tracing没分清)。由于是测试,密码随意 ,没有将数据,配置之类挂载出来。
apiVersion: apps/v1 kind: Deployment metadata: name: mlflow-tracing-mysql spec: replicas: 1 selector: matchLabels: name: mlflow-tracing-mysql template: metadata: labels: name: mlflow-tracing-mysql spec: containers: - name: mysql image: harbor.xxx.cn/3rd_part/mysql:5.7.24 imagePullPolicy: IfNotPresent ports: - containerPort: 3306 env: - name: MYSQL_ROOT_PASSWORD value: "xxxx" --- kind: Service apiVersion: v1 metadata: name: mlflow-tracing-mysql spec: type: NodePort ports: - name: mlflow-tracing-mysql port: 3306 targetPort: 3306 protocol: TCP selector: name: mlflow-tracing-mysql
这一步完了,好像可能,要确认root用户可远程访问,我好像还自己建好了mlflow库,可能不建不行吧,毕竟人家是直接使用的。
如果更新了hdfs这些配置,最好也要重建数据库,因为这些配置是第一次连接时,写进数据库了,或是自己进数据库修改吧。
五,mlflow tracking配置,这是重头戏。
apiVersion: apps/v1 kind: Deployment metadata: name: mlflow-tracking spec: replicas: 1 selector: matchLabels: name: mlflow-tracking template: metadata: labels: name: mlflow-tracking spec: imagePullSecrets: - name: harborsecret containers: - name: mlflow-tracing image: harbor.xxx.cn/mlflow/mlflow-tracing:v1.2 imagePullPolicy: IfNotPresent # command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 360000'] command: ['sh', '-c', 'mlflow server --backend-store-uri mysql+pymysql://root:xxx@mlflow-tracing-mysql:3306/mlflow --default-artifact-root hdfs://xxxx:8020/ml_model/mlflow --host 0.0.0.0'] ports: - containerPort: 5000 env: - name: MLFRACKING_TOKEN value: "no use" --- kind: Service apiVersion: v1 metadata: name: mlflow-tracking annotations: getambassador.io/config: | --- apiVersion: ambassador/v1 kind: Mapping name: mlflow_tracking_mapping prefix: /mlflow-tracking/ # rewrite: / service: mlflow-tracking:5000 spec: type: NodePort ports: - name: mlflow-tracking port: 5000 targetPort: 5000 protocol: TCP # nodePort: 30080 selector: name: mlflow-tracking
六,mlflow tracking的dockerfile肿么写的呢?look,如果条件所限,请使用http代码,如果国外慢,则pip时,使用国内镜像。
FROM harbor.xxx.cn/3rd_part/continuumio/miniconda3:4.7.10 RUN export http_proxy=http://xxx.local:8080 \ && export https_proxy=http://xxx.local:8080 \ && export ftp_proxy=xxx.local:8080 \ && pip install pymysql mlflow -i http://pypi.douban.com/simple --trusted-host pypi.douban.com \ && conda install hdfs3 -c conda-forge \ && conda clean -y -all \ && rm -rf ~/.cache/pip ENV MLFLOW_HDFS_DRIVER=libhdfs3 EXPOSE 5000:5000
七,七星连珠之后,即可访问nginx上代理的mlflow tracking服务啦。。
nginx代理ambassador,再转到mlfow-tracking服务的更多相关文章
- nginx代理ambassador出现426错误
现在ambassador文档啃得差不多了.进入实战阶段. 一开始,就偶遇426错误. 网络结构大致如下: 浏览器访问nginx, nginx代理到k8s内的ambassador, ambassador ...
- Nginx代理实现内网主机访问公网服务
通过Nginx代理实现内网主机访问公网和接口服务 1.需求: m2.test.com为公司测试环境的微信测试域名,因为要调用微信服务接口需要访问外网,现通过Nginx代理现实此功能. 2.环境如下: ...
- Nginx代理与负载均衡配置与优化
Nginx代理 Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反 ...
- windows下nginx代理ftp服务器
我所在的开发环境里,nginx和ftp在同一台服务器. ftp根目录: nginx的配置: 在nginx.conf中加入: server { listen ; server_name localhos ...
- Nginx代理的几种模式
转载自一位大佬 通常我们都知道Nginx性能很高,尤其是作为一个代理服务器,因为它用的是epoll模型,就比如Python Django Web的性能不行,我们可能就会在前端加一个nginx代理,从而 ...
- 多级nginx代理,获取客户端真实ip
今天服务里的微信公众号支付业务突然不能用了,报错为网络环境未能通过安全验证,请稍后再试.检查后端日志,没有任何问题,看来是成功创建支付订单,但是调起支付时出现了问题.上网查了一下,这个报错的直接原因是 ...
- CAS (6) —— Nginx代理模式下浏览器访问CAS服务器网络顺序图详解
CAS (6) -- Nginx代理模式下浏览器访问CAS服务器网络顺序图详解 tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1. ...
- CAS (5) —— Nginx代理模式下浏览器访问CAS服务器配置详解
CAS (5) -- Nginx代理模式下浏览器访问CAS服务器配置详解 tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1.9.8 ...
- nginx代理学习
一.windows下nginx代理ftp服务器 我所在的开发环境里,nginx和ftp在同一台服务器. ftp根目录: nginx的配置: 在nginx.conf中加入: server { liste ...
随机推荐
- electron打包出现有文件下载不全的情况
1.根据提示下载相应的东西 https://blog.csdn.net/az44yao/article/details/85242442 具体可以看这个链接 2.有个小坑,如果到了按照链接1的过程,遇 ...
- Playbook剧本小结
1.Playbook剧本小结 1.什么是playbook,playbook翻译过来就是"剧本",那playbook组成如下 play: 定义的是主机的角色task: 定义的是具体执 ...
- 使用Anaconda3的Docker镜像
假设本地 Ubuntu 服务器已经安装好了Docker,这里讲述一下如何开始运行Anaconda3的Docker镜像: 1. 搜索镜像 搜索我们想要的anaconda镜像: docker search ...
- Centos7下的zabbix安装与部署
目录: 1.Zabbix介绍 2.LAMP/LNMP介绍 3.Zabbix安装与部署 1.Zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. ...
- Git 在小团队中的管理流程
目标读者:了解 Git 的基本概念,能够使用 Git 进行基本的本地和远程操作. 有关 Git 的基础知识可以参见 知乎回答-怎样使用 GitHub?,天猪(刘勇)给出了一些很好的学习资料. 本文介绍 ...
- 机器学习--主成分分析(PCA)算法的原理及优缺点
一.PCA算法的原理 PCA(principle component analysis),即主成分分析法,是一个非监督的机器学习算法,是一种用于探索高维数据结构的技术,主要用于对数据的降维,通过降维可 ...
- pytroch中cp27m和cp27mu的区别及判别方法
python中m和mu的区别 从https://download.pytorch.org/whl中下载pytorch安装包时常会发现有相同版本的安装包有cp27m和cp27mu两种,其中cp27m是u ...
- C++内置二分查找用法
c++内置二分查找 #include < algorithm > 一.binary_search:查找某个元素是否出现.函数模板:binary_search(arr[], arr[]+si ...
- Python程序中的线程操作-concurrent模块
目录 一.Python标准模块--concurrent.futures 二.介绍 三.基本方法 四.ProcessPoolExecutor 五.ThreadPoolExecutor 六.map的用法 ...
- .NET 时间轴:从出生到巨人
自1995年互联网战略日以来最雄心勃勃的事业 —— 微软.NET战略, 2000年6月30日. 微软于2000年推出基于Windows操作系统的应用软件开发框架.NET,发展至今形成巨大的技术栈,涉及 ...