k8s部署java项目并实现访问

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

使用kubernetes部署java项目并实现应用的访问、项目部署流程图如下
在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、准备一个java项目(任意项目不一定是java项目)

目的为制作镜像做准备,我这里使用的是一个war包,没有使用jar包是因为想给自己编写dockerfile时创造点麻烦。

二、使用dockerfile制作镜像

1.vi Dockerfile

代码如下(示例):
FROM:基于tomcat底层镜像
MAINTAINER: 作者
WORKER: 相当于cd
RUN:在刚cd到的目录执行命令、多个命令用&&分隔
COPY:这里写的是将Dockerfile同级目录下的bbmeow.war复制到相应目录
EXPOSE:暴露端口

FROM tomcat
MAINTAINER lzl
WORKDIR /usr/local/tomcat/
RUN rm -rf webapps && mv webapps.dist webapps
COPY bbmeow.war /usr/local/tomcat/webapps/
EXPOSE 8080

2.创建镜像

代码如下(示例):
执行docker build -t 镜像名称(任意). 命令

docker build -t mytomcat .

注意命令最后的“.” 是当前目录的意思


测试镜像

docker run 我们刚刚创建的镜像 mytomcat

docker run -d -p 8081:8080 --name mytomcattest mytomcat

三、推送镜像到镜像仓库

如果你有自己的镜像仓库如阿里等,可以直接推送到已有的仓库上。
这里使用的是本地仓库。

1.创建私有仓库

执行命令

#拉取基础镜像
docker pull registry
#构建本地仓库
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart always --name registry registry
#这时可以通过 curl测试一下
curl 本地仓库所在节点的ip(你的k8s集群可以访问到):5000/v2/_catalog

2.推送镜像

先打一个标签
docker tag mytomcat:latest 刚才的主机ip:5000/mytomcat(自定义名称):v1(自定义版本号)

docker tag mytomcat:latest 刚才的主机ip:5000/mytomcat:v1 

查看打好的镜像
在这里插入图片描述
push镜像
docker push 刚刚打好的镜像tag

docker push 172.42.42.1:5000/mytomcat:v1

报错的解决办法

vi /etc/docker/daemon.json
#添加如下内容
"insecure-registries":["刚才的ip:5000"]

测试

curl 刚才的ip:5000/v2/_catalog
curl 刚才的ip:5000/v2/镜像名/tags/list

四、控制器部署镜像

现在k8s集群的机器上先pull上传好的镜像

docker pull 172.42.42.1:5000/mytomcat:v1

deployment部署

kubectl create deployment bbmeow --image 172.42.42.1:5000/mytomcat:v1 --dry-run -o yaml > bbmeow.yaml
kubectl create -f bbmeow.yaml
kubectl get pod

五、对外暴露服务

我这里使用的是nodeport的方式也就是service,也可以使用ingress或者loadbalan…
扩容deployment

kubectl scale deployment bbmeow --replicas 3

实现暴露

kubectl expose deployment bbmeowsvc --port 8111 --target-port 8080 --type NodePort
#查看svc
kubectl get svc

在这里插入图片描述

这时可以通过图片中的32519端口访问服务了。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值