构建docker image和kubernetes job

【构造docker镜像】


1:有个jar包
    chmod 777 jar包名字.jar   #打开读写
2:写一个DocekrFile  

        FROM openjdk:11
        LABEL version="1.0"                    # 值为 1.0 的标签
        COPY jar包名字.jar /usr/playDir/  #从哪里拷贝jar包

        WORKDIR /usr/playDir            #工作目录

        CMD ["java", "-jar", "jar包名字.jar"]
        
3:
    3.1 在dockerfile所在的目录构建镜像:【?如何构造镜像的时候就自定义标签】
        使用 -t 或 --tag 标志来指定标签名称。
        docker build -t my-image:1.0 .
        
        可以为同一个镜像指定多个标签,以便在不同的环境中使用。
        docker build -t my-image:latest -t my-image:1.0 .
        
    3.2 给现有的镜像打标签
                    【现有的镜像:标签】   【想要打成的标签】
        docker tag slow-program-v2:latest 192.168.2.186:31002/zhangliyou/slow-program-v2:v0.0.1
        
4:(可选)运行该Docker镜像
        docker run imageName
        
5:(可选)要查看在容器中运行的JAR文件输出
        docker logs <container-id>

6:删除一个image
        6.1 image是否正在被使用:
        docker image ls
        6.2
        docker rmi -f <image1> <image2> <image3> ...  # -f 强制删除
        
CMD ["java", "-jar", "modelTest-1.0-SNAPSHOT.jar"]

【创建job】


1:构造job的yaml文件
   创建一个xxjob.yaml的文件
apiVersion: batch/v1
kind: Job              # 类型
metadata:
  namespace: <my-namespace>  # 在这里添加 namespace 字段
  name: slowprogram-job        # job的名字
spec:
  template:
    spec:
      containers:
        - name: slowprogram-container      # 自定义的container容器名字
          image: slow-program:1.0          # 从哪个镜像作为启动资金
          command: [ "java", "-jar", "slowProgram.jar" ]  # 执行什么命令
      restartPolicy: Never
                👇
    需要注意的是,如果指定的 Namespace 不存在,则需要先创建该 Namespace,否则 Pod 将无法成功部署。
        kubectl create namespace <my-namespace>   # 创建namespace【字母只能是小写 -】test-namespace  
        kubectl delete namespace <namespace-name>

现在是根据slow-program:1.0这个镜像,用job文件生成了一个job,
这个job的职责是将这个docker镜像运行。我现在想要实现暂停这个job的运行,有对应的命令吗
2:Job
    2.1 应用job文件生成job
        kubectl apply -f slowProgramjob.yaml
    2.2 删除job
        kubectl delete job slowprogram-job   #这个是job文件里你自定义的job名字
    
    2.3 暂停一个job
        kubectl patch job <slowprogram-job> -p '{"spec":{"suspend":true}}'
                # [在最后一行的 Events 中,可以看到 Normal  Suspended,这表示该 Job 已经被暂停了。
                    此时,该 Job 所创建的 Pod 也会被暂停,因此 Pods Statuses 中的
                     Active 和 Ready 数量都为 0。]
    2.4 恢复运行一个job
        kubectl patch job <job-name> -p '{"spec":{"suspend":false}}'
    
4:    获取特定job的详细信息: kubectl describe job <job-name>  -n <test-namespace>
    获取特定pod的详细信息:    kubectl describe pod <my-job-86t2d>
    
    
3:查看job和pod
    3.1 查看job和pod
        kubectl get jobs -A     kubectl get pods -A
        
    3.2 查看pod的日志输出
                        【pod的名字】        【-c表示指定容器 这个container在job文件里定义】
        kubectl logs -f <slow-job-v2-dcxr8> -c slowprogram-container -n <namespace>


    
5: 查看job的uid
        kubectl get jobs -o jsonpath='{.items[*].metadata.name}{"\t"}{.items[*].metadata.uid}{"\n"}'

6:
       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值