当前位置: 首页 > article >正文

win10下使用docker、k8s部署java应用

在上一篇文章 Windows10上Docker和Kubernetes的安装 中,已经介绍了在 Windows10上安装Docker和Kubernetes ,有了这个环境基础之后,就可以用来部署服务了

在项目目录下新建Dockfile文件,内容如下(请根据实际情况调整):

##指定java8环境镜像

FROM openjdk:8-jre-alpine

##复制文件到容器money_note
ADD target/spring-vertx-mybatis.jar /spring-vertx-mybatis.jar

##声明启动端口
EXPOSE 9999

##配置容器启动后执行命令
ENTRYPOINT ["java","-jar","/spring-vertx-mybatis.jar"]

然后在Dockfile文件的目录下,本地构建镜像文件:

docker build -t spring-vertx-mybatis:1.0.0

一、docker方式运行java服务
 

docker run --name spring-vertx-mybatis -d  -p 9999:9999  spring-vertx-mybatis:1.0.0


二、k8s方式运行java服务

docker build -t spring-vertx-mybatis:1.0.0

kubectl create namespace api

新建用于部署的yaml文件:

mkdir deployment-spring-vertx-mybatis.yaml
vi deployment-spring-vertx-mybatis.yaml

yaml文件内容如下: 

apiVersion: apps/v1 # kubernetes API版本号
kind: Deployment # 资源类型:Deployment
metadata:
  name: spring-vertx-mybatis # 资源的名字,在同一个namespace中必须唯一
  namespace: api    #必选,Pod所属的命名空间
spec:
  selector:
    matchLabels:
      app: spring-vertx-mybatis # 使用标签选择器
  replicas: 3 # 设置副本数为3个
  template:
    metadata:
      labels:
        app: spring-vertx-mybatis # 标记 Pod 的标签
    spec:
      containers:
        - name: spring-vertx-mybatis # 容器名称
          image: spring-vertx-mybatis:1.0.0 # 指定容器镜像
          ports:
            - containerPort: 8080 # 开放端口号
---
apiVersion: v1 # kubernetes API版本
kind: Service # 资源类型:Service
metadata:
  name: spring-vertx-mybatis # 资源名称
spec:
  type: LoadBalancer # 暴露 Service 的类型为 LoadBalancer,通过外部负载均衡器访问
  ports:
    - port: 9999 # 容器对外的端口号
      targetPort: 9999 # 容器内的实际端口号
      protocol: TCP # 暴露的协议为TCP
  selector:
    app: spring-vertx-mybatis # 标记应用程序的标签


# 干货!K8S之yaml文件详解 https://blog.csdn.net/ichen820/article/details/117567137
# K8S中 yaml 文件详解   https://blog.csdn.net/kele_baba/article/details/119876397

 kubectl apply -f  deployment-spring-vertx-mybatis.yaml


 kubectl get pods -n api

参考文档:

Kubernetes 集群上的部署JAVA 步骤

 干货!K8S之yaml文件详解 https://blog.csdn.net/ichen820/article/details/117567137
 K8S中 yaml 文件详解   https://blog.csdn.net/kele_baba/article/details/119876397


http://www.kler.cn/news/313794.html

相关文章:

  • Flask 第六课 -- 路由
  • 如何在Linux下升级R版本和RStudio
  • 2024华为杯研赛E题保姆级教程思路分析
  • Linux进阶命令-rsync
  • B-树底层原理
  • 英语六级-学习
  • uv-ui组件的使用——自定义输入框的样式
  • 【2020工业图像异常检测文献】SPADE
  • 数据中台系统产品原型RP原型Axure高保真交互原型 源文件分享
  • 08_React redux
  • AI大模型之旅--milvus向量库安装
  • 软件设计师——操作系统
  • API安全推荐厂商瑞数信息入选IDC《中国数据安全技术发展路线图》
  • 【C#】内存的使用和释放
  • SpringBoot 处理 @KafkaListener 消息
  • 专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
  • Java面试——集合篇
  • Canopen-pn有线通信标准在汽车制造中至关重要
  • MATLAB中的无线通信系统设计有哪些最佳实践
  • OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3566移植案例(下)
  • C++11标准模板(STL)- 常用数学函数 - 计算e的给定幂 (ex)(std::exp, std::expf, std::expl)
  • C语言程序设计(进阶)
  • 渗透测试入门学习——php表单form与POST、GET请求练习
  • 3、等保1.0 与 2.0 的区别
  • 大健康裂变分销小程序开发
  • MATLAB系列05:自定义函数
  • Java 线程之间如何通信?
  • 代码随想录算法训练营第三八天| 279.完全平方数 139.单词拆分
  • Selenium如何通过js注入避免被检测
  • 数字IC设计\FPGA 职位经典笔试面试整理--基础篇1