国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s+springboot+CronJob 定時(shí)任務(wù)部署

這篇具有很好參考價(jià)值的文章主要介紹了k8s+springboot+CronJob 定時(shí)任務(wù)部署。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

kubernetes+springboot+CronJob 定時(shí)任務(wù)配置如下代碼:

k8s+springboot+CronJob 定時(shí)任務(wù)部署,kubernetes,spring boot,容器

  1. cronjob.yaml k8s 文件??
    apiVersion: batch/v1
    kind: CronJob
    metadata:
      name: k8s-springboot-demo
      namespace: rz-dt
    spec:
      failedJobsHistoryLimit: 3 #執(zhí)行失敗job任務(wù)保留數(shù)量
      successfulJobsHistoryLimit: 5 #執(zhí)行成功job任務(wù)保留數(shù)量
      startingDeadlineSeconds: 180
      concurrencyPolicy: Forbid
      schedule: "*/1 * * * *" #每分鐘執(zhí)行一次
      jobTemplate:
        spec:
          template:
            spec:
              containers:
                - name: k8s-springboot-demo
                  image: rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt/k8s-springboot-demo:$IMG_TAG
                  imagePullPolicy: Always
                  #command: ["java","-jar","/usr/local/cenobitor/k8s-springboot-demo.jar"]#dockerfile已有此處不需要配置
                  args: ["sendEmail","sendEmail2"] # 配置任務(wù)類(lèi)的名稱(chēng)
                  volumeMounts:
                    - name: time-config
                      mountPath: /etc/localtime
                      readOnly: true
                  #envFrom:
                  # - configMapRef:
                  #      name: smcp-config
                  # - secretRef:
                  #     name: smcp-service-secret
                  resources:
                    requests:
                      cpu: "250m"
                      memory: 216Mi
                    limits:
                      cpu: "500m"
                      memory: 512Mi
              restartPolicy: Never
              #從私有倉(cāng)庫(kù)拉取鏡像憑證
              imagePullSecrets:
                - name: rz-dt-miyue-vpc
              volumes:
                - name: time-config
                  hostPath:
                    path: /usr/share/zoneinfo/Asia/Shanghai
    
  2. Dockerfile 文件
    #基礎(chǔ)鏡像,如果本地倉(cāng)庫(kù)沒(méi)有,會(huì)從遠(yuǎn)程倉(cāng)庫(kù)拉取 openjdk:8
    FROM openjdk:8
    #暴露端口
    EXPOSE 8089
    #容器中創(chuàng)建目錄
    RUN mkdir -p /usr/local/cenobitor
    #編譯后的jar包c(diǎn)opy到容器中創(chuàng)建到目錄內(nèi)
    COPY target/k8s-springboot-demo.jar /usr/local/cenobitor/k8s-springboot-demo.jar
    #指定容器時(shí)區(qū)
    RUN rm -f /etc/localtime \
    && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone
    #指定容器啟動(dòng)時(shí)要執(zhí)行的命令
    ENTRYPOINT ["java","-jar","/usr/local/cenobitor/k8s-springboot-demo.jar"]
    
  3. test.sh 文件

    echo "開(kāi)始制作鏡像..."
    image_tag=`date +%Y-%m-%d-%H-%M-%S` #_%H%M
    echo "當(dāng)前時(shí)間:$image_tag"
    docker build -t k8s-springboot-demo:${image_tag} .
    echo "制作鏡像成功!"
    
    echo "登錄"
    sudo docker login --username=aliyun0398513152 rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com --password=1234
    
    echo "鏡像最新版本提交"
    docker tag k8s-springboot-demo:${image_tag} rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt/k8s-springboot-demo:${image_tag}
    docker push rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt/k8s-springboot-demo:${image_tag}
    
    echo "k8s一鍵部署"
    export IMG_TAG=${image_tag}
    envsubst < cronjob.yaml | kubectl --kubeconfig ~/.kube-rz/config apply -f -
    
    
    

    4個(gè)代碼實(shí)現(xiàn)類(lèi):

  4. package com.example.demo.job;
    
    public interface Command {
        /**
         * 遵循Unix約定,如果命令執(zhí)行正常,則返回0;否則為非0。
         */
        int execute(String... args);
    }
    
    
    
    package com.example.demo.job;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.stereotype.Component;
    
    @Component
    @Slf4j
    public class SendEmailCommand implements Command {
    
        @Override
        public int execute(String... args) {
    
            try {
                // 省略業(yè)務(wù)邏輯代碼
                for (String arg:args) {
                    log.info("send email  success args:" +arg);
                }
    
    
                log.info("send email success");
    
                return 0;
    
            } catch (Exception e) {
                log.error("send email error", e);
                return -1;
            }
        }
    }
    
    
    
    package com.example.demo.job;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.stereotype.Component;
    
    @Component
    @Slf4j
    public class SendEmail2Command implements Command {
    
        @Override
        public int execute(String... args) {
    
            try {
                // 省略業(yè)務(wù)邏輯代碼
    
                for (String arg:args) {
                    log.info("send email 2  success args:" +arg);
                }
    
                log.info("send email 2 success");
    
                return 0;
    
            } catch (Exception e) {
                log.error("send email error", e);
                return -1;
            }
        }
    }
    
    
    
    package com.example.demo.job;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.stereotype.Component;
    
    import javax.annotation.PostConstruct;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.Map;
    
    @Component
    @Slf4j
    public class ProjectCommandLineRunner implements CommandLineRunner {
    
        Map<String, Command> commandMap = new HashMap<>();
    
        @Autowired
        private SendEmailCommand sendEmailCommand;
    
        @Autowired
        private SendEmail2Command sendEmail2Command;
    
        @PostConstruct
        private void init() {
            commandMap.put("sendEmail", sendEmailCommand);
            commandMap.put("sendEmail2", sendEmail2Command);
        }
    
        @Override
        public void run(String... args) throws Exception {
    
            if (args.length == 0) {
                return;
            }
    
            if (!commandMap.containsKey(args[0])) {
                log.error("'{}' command not found", args[0]);
                System.exit(-1);
            }
    
            for (String arg:args) {
                log.info("command args:" +arg);
            }
    
           for (int i = 0; i < args.length; i++) {
                Command command =  commandMap.get(args[i]);
                String[] arguments = Arrays.copyOfRange(args, 0, args.length);
                command.execute(arguments);
            }
    
            
            //執(zhí)行成功則,正常退出0, 異常退出非0
            System.exit(0);
        }
    }
    
    
    

kubectl 客戶(hù)端執(zhí)行,sh test.sh :

k8s+springboot+CronJob 定時(shí)任務(wù)部署,kubernetes,spring boot,容器

k8s+springboot+CronJob 定時(shí)任務(wù)部署,kubernetes,spring boot,容器

k8s+springboot+CronJob 定時(shí)任務(wù)部署,kubernetes,spring boot,容器

k8s+springboot+CronJob 定時(shí)任務(wù)部署,kubernetes,spring boot,容器文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-555201.html

到了這里,關(guān)于k8s+springboot+CronJob 定時(shí)任務(wù)部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Kubernetes(k8s)一次性任務(wù):Job

    目錄 一.系統(tǒng)環(huán)境 二.前言 三.Kubernetes Job簡(jiǎn)介 四.創(chuàng)建一次性任務(wù)job 4.1 創(chuàng)建一個(gè)簡(jiǎn)單任務(wù)的job 4.2 創(chuàng)建需要執(zhí)行多次的job任務(wù) 五.測(cè)試job失敗重試次數(shù) 六.job任務(wù)使用示例:計(jì)算圓周率 七.總結(jié) 本文主要基于Kubernetes1.21.9和Linux操作系統(tǒng)CentOS7.4。 服務(wù)器版本 docker軟件版本 Kubern

    2024年02月07日
    瀏覽(33)
  • 【業(yè)務(wù)功能118】微服務(wù)-springcloud-springboot-Kubernetes集群-k8s集群-KubeSphere-OpenELB部署及應(yīng)用

    【業(yè)務(wù)功能118】微服務(wù)-springcloud-springboot-Kubernetes集群-k8s集群-KubeSphere-OpenELB部署及應(yīng)用

    網(wǎng)址: openelb.io OpenELB 是一個(gè)開(kāi)源的云原生負(fù)載均衡器實(shí)現(xiàn),可以在基于裸金屬服務(wù)器、邊緣以及虛擬化的 Kubernetes 環(huán)境中使用 LoadBalancer 類(lèi)型的 Service 對(duì)外暴露服務(wù)。OpenELB 項(xiàng)目最初由 KubeSphere 社區(qū)發(fā)起,目前已作為 CNCF 沙箱項(xiàng)目加入 CNCF 基金會(huì),由 OpenELB 開(kāi)源社區(qū)維護(hù)與支

    2024年02月03日
    瀏覽(38)
  • CronJob in K8s

    CronJob的設(shè)計(jì)思想是基于Cron工具的,Cron是一種在Unix和類(lèi)Unix系統(tǒng)中用于自動(dòng)執(zhí)行任務(wù)的工具。CronJob的設(shè)計(jì)思想是將Cron的功能引入到Kubernetes中,以便在集群中自動(dòng)化和調(diào)度任務(wù)的執(zhí)行。 CronJob的設(shè)計(jì)思想包括以下幾個(gè)方面: 基于時(shí)間的調(diào)度:CronJob根據(jù)時(shí)間表來(lái)周期性地調(diào)度任

    2024年02月09日
    瀏覽(19)
  • k8s概念-Job和CronJob

    回到目錄? 對(duì)于非耐久性任務(wù),比如壓縮文件,任務(wù)完成后,pod需要結(jié)束運(yùn)行,不需要pod繼續(xù)保持在系統(tǒng)中,這個(gè)時(shí)候就要用到Job。 Job負(fù)責(zé)批量處理短暫的一次性任務(wù) (short lived one-off tasks),即僅執(zhí)行一次的任務(wù),它保證批處理任務(wù)的一個(gè)或多個(gè)Pod成功結(jié)束 yaml文件 多次執(zhí)行

    2024年02月14日
    瀏覽(19)
  • Kubernetes(K8S)集群部署

    Kubernetes(K8S)集群部署

    目錄 一、創(chuàng)建3臺(tái)虛擬機(jī) 二、為每臺(tái)虛擬機(jī)安裝Docker 三、安裝kubelet 3.1 安裝要求 3.2 為每臺(tái)服務(wù)器完成前置設(shè)置 3.3 為每臺(tái)服務(wù)器安裝kubelet、kubeadm、kubectl 四、使用kubeadm引導(dǎo)集群 4.1 master服務(wù)器 4.2 node1、node2服務(wù)器 4.3 初始化主節(jié)點(diǎn) 4.4 work節(jié)點(diǎn)加入集群 五、token過(guò)期怎么辦?

    2024年02月07日
    瀏覽(134)
  • yum部署kubernetes(k8s)集群、k8s常用資源管理

    目錄 一、環(huán)境搭建 1、準(zhǔn)備環(huán)境 1)計(jì)算機(jī)說(shuō)明,建議系統(tǒng)版本7.4或者7.6 2)修改所有主機(jī)的計(jì)算機(jī)名設(shè)置host文件 ?2、安裝master節(jié)點(diǎn) 1)安裝etcd配置etcd 2)安裝k8s-master節(jié)點(diǎn) 3)配置apiserver 4)配置controller和scheduler 5)啟動(dòng)k8s服務(wù) 3、安裝k8s-master上的node 1)安裝node 2)配置kube

    2024年02月13日
    瀏覽(35)
  • Kubernetes(K8s)基本環(huán)境部署

    Kubernetes(K8s)基本環(huán)境部署

    此處只做學(xué)習(xí)使用,配置單master環(huán)境。 1、ip+主機(jī)規(guī)劃(準(zhǔn)備五臺(tái)新機(jī))==修改各個(gè)節(jié)點(diǎn)的主機(jī)名 注意:關(guān)閉防火墻與selinux 節(jié)點(diǎn) 主機(jī)名 ip 身份 joshua1 kubernetes-master.openlab.cn 192.168.134.151 master joshua2 kubernetes-work1.openlab.cn 192.168.134.152 work1 joshua3 kubernetes-work2.openlab.cn 192.168.134.153

    2024年02月10日
    瀏覽(28)
  • Kubernetes(k8s)集群安裝部署

    Kubernetes(k8s)集群安裝部署

    名稱(chēng) IP 系統(tǒng) 配置 主控節(jié)點(diǎn) 192.168.202.101 CentOS 7.9.2009 2核4G 工作節(jié)點(diǎn)1 192.168.202.102 CentOS 7.9.2009 2核4G 工作節(jié)點(diǎn)2 192.168.202.103 CentOS 7.9.2009 2核4G 2.1 升級(jí)操作系統(tǒng)內(nèi)核 導(dǎo)入elrepo gpg key 安裝elrepo YUM源倉(cāng)庫(kù) 安裝kernel-ml版本,ml為長(zhǎng)期穩(wěn)定版本,lt為長(zhǎng)期維護(hù)版本 設(shè)置grub2默認(rèn)引導(dǎo)為0 重

    2024年02月10日
    瀏覽(97)
  • kubernetes(k8s)+kubesphere部署

    kubernetes(k8s)+kubesphere部署

    目錄 一 裝備三臺(tái)機(jī)器linux(centos) 二 準(zhǔn)備前置環(huán)境并安裝kubernetes 1? 三臺(tái)機(jī)器都要做如下操作? 1.1 關(guān)閉防火墻: 1.2?關(guān)閉 selinux: 1.3?關(guān)閉 swap 1.4?添加主機(jī)名與 IP 對(duì)應(yīng)關(guān)系 1.5?date 查看時(shí)間 (可選) 1.6?卸載系統(tǒng)之前的 docke 命令自行百度不做說(shuō)明 1.7?安裝 Docker-CE ?1. 7.1?裝

    2024年01月17日
    瀏覽(61)
  • Kubernetes(k8s)部署模式發(fā)展

    Kubernetes(k8s)部署模式發(fā)展

    在部署應(yīng)用程序的方式上,主要經(jīng)歷了三個(gè)時(shí)代: 傳統(tǒng)部署: 互聯(lián)網(wǎng)早期,會(huì)直接將應(yīng)用程序部署在物理機(jī)上 優(yōu)點(diǎn):簡(jiǎn)單,不需要其它技術(shù)的參與 缺點(diǎn):不能為應(yīng)用程序定義資源使用邊界,很難合理地分配計(jì)算資源,而且程序之間容易產(chǎn)生影響 虛擬化部署: 可以在一臺(tái)物

    2024年02月11日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包