安装java环境:
yum install -y java-openjdk-1.8.0 maven
编译java应用程序包
mvn clean package -Dmaven.test.skip=true
配置Dockerfile
vi Dockerfile
FROM tomcat
LABEL maintainer nkt
RUN rm -rf /usr/local/tomcat/webapps/*
ADD target/*.war /usr/local/tomcat/webapps/ROOT.war
拉取tomcat环境镜像:
docker pull tomcat
构建应用镜像:
docker build -t registry.abc.com/abctest/java-demo:v1 -f Dockerfile .
![图片[1]-Kubectl部署Java应用-](https://fbi.kim/wp-content/uploads/2019/12/image-93.png)
为镜像打标签:
docker tag registry.abc.com/abctest/java-demo:v1
登陆私有镜像仓库:
docker login registry.abc.com
上传镜像到仓库:
docker push registry.abc.com/abctest/java-demo:v1
![图片[2]-Kubectl部署Java应用-](https://fbi.kim/wp-content/uploads/2019/12/image-94.png?x-oss-process=image/resize,m_fill,h_544,w_1024)
创建部署模板,但实际不执行部署:
kubectl create deployment java-demo –image=registry.abc.com/nkttest/java-demo:v1 –dry-run -o yaml > deploy.yaml
执行部署:
kubectl apply -f deploy.yaml
查看pods:
kubectl get pods
![图片[3]-Kubectl部署Java应用-](https://fbi.kim/wp-content/uploads/2019/12/image-95.png)
查看pods日志:
kubectl logs java-demo-6c4cf86849-7lqvm
![图片[4]-Kubectl部署Java应用-](https://fbi.kim/wp-content/uploads/2019/12/image-96.png)
暴露应用,对外提供服务:
kubectl expose deployment java-demo –port=30003 –target-port=8080 –type=NodePort
( 对外端口30003,容器内部8080 )
![图片[5]-Kubectl部署Java应用-](https://fbi.kim/wp-content/uploads/2019/12/image-98.png)