部署jar至k8s服务器:

1.首先docker pull java:8

然后将jar放到Dockerfile同级目录

vi Dockerfile

#基础镜像,如果本地仓库没有,会从远程仓库拉取

FROM openjdk:8-jdk-alpine

#容器中创建目录

RUN mkdir -p /usr/local/pasq

#编译后的jar包copy到容器中创建到目录内

COPY k8s-0.0.1-SNAPSHOT.jar /usr/local/pasq/myapp.jar

#指定容器启动时要执行的命令

ENTRYPOINT ["java","-jar","/usr/local/pasq/myapp.jar"]

2

docker build  -t myapp:1.0 .

3.注意worker节点也需要拉取镜像

docker login registry.cn-hangzhou.aliyuncs.com
docker login --username=username registry.cn-hangzhou.aliyuncs.com
username  password

标记镜像:docker tag myapp:1.0 registry.cn-hangzhou.aliyuncs.com/xxxjohnson/myapp:1.0

推送镜像:docker push registry.cn-hangzhou.aliyuncs.com/xxxjohnson/myapp:1.0

拉取镜像:docker pull registry.cn-hangzhou.aliyuncs.com/xxxjohnson/myapp:1.0

4

apiVersion: apps/v1

kind: Deployment

metadata:

  name: myapp-deploy

  namespace: default

spec:

  replicas: 3

  selector:

    matchLabels:

      app: myapp

      release: stabel

  template:

    metadata:

      labels:

        app: myapp

        release: stabel

        env: test

    spec:

      containers:

      - name: myapp
        #这里注意是命名空间+仓库名称
        #注意:latest版本号,远程仓库不认,需要对应版本号为1.0
        image: registry.cn-hangzhou.aliyuncs.com/yangsenjohnson/myapp:1.0
        #本地有的话取本地,没有的话取远程仓库
        imagePullPolicy: IfNotPresent

        ports:

        - name: http

          containerPort: 80
          
 
   kubectl apply -f svc-deployment.yaml
apiVersion: v1

kind: Service

metadata:

  name: myapp

  namespace: default

spec:

  type: NodePort

  selector:

    app: myapp

    release: stabel

  ports:

  - name: http

    port: 8080

    targetPort: 8080

    nodePort: 30080
    
    
    
    
    kubectl apply -f svc-nodePort.yaml
查看pods情况:kubectl describe pod myapp-deploy-74f58c446b-ghhb7

成功部署:

在这里插入图片描述

参考:利用Kubernetes(K8S)部署JAVA项目

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐