前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k8s 微服务打包上传私库、部署、发布

k8s 微服务打包上传私库、部署、发布

作者头像
全栈程序员站长
发布2022-09-07 11:30:37
8880
发布2022-09-07 11:30:37
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

微服务打包上传私库、部署、发布

1. Idea maven打包

修改配置文件yml的 eureka地址:http://10.0.0.111:11111/eureka

Maven—–打成jar包。

2. Docker 配置私服地址:

1 Docker配置镜像加速器地址和私库地址:在/etc/docker目录创建daemon.json文件

在daemon.json文件中填写如下配置

代码语言:javascript
复制
{
"registry-mirrors": ["https://vaflkxbk.mirror.aliyuncs.com"],
"insecure-registries": ["10.0.0.34:5000"]
}

重启docker服务: systemctl restart docker

链接地址:

https://jingyan.baidu.com/article/466506585d92f8b549e5f89c.html

3. Java后端代码创建镜像

1 在安装docker环境的服务器上新建一个目录,

2 把项目maven jar上传到目录里面,新建一个Dockerfile文件,用来打包docker镜像:红色是需要自己修改的

代码语言:javascript
复制
FROM 10.0.0.34:5000/project/openjdk:8-jdk-alpine
EXPOSE 8508
VOLUME "/tmp"
COPY PROJECT_TEST-1.0.1-SNAPSHOT.jar  test.jar
ENTRYPOINT ["java","-Dspring.profiles.active=docker","-jar","/test.jar"]

3 如果项目用到本地目录的应该添加VOLUME路径”/opt/case/”,最好为两层路径,不然会报错找不到文件路径,

代码语言:javascript
复制
FROM 10.0.0.34:5000/project/openjdk:8-jdk-alpine
EXPOSE 8508
VOLUME ["/tmp","/opt/case/"]
COPY PROJECT_TEST-1.0.1-SNAPSHOT.jar  test.jar
ENTRYPOINT ["java","-Dspring.profiles.active=docker","-jar","/ test.jar"]

4 docker拉取jdk镜像,创建Java镜像的时候使用(服务器有镜像的不用拉取);

代码语言:javascript
复制
docker  pull  10.0.0.34:5000/project/openjdk:8-jdk-alpine

5 docker images查看拉取成功后,开始创建Java镜像:

代码语言:javascript
复制
docker  build   -t  test:latest  

.

6 创建成功后修改项目镜像的tag,加上docker私库的ip端口,用于上传镜像:

代码语言:javascript
复制
docker   tag  test:latest   10.0.0.34:5000/project/ test:latest
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布

7 docker images查看 修改成功了,开始上传镜像到私库:

代码语言:javascript
复制
docker  push   10.0.0.34:5000/project/case:latest

8 上传成功后,查看私库的镜像列表:

代码语言:javascript
复制
curl  http://10.0.0.34:5000/v2/_catalog
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布

9 也可以浏览器访问http://10.0.0.34:5000/v2/_catalog查看一下是否推送成功

4. Vue前端代码

1 登录Docker环境的服务器,新建目录:上传dist和nginx.conf文件

2 编写nginx的配置文件,具体内容因项目而异

3 在项目中增加Dockerfile文件,用来打包docker镜像

代码语言:javascript
复制
FROM nginx
ENV TimeZone=Asia/Shanghai
RUN mkdir /etc/nginx/logs
COPY dist/ /etc/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf

4 在Dockerfile目录执行脚本,进行打包镜像,标签,推送到私服

代码语言:javascript
复制
docker build -t="project/client" ./         # 打包docker镜像
docker tag project/client:latest 10.0.0.34:5000/project/client:latest
#设置远程私服标签

docker push 10.0.0.34:5000/project/client # 推送到私服

可以访问http://10.0.0.34:5000/v2/_catalog查看一下是否推送成功

5. K8S部署

1 登录到k8s:http://10.30.16.224:32567/dashboard 选择名称空间

输入Token:

eyJhbGciOiJSUzI1NiIsImtpZCI6IjhPUXFjcXp1ZmNHODM4amlUd1dYMElaZTUyUlAtbzlHZzRZb20zYUthZU0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tN3pqeHMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiOGZiYTZkYTMtNWYzOC00ODBiLThmMjYtNTA5OTMxMDUyNWIzIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.hxmqaVDpNxC24g9nA374b4yVltDZtkqrkwrzOLS7XgCPY4ighPdXbyLewQZdm9wKznKcKBH21Pj9jHe4yaugNSwnARgiBUyR44ORBseGUW7qjR-cPBI9g-iqJGX8uaAYLmgvMhvvsg

2 点击进入名称空间,常用操作,选择从yaml创建

<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布

编写部署镜像的yaml文件,把所有case的地方替换成你项目名称(namespace是部署的空间目录,containerPort是端口号)

代码语言:javascript
复制
kind: Deployment
apiVersion: apps/v1
metadata:
  name: test-deployment
  namespace: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - name: test
        image: 10.0.0.34:5000/project/ test
        ports:
        - containerPort: 8508

2 点击”确定” “应用” 创建成功如下图:

<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布

6. K8S发布

1 点击服务查看,进入编辑区

<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布

2 点击编辑按钮进入服务发布编辑区,添加下图红色框的内容,

<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布

填写service页面,k8s端口范围30000-32767:

<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布

3 填写完毕后,点击保存,服务自动发布

<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布
<span role="heading" aria-level="2">k8s 微服务打包上传私库、部署、发布

4 Swagger测试服务http://10.30.16.211:31010/swagger-ui.html把端口号改成自己的端口

5 K8s开放平台测试服务http://10.30.16.224:30080/project

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154823.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Idea maven打包
  • 2. Docker 配置私服地址:
  • 3. Java后端代码创建镜像
  • 4. Vue前端代码
  • 5. K8S部署
  • 6. K8S发布
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档