目前在基调听云Saas Server中,支持两种探针授权(普通探针授权和微服务探针授权),以满足不同的使用场景。以下是这两种探针的介绍:
普通探针的安装方式、计费方式等都与以往保持一致,未发生变更。而微服务探针的识别方式、安装方式、计费方式等相对特殊。
首先,识别微服务探针的两个必要条件是:部署在Docker内且Docker的内存小于2G。从Java探针V2.6.2版本以后,探针不但能识别部署环境是否为Docker,还能采集到Docker内操作系统的内存大小。
Docker内存获取的原则是:获取宿主机(CentOS 7)文件 /proc/meminfo
和Docker容器内文件/sys/fs/cgroup/memory/memory.limit_in_bytes
的最小值。
/proc/meminfo
中内存大小的限制。/proc/meminfo
中内存大小,则探针获取 /sys/fs/cgroup/memory/memory.limit_in_bytes
中内存大小的限制。/proc/meminfo
中内存大小,则探针获取/proc/meminfo
中内存大小的限制。说明:目前Java V2.6.2探针只能获取部署在CentOS 7及以上版本的Docker的内存限制。
Kubernetes的简称是k8s,它是一个全新的基于容器技术的分布式架构领先方案,它能在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能。
在k8s中部署探针时,可以通过在YAML对象配置文件中增加limits.memory
,对容器的内存进行限制。如果memory
的值小于2G,该探针会被识别为微服务探针。例如:
containers:
- name: wp
image: tomcat
resources:
limits:
memory: "2048Mi"
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器完全使用沙箱机制,相互之间不会有任何接口。
在Docker中部署探针时,可以通过run -m
参数限制分配的内存。例如:
docker run -m 2048m [镜像名]
如果限制的内存小于或等于2G,该探针会被识别为微服务探针。更多详细配置说明参见: https://docs.docker.com/v17.09/engine/reference/commandline/run/。