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

相关推荐
杨荧1 分钟前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
minDuck3 分钟前
ruoyi-vue集成tianai-captcha验证码
java·前端·vue.js
为将者,自当识天晓地。22 分钟前
c++多线程
java·开发语言
daqinzl30 分钟前
java获取机器ip、mac
java·mac·ip
ZHOU西口33 分钟前
微服务实战系列之玩转Docker(十八)
分布式·docker·云原生·架构·数据安全·etcd·rbac
激流丶1 小时前
【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
java·大数据·kafka·topic
Themberfue1 小时前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
让学习成为一种生活方式1 小时前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
晨曦_子画1 小时前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
南宫生2 小时前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法