k8s部署项目流程
- 制作镜像(使用Dockerfile)
- 推送镜像仓库
- 控制器部署镜像(Deployment)
- 对外暴露应用(Service、Ingress)
- 运维(监控升级)
制作镜像
将Java项目(spring boot)打成jar包:
mvn clean package
制作镜像:
Dockerfile
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD ./demo.jar demo.jar
ENTRYPOINT ["java","-jar","/demo.jar","&"]
docker build -t java-demo-01:latest .
docker images
在本地启动制作好的镜像,是否可以访问:
docker run -d -p 8111:8111 java-demo-01:latest -t
推送镜像
上传到镜像到镜像服务器(阿里云):
登录镜像仓库:
docker login --username=用户名 registry.cn-beijing.aliyuncs.com
给镜像打一个版本号:
docker tag 镜像id registry.cn-beijing.aliyuncs.com/命名空间/java-project-01:1.0.0
实现推送:
docker push registry.cn-beijing.aliyuncs.com/命名空间/java-project-01:1.0.0
部署镜像
kubectl create javademo1 --image=registry.cn-beijing.aliyuncs.com/命名空间/java-project-01:1.0.0 --dry-run -o yaml > javademo1.yaml
kubectl apply -f javademo1.yaml
暴露应用
kubectl scale deployment javademo1 --replicas=3
kubectl expose deployment javademo1 --port=8111 --target-port=8111 --type=NodePort
kubectl get svc