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