zoukankan      html  css  js  c++  java
  • 在Kubernetes(k8s)中部署Java应用

    目录

    1、项目迁移到k8s平台的怎样的流程

    2、Kubernetes基本概念

    3、构建项目镜像

    4、部署项目镜像到Kubernetes平台


    1、项目迁移到k8s平台的怎样的流程

    2、Kubernetes基本概念

     Pod • 最小部署单元 • 一组容器的集合 • 一个Pod中的容器共享网络命名空间 • Pod是短暂的

     Controllers • Deployment : 无状态应用部署 • StatefulSet : 有状态应用部署 • DaemonSet : 确保所有Node运行同一个Pod • Job : 一次性任务 • Cronjob : 定时任务
    更高级层次对象,部署和管理Pod

     Service • 防止Pod失联 • 定义一组Pod的访问策略
     Label : 标签,附加到某个资源上,用于关联对象、查询和筛选
     Namespaces : 命名空间,将对象逻辑上隔离

    3、构建项目镜像

    1、准备Jar包

    2、制作镜像

    解压文件

    yum install -y unzip && unzip tomcat-java-demo-master.zip 
    

    把这个sql文件导入mysql。

    在Node1上下载mysql:5.6的镜像。

    docker run -p 3306:3306 --name mysql-master 
    -v /mydata/mysql/master/log:/var/log/mysql 
    -v /mydata/mysql/master/data:/var/lib/mysql 
    -v /mydata/mysql/master/conf:/etc/mysql 
    -e MYSQL_ROOT_PASSWORD=root 
    -d mysql:5.6

    接下导入sql数据。

    可以使用工具导入方便。

    修改代码里的配置文件

    安装JDk和Maven环境

     yum install -y java-1.8.0-openjdk maven
    

    修改maven源

    vim /etc/maven/settings.xml
    
    
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    

    编译源码 【漫长的等待】

    mvn clean package -D maven.test.skip=true
    

    准备使用DockerFile文件来构建镜像。

    FROM lizhenliang/tomcat 
    LABEL maintainer www.ctnrs.com
    RUN rm -rf /usr/local/tomcat/webapps/*
    ADD target/*.war /usr/local/tomcat/webapps/ROOT.war 
    

    构建镜像

    docker build -t lizhenliang/java-demo -f Dockerfile .

    已经成功

    写ymal文件【生成模板,在修改】

    kubectl create deployment java-demo --image=lizhenliang/java-demo --dry-run -o yaml 
    
    #内容
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      creationTimestamp: null
      labels:
        app: java-demo
      name: java-demo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: java-demo
      strategy: {}
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: java-demo
        spec:
          containers:
          - image: lizhenliang/java-demo
            name: java-demo
            resources: {}
    status: {}
    

    重定向,生成本地的yaml

    kubectl create deployment java-demo --image=lizhenliang/java-demo --dry-run -o yaml > deploy.yaml
    
    [root@master ~]# cat deploy.yaml 
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: java-demo
      name: java-demo
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: java-demo
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: java-demo
        spec:
          containers:
          - image: lizhenliang/java-demo
            name: java-demo
    

    运行

    kubectl apply -f deploy.yaml 
    

    kubectl get pods

    4、部署项目镜像到Kubernetes平台

    人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。
  • 相关阅读:
    Echars折线配置详解
    Echarts中太阳图(Sunburst)的实例
    MongoDB shell 介绍
    js深度克隆对象
    js将有父子关系的数据转换成树形结构数据
    使用Mongoose类库实现简单的增删改查
    MongoDB可视化工具--Robo 3T 使用教程
    go语言之进阶篇并行和并发的区别与go语言并发优势
    go语言之进阶篇拷贝文件案例
    go语言之进阶篇借助bufio实现按行读取内容
  • 原文地址:https://www.cnblogs.com/heian99/p/14466677.html
Copyright © 2011-2022 走看看