一、代码如下
二、把服务做到镜像中
0、主机打包测试运行下
我们到之前克隆好的项目目录下
执行打包命令
mvn package
使用jar命令看下
jar -tf springboot-web-demo-1.0-SNAPSHOT.jar
使用java -jar 运行一下
java -jar springboot-web-demo-1.0-SNAPSHOT.jar
访问测试
10.155.20.50:8080/hello?name=Michael
1、搞定基础镜像
我们这个服务也只用java的镜像就行了。
这个我们用之前推送到镜像仓库的镜像就行。
2、搞定服务运行的相关文件
就是我们打包的jar,也已经准备好了。
3、构建镜像
扫描二维码关注公众号,回复:
15813175 查看本文章
vi Dockerfile
内容如下:
FROM hub.mooc.com/kubernetes/openjdk:8-jre-alpine
COPY target/springboot-web-demo-1.0-SNAPSHOT.jar /springboot-web.jar
ENTRYPOINT ["java", "-jar", "/springboot-web.jar"]
本地测试一下,先构建镜像
docker build -t springboot-web:v1 .
同样,我们docker run一下。
docker run -it springboot-web:v1
将镜像推送到仓库里。
docker tag springboot-web:v1 hub.mooc.com/kubernetes/spring-web:v1
docker push hub.mooc.com/kubernetes/spring-web:v1
三、制作k8s服务并调度
注意,我们这个是个web项目,有ip、端口需要配置服务发现的策略。
1、确定服务发现策略
vi springboot-web.yaml
springboot-web.yaml的内容如下:
#deploy
apiVersion: apps/v1
kind: Deployment
metadata:
name: springboot-web-demo
spec:
selector:
matchLabels:
app: springboot-web-demo
replicas: 1
template:
metadata:
labels:
app: springboot-web-demo
spec:
containers:
- name: springboot-web-demo
image: hub.mooc.com/kubernetes/springboot-web:v1
ports:
- containerPort: 8080
---
#service
apiVersion: v1
kind: Service
metadata:
name: springboot-web-demo
spec:
ports:
- port: 80
protocol: TCP
targetPort: 8080
selector:
app: springboot-web-demo
type: ClusterIP
---
#ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: springboot-web-demo
spec:
rules:
- host: springboot.mooc.com
http:
paths:
- path: /
backend:
serviceName: springboot-web-demo
servicePort: 80
下面来apply一下
kubectl apply -f springboot-web.yaml
看下是否启动了起来
kubectl get pods
我们要先在本地绑定一个host
添加:
10.155.20.120 springboot.mooc.com
打开浏览器测试
springboot.imooc.com/hello?name=Michael