[kubernetes]6-5 传统dubbo服务迁移kubernetes(上)
6-5 传统dubbo服务迁移kubernetes(上)
先将mooc-k8s-demo文件夹拷贝到服务器上
先在dubbo-demo-api中执行mvn install,然后去dubbo-demo文件夹中执行mvn clean package
cd /opt/kubernetes/mooc-k8s-demo/dubbo-demo-api/
mvn install
cd /opt/kubernetes/mooc-k8s-demo/dubbo-demo/
mvn package
编译
cd target/
mkdir ROOT && cd ROOT
mv ../dubbo-demo-1.0-SNAPSHOT-assembly.tar.gz .
tar xf dubbo-demo-1.0-SNAPSHOT-assembly.tar.gz
rm -rf dubbo-demo-1.0-SNAPSHOT-assembly.tar.gz
创建一个zookeeper 然后修改dubbo.dubbo.properties里的zk的ip
docker pull zookeeper
docker run -d -p 2181:2181 --name zookeeper zookeeper
修改zk 的ip
sh ./bin/start.sh
cat logs/stdout.log
通过telnet 192.168.10.170 20880来测试dubbo端口
telnet 192.168.10.170 20880
dubbo>ls
com.mooc.demo.api.DemoService
dubbo>ls com.mooc.demo.api.DemoService
sayHello
dubbo>invoke com.mooc.demo.api.DemoService.sayHello("jiaminxu")
"Hello jiaminxu"
elapsed: 13 ms.
停止服务
sh bin/stop.sh
打镜像Dockerfile如下
FROM openjdk:8-jre-alpine COPY target/ROOT /ROOT CMD sh /ROOT/bin/start.sh && tail -f /ROOT/logs/stdout.log
修改ROOT/bin/start.sh如下
#!/bin/bash cd `dirname $0` BIN_DIR=`pwd` cd .. DEPLOY_DIR=`pwd` CONF_DIR=${DEPLOY_DIR}/conf SERVER_NAME=`sed '/dubbo.application.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\r'` SERVER_PORT=`sed '/dubbo.protocol.port/!d;s/.*=//' conf/dubbo.properties | tr -d '\r'` if [ -z "${SERVER_NAME}" ]; then echo "ERROR: can not found 'dubbo.application.name' config in 'dubbo.properties' !" exit 1 fi if [ -n "${SERVER_PORT}" ]; then SERVER_PORT_COUNT=`netstat -ntl | grep ${SERVER_PORT} | wc -l` if [ ${SERVER_PORT_COUNT} -gt 0 ]; then echo "ERROR: The ${SERVER_NAME} port ${SERVER_PORT} already used!" exit 1 fi fi LOGS_DIR="" if [ -n "${LOGS_FILE}" ]; then LOGS_DIR=`dirname ${LOGS_FILE}` else LOGS_DIR=${DEPLOY_DIR}/logs fi if [ ! -d ${LOGS_DIR} ]; then mkdir ${LOGS_DIR} fi STDOUT_FILE=${LOGS_DIR}/stdout.log LIB_DIR=${DEPLOY_DIR}/lib LIB_JARS=`ls ${LIB_DIR} | grep .jar | awk '{print "'${LIB_DIR}'/"$0}'|tr "\n" ":"` JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true " JAVA_DEBUG_OPTS="" if [ "$1" = "debug" ]; then JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n " fi echo -e "Starting the ${SERVER_NAME} ...\c" ${JAVA_HOME}/bin/java -Dapp.name=${SERVER_NAME} ${JAVA_OPTS} ${JAVA_DEBUG_OPTS} ${JAVA_JMX_OPTS} -classpath ${CONF_DIR}:${LIB_JARS} com.alibaba.dubbo.contai
构建镜像
docker build -t dubbo:v2 .
启动测试
docker run -it dubbo:v2