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 ...
随机推荐
- mago3DJS 应用
用于3D多块可视化的开源JavaScript库 生成3D GIS平台,集成和可视化AEC(建筑,工程,建筑)区域和传统的3D空间信息(3D GIS).将AEC和3D GIS集成到Web浏览器中,室内, ...
- SQL Server有意思的数据类型隐式转换问题
写这篇文章的时候,还真不知道如何取名,也不知道这个该如何将其归类.这个是同事遇到的一个案例,案例比较复杂,这里抽丝剥茧,仅仅构造一个简单的案例来展现一下这个问题.我们先构造测试数据,如下所示: CRE ...
- PHP匿名函数、闭包、function use
匿名函数,也叫闭包函数(closures) ,允许临时创建一个没有制定名称的函数.最常用作回调函数(callback)参数的值. 闭包函数也可以作为变量的值来使用.PHP将会自动把此种表达式转换成内置 ...
- docker改变默认存储路径到数据盘(自己实践)
一.首先将数据盘格式化分区并挂载(文章中提到的sdb(腾讯云)实践中是vdb(阿里云),文章中挂载在ssd目录下,实践中是挂载到data目录下的,后面安装docker部分以后是实践中的记录,上面数据盘 ...
- 201871010102-常龙龙《面向对象程序设计(java)》第十六周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- AcWing 44. 分行从上往下打印二叉树
地址 https://www.acwing.com/problem/content/description/42/ 题目描述从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印到一行. ...
- 算法问题实战策略 SORTGAME
地址 https://algospot.com/judge/problem/read/SORTGAME 解答 常规BFS是会超时的 按照书上的提示 应该是打表(居然还有提倡打表的题目) tle 代码 ...
- mock 模拟数据在框架中的简单使用
首先在框架中需要安装mock模块 cnpm i mockjs -S 其次在src文件夹下新建mock文件夹,在mock文件夹中新建一个index.js文件 代码如下: const Mock = req ...
- flask之web网关、三件套、配置、路由(参数、转化器及自定义转化器)、cbv、模板语言、session
目录 1.wsgiref.py 2.werzeug.py 3.三件套 4.配置文件 5.路由本质 6.cbv.py 7.路由转化器 8.自定义转化器 9.模板语言 10.session原理 11.te ...
- HTML网页自动跳转(重定向)
HTML网页自动跳转(重定向) meta <head> <meta http-equiv="refresh" content="5;url=https: ...