K8S部署Tomcat项目
注意:记得将Tomcat项目,打包成war!
1、编写Dockerfile【引入Tomcat8】
vi Dockerfile
#=============================================================================
FROM tomcat:8
ADD ExaminationSystem.war /usr/local/tomcat/webapps/
EXPOSE 8080
CMD ["catalina.sh", "run"]
#=============================================================================
2、构建镜像
docker build -t social .
`01、登录阿里云Docker Registry
$ docker login --username=benkid52 registry.cn-hangzhou.aliyuncs.com
`02、查看镜像
$ docker images
#========================================================================================
REPOSITORY TAG IMAGE ID CREATED SIZE
social latest d704b3faed62 54 seconds ago 753MB
#========================================================================================
`03、推送镜像
$ docker tag 5d4157801cc2 registry.cn-hangzhou.aliyuncs.com/zhangzhiwei/zzwman123:social
$ docker push registry.cn-hangzhou.aliyuncs.com/zhangzhiwei/zzwman123:social
3、K8S运行镜像
①编辑social-deployment.yaml
vi social-deployment.yaml
#=========================================================================================
apiVersion: apps/v1 #kubectl api-versions 可以通过这条指令去看版本信息
kind: Deployment # 指定资源类别
metadata: #资源的一些元数据
name: social-deployment #deloyment的名称
labels:
app: social-deployment #标签
spec:
replicas: 1 #创建pod的个数
selector:
matchLabels:
app: social-deployment #满足标签为这个的时候相关的pod才能被调度到
template:
metadata:
labels:
app: social-deployment
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/zhangzhiwei/zzwman123:social
imagePullPolicy: IfNotPresent
name: social-deployment
ports:
- containerPort: 8080
2、部署应用social-deployment.yaml
kubectl apply -f social-deployment.yaml
`查看pods
kubectl get pods
#========================================================================================
NAME READY STATUS RESTARTS AGE
social-deployment-5c5d8d7778-lc7zz 1/1 Running 0 17m
3、编辑social-svc.yaml
vi social-svc.yaml
#=========================================================================================
apiVersion: v1
kind: Service
metadata:
name: socail-svc
spec:
type: NodePort
ports:
- port: 82
targetPort: 8080
nodePort: 82
protocol: TCP
selector:
app: social-deployment
4、部署应用social-svc.yaml
kubectl apply -f social-svc.yaml
`查看pods
kubectl get svc
#========================================================================================
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
socail-svc NodePort 10.43.158.5 <none> 82:82/TCP 13d
5、访问系统
访问地址:IP地址:82端口