下面找到一个还可以的解决方法,这里记录一下,需要修改java的配置文件,主要是因为linux系统中/dev/random和/dev/urandom是不一样的,/dev/random设备提供的不是伪随机数据,而是基于环境中的真实随机因素(即背景噪声作为熵源)的随机数据。所以,/dev/random不像设备/dev/urandom。后者是一个伪随机数据生成器,能按照请求快速生成所需数量的数据。/dev/random能生成多少内容由环境中的噪声决定。数据不足时,/dev/random只能等待。所以,在内容不足时,/dev/random会将读操作阻塞,直至收集到足够的随机数据。这就是测试结果差异产生的原因,/dev/random阻塞第二次的读操作将近1分钟时间。下面进行测试,先把基础镜像拉取下来,然后修改java的配置:
[wolf@wulaoer.org🔥🔥🔥🔥 ~]# docker pull registry-vpc.cn-beijing.aliyuncs.com/wulaoer-harb/centos7-jdk:1.2 [wolf@wulaoer.org🔥🔥🔥🔥 ~]# docker run -it registry-vpc.cn-beijing.aliyuncs.com/wulaoer-harb/centos7-jdk:1.2 /bin/bash [root@d58128902bb9 /]# sed -i "s/securerandom.source=file:\/dev\/random/securerandom.source=file:\/dev\/urandom/g" /usr/local/java/jdk1.8.0_281/jre/lib/security/java.security [wolf@wulaoer.org🔥🔥🔥🔥 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d58128902bb9 registry-vpc.cn-beijing.aliyuncs.com/wulaoer-harb/centos7-jdk:1.2 "/bin/bash" 2 minutes ago Exited (0) 4 seconds ago heuristic_shockley [wolf@wulaoer.org🔥🔥🔥🔥 ~]# docker commit d58128902bb9 centos7-jdk:1.3 [wolf@wulaoer.org🔥🔥🔥🔥 ~]# docker tag centos7-jdk:1.3 registry-vpc.cn-beijing.aliyuncs.com/wulaoer-harb/centos7-jdk:1.3 [wolf@wulaoer.org🔥🔥🔥🔥 ~]# docker push registry-vpc.cn-beijing.aliyuncs.com/wulaoer-harb/centos7-jdk:1.3
这里主要是把java中$JAVA_HOME/jre/lib/security/java.security的
securerandom.source=file:/dev/random 改为 securerandom.source=file:/dev/urandom
然后重新生成镜像,经过测试,修改前后的镜像对比确实快了一分钟左右,所以这个方法还是靠谱的,这里记录一下方便后期使用,吐槽一下,去掉requests和limits的值或者增加配置都会失去kubernetes的意义,如果去掉requests和limits的值或者不限制在kubernetes中就无法做到自动伸缩,如果不限制,当访问超过node的配置就会出现重启,用户请求就会出现503.
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏