Kubernetes中部署Spring Boot项目(七)
这个springboot项目打包过程我就不说了,很基础;下面我直接从写Dockerfile文件开始,如果不知道Dockerfile文件是什么的可以去看下我写的几篇docker的文章
一、创建文件夹
mkdir springboot-demo
cd springboot-demo
二、创建Dockerfile文件
vi Dockerfile
将下面文件复制进去
ROM openjdk:8-jre-alpine COPY springboot-demo-0.0.1-SNAPSHOT.jar /springboot-demo.jar ENTRYPOINT ["java","-jar","/springboot-demo.jar"]
三、根据Dockerfile创建image
docker build -t springboot-demo-image .
四、使用docker run创建container
docker run -d --name s1 springboot-demo-image
五、访问测试
docker inspect s1 curl ip:8080/k8s
六、将镜像推送到镜像仓库
我自己电脑没有创建私服的镜像仓库,所以我上传到我自己的阿里云镜像仓库了,如果想创建私服也可以看我的docker文章,里面也有说明怎么创建
登录阿里云镜像仓库
docker login --username=xxxx@qq.com registry.cn-hangzhou.aliyuncs.com
打tag标签
docker tag springboot-demo-image:v1.0 ghy/springboot-demo-image:v1.0
上传阿里云
docker push ghy/springboot-demo-image:v1.0
七、编写Kubernetes配置文件
vi springboot-demo.yaml
# 以Deployment部署Pod apiVersion: apps/v1 kind: Deployment metadata: name: springboot-demo spec: selector: matchLabels: app: springboot-demo replicas: 1 template: metadata: labels: app: springboot-demo spec: containers: - name: springboot-demo image: ghy/springboot-demo-image:v1.0 ports: - containerPort: 8080 --- # 创建Pod的Service apiVersion: v1 kind: Service metadata: name: springboot-demo spec: ports: - port: 80 protocol: TCP targetPort: 8080 selector: app: springboot-demo --- # 创建Ingress,定义访问规则,一定要记得提前创建好nginx ingress controller apiVersion: extensions/v1beta1 kind: Ingress metadata: name: springboot-demo spec: rules: - host: k8s.demo http: paths: - path: / backend: serviceName: springboot-demo servicePort: 80
执行命令执行脚本
kubectl apply -f springboot-demo.yaml
八、查看资源
查看资源命令
kubectl get pods kubectl get pods -o wide
kubectl get svc
查看访问的域名,会看到hosts上的域名
kubectl get ingress
九、win配置hosts文件
192.168.0.61 k8s.demo
十、win浏览器访问
http://k8s.demo/接口
这短短的一生我们最终都会失去,不妨大胆一点,爱一个人,攀一座山,追一个梦