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


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

    1.   Idea maven打包

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

    Maven-----打成jar包。

    2.   Docker  配置私服地址:

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

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

    {
    "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镜像:红色是需要自己修改的

    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/",最好为两层路径,不然会报错找不到文件路径,

    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镜像的时候使用(服务器有镜像的不用拉取);

    docker  pull  10.0.0.34:5000/project/openjdk:8-jdk-alpine
    

      

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

    docker  build   -t  test:latest  
    

      

    .

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

    docker   tag  test:latest   10.0.0.34:5000/project/ test:latest
    

      

     

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

    docker  push   10.0.0.34:5000/project/case:latest
    

      

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

    curl  http://10.0.0.34:5000/v2/_catalog
    

      

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

    4.   Vue前端代码

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

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

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

    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目录执行脚本,进行打包镜像,标签,推送到私服

    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创建

     

     

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

    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  点击”确定” “应用” 创建成功如下图:

     

     

    6.   K8S发布

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

     

     

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

     

     

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

     

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

     

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

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

  • 相关阅读:
    Spring Cloud第九篇 | 分布式服务跟踪Sleuth
    Spring Cloud第八篇 | Hystrix集群监控Turbine
    Spring Cloud第七篇 | 声明式服务调用Feign
    Spring Cloud第六篇 | Hystrix仪表盘监控Hystrix Dashboard
    Spring Cloud第五篇 | 服务熔断Hystrix
    Spring Cloud第四篇 | 客户端负载均衡Ribbon
    Spring Cloud第三篇 | 搭建高可用Eureka注册中心
    Spring Cloud第二篇 | 使用并认识Eureka注册中心
    Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览
    一套简约漂亮的响应式博客园主题皮肤分享给你们(二)
  • 原文地址:https://www.cnblogs.com/airen123/p/15438255.html
Copyright © 2020-2023  润新知