k8s是底层的集群管理服务,在k8s上层有resfulapi、jobmanager、webui等服务。
通过在dev machine上build生成Docker镜像,推到Docker hub上,再在目标节点从Docker hub上拉下来,启停服务。
在dev machine上需要登录Docker,不然Docker image不知道推哪儿。
Docker login
collectd
./deploy.py Docker push collectd
webui
./deploy.py webui
./deploy.py Docker push webui2
restfulapi, jobmanager,两者因为都是flask框架,所以就合在一个Docker里了。
./deploy.py Docker push restfulapi
配置nginx:
./deploy.py nginx fqdn
./deploy.py nginx config
k8s启动服务:
./deploy.py kubernetes start mysql jobmanager restfulapi webui2 monitor nginx custommetrics
操作后:
kube-system里的pods,会多出collectd,grafana,influxdb,mysql,
default namespace下的pods:
jobmanager,restfulapi,nginx, webui2等
tips:
-
所有的service镜像都在Docker hub上,注意resffulapi和webui2是跟cluster name的,其他的都是公用的。所以比如qjytest这个集群,对应webui2的镜像应该是qjytest_webui2.
-
因为大部分images都是公用的,即之前编译后已经存在,所以不用去重新push。但是如果看到status是ImagePullBackOff的话,就可以是image缺失,就需要重新编译以下。例如:
./deploy.py Docker push grafana ./deploy.py Docker push influxdb
当所有service都起来后,通过对应的域名应该是可以访问到网页了。包括http和https
但是没法通过微软账号认证。见下一章