主頁 > 作業系統 > Kubernetes K8S之資源控制器Job和CronJob詳解

Kubernetes K8S之資源控制器Job和CronJob詳解

2020-09-10 00:10:45 作業系統

 

Kubernetes的資源控制器Job和CronJob詳解與示例

 

主機配置規劃

服務器名稱(hostname)系統版本配置內網IP外網IP(模擬)
k8s-master CentOS7.7 2C/4G/20G 172.16.1.110 10.0.0.110
k8s-node01 CentOS7.7 2C/4G/20G 172.16.1.111 10.0.0.111
k8s-node02 CentOS7.7 2C/4G/20G 172.16.1.112 10.0.0.112

 

什么是控制器

kubernetes中內建了很多controller(控制器),這些相當于一個狀態機,用來控制pod的具體狀態和行為,

部分控制器型別如下:
  • ReplicationController 和 ReplicaSet
  • Deployment
  • DaemonSet
  • StatefulSet
  • Job/CronJob
  • HorizontalPodAutoscaler

 

Job

負責批處理任務

Job創建一個或多個Pod,并確保指定數量的Pod成功終止,Pod成功完成后,Job將跟蹤成功完成的情況,當達到指定的成功完成次數時,任務(即Job)就完成了,洗掉Job將清除其創建的Pod,

一個簡單的情況是創建一個Job物件,以便可靠地運行一個Pod來完成,如果第一個Pod發生故障或被洗掉(例如,由于節點硬體故障或節點重啟),則Job物件將啟動一個新的Pod,

當然還可以使用Job并行運行多個Pod,

 

Job終止和清理

Job完成后,不會再創建其他Pod,但是Pod也不會被洗掉,這樣使我們仍然可以查看已完成容器的日志,以檢查是否有錯誤、警告或其他診斷輸出,Job物件在完成后也將保留下來,以便您查看其狀態,

當我們洗掉Job物件時,對應的pod也會被洗掉,

特殊說明

  • 單個Pod時,默認Pod成功運行后Job即結束
  • restartPolicy 僅支持Never和OnFailure
  • .spec.completions 標識Job結束所需要成功運行的Pod個數,默認為1
  • .spec.parallelism 標識并行運行的Pod個數,默認為1
  • .spec.activeDeadlineSeconds 為Job的持續時間,不管有多少Pod創建,一旦作業到指定時間,所有的運行pod都會終止且作業狀態將成為type: Failed與reason: DeadlineExceeded,

 

CronJob

Cron Job 創建是基于時間調度的 Jobs

一個 CronJob 物件就像 crontab (cron table) 檔案中的一行,它用 Cron 格式進行撰寫,并周期性地在給定的調度時間執行 Job,

 

CronJob 限制

CronJob 創建 Job 物件,每個 Job 的執行次數大約為一次, 之所以說 “大約” ,是因為在某些情況下,可能會創建兩個 Job,或者不會創建任何 Job,雖然試圖使這些情況盡量少發生,但不能完全杜絕,因此,Job 應該是冪等的,

CronJob 僅負責創建與其調度時間相匹配的 Job,而 Job 又負責管理其代表的 Pod,

使用案例:

1、在給定時間點調度Job

2、創建周期性運行的Job,如:資料備份、數倉導數、執行任務、郵件發送、資料拉取、資料推送

 

特殊說明

.spec.schedule 必選,任務被創建和執行的調度時間,同Cron格式串,例如 0 * * * *,

  • .spec.jobTemplate 必選,任務模版,它和 Job的語法完全一樣
  • .spec.startingDeadlineSeconds 可選的,默認未設定,它表示任務如果由于某種原因錯過了調度時間,開始該任務的截止時間的秒數,過了截止時間,CronJob 就不會開始任務,不滿足這種最后期限的任務會被統計為失敗任務,如果沒有該宣告,那任務就沒有最后期限,
  • .spec.concurrencyPolicy 可選的,它宣告了 CronJob 創建的任務執行時發生重疊如何處理,spec 僅能宣告下列規則中的一種:

Allow (默認):CronJob 允許并發任務執行,

Forbid:CronJob 不允許并發任務執行;如果新任務的執行時間到了而老任務沒有執行完,CronJob 會忽略新任務的執行,

Replace:如果新任務的執行時間到了而老任務沒有執行完,CronJob 會用新任務替換當前正在運行的任務,

請注意,并發性規則僅適用于相同 CronJob 創建的任務,如果有多個 CronJob,它們相應的任務總是允許并發執行的,

  • .spec.suspend 可選的,如果設定為 true ,后續發生的執行都會掛起,這個設定對已經開始執行的Job不起作用,默認是關閉的false,
    備注:在調度時間內掛起的執行都會被統計為錯過的任務,當 .spec.suspend 從 true 改為 false 時,且沒有開始的最后期限,錯過的任務會被立即調度,
  • .spec.successfulJobsHistoryLimit 和 .spec.failedJobsHistoryLimit 可選的, 這兩個宣告了有多少執行完成和失敗的任務會被保留,默認設定為3和1,限制設定為0代表相應型別的任務完成后不會保留,

說明:如果 startingDeadlineSeconds 設定為很大的數值或未設定(默認),并且 concurrencyPolicy 設定為 Allow,則作業將始終至少運行一次,

 

Job示例

yaml檔案

 1 [root@k8s-master controller]# pwd
 2 /root/k8s_practice/controller
 3 [root@k8s-master controller]# cat job.yaml 
 4 apiVersion: batch/v1
 5 kind: Job
 6 metadata:
 7   name: pi
 8 spec:
 9   #completions: 3  # 標識Job結束所需要成功運行的Pod個數,默認為1
10   template:
11     spec:
12       containers:
13       - name: pi
14         image: registry.cn-beijing.aliyuncs.com/google_registry/perl:5.26
15         command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
16       restartPolicy: Never
17   backoffLimit: 4

 

創建job,與狀態查看

1 [root@k8s-master controller]# kubectl apply -f job.yaml 
2 job.batch/pi created
3 [root@k8s-master controller]# kubectl get job -o wide
4 NAME   COMPLETIONS   DURATION   AGE   CONTAINERS   IMAGES                                                       SELECTOR
5 pi     0/1           16s        16s   pi           registry.cn-beijing.aliyuncs.com/google_registry/perl:5.26   controller-uid=77004357-fd5e-4395-9bbb-cd0698e19cb9
6 [root@k8s-master controller]# kubectl get pod -o wide
7 NAME       READY   STATUS              RESTARTS   AGE   IP       NODE         NOMINATED NODE   READINESS GATES
8 pi-6zvm5   0/1     ContainerCreating   0          85s   <none>   k8s-node01   <none>           <none>

 

之后再次查看

 1 [root@k8s-master controller]# kubectl get job -o wide
 2 NAME   COMPLETIONS   DURATION   AGE   CONTAINERS   IMAGES                                                       SELECTOR
 3 pi     1/1           14m        44m   pi           registry.cn-beijing.aliyuncs.com/google_registry/perl:5.26   controller-uid=77004357-fd5e-4395-9bbb-cd0698e19cb9
 4 [root@k8s-master controller]# kubectl get pod -o wide
 5 NAME       READY   STATUS      RESTARTS   AGE   IP            NODE         NOMINATED NODE   READINESS GATES
 6 pi-6zvm5   0/1     Completed   0          44m   10.244.4.63   k8s-node01   <none>           <none>
 7 [root@k8s-master controller]# 
 8 [root@k8s-master controller]# kubectl describe job pi
 9 Name:           pi
10 Namespace:      default
11 Selector:       controller-uid=76680f6f-442c-4a09-91dc-c3d4c18465b0
12 Labels:         controller-uid=76680f6f-442c-4a09-91dc-c3d4c18465b0
13                 job-name=pi
14 Annotations:    kubectl.kubernetes.io/last-applied-configuration:
15                   {"apiVersion":"batch/v1","kind":"Job","metadata":{"annotations":{},"name":"pi","namespace":"default"},"spec":{"backoffLimit":4,"
16 Parallelism:    1
17 Completions:    1
18 Start Time:     Tue, 11 Aug 2020 23:34:44 +0800
19 Completed At:   Tue, 11 Aug 2020 23:35:02 +0800
20 Duration:       18s
21 Pods Statuses:  0 Running / 1 Succeeded / 0 Failed
22 Pod Template:
23   Labels:  controller-uid=76680f6f-442c-4a09-91dc-c3d4c18465b0
24            job-name=pi
25   Containers:
26    pi:
27     Image:      registry.cn-beijing.aliyuncs.com/google_registry/perl:5.26
28     Port:       <none>
29     Host Port:  <none>
30     Command:
31       perl
32       -Mbignum=bpi
33       -wle
34       print bpi(2000)
35     Environment:  <none>
36     Mounts:       <none>
37   Volumes:        <none>
38 Events:
39   Type    Reason            Age    From            Message
40   ----    ------            ----   ----            -------
41   Normal  SuccessfulCreate  2m33s  job-controller  Created pod: pi-6zvm5

 

并查看 Pod 的標準輸出

1 [root@k8s-master controller]# kubectl logs --tail 500 pi-6zvm5
2 3.141592653589793238462643383279502884197169399375105820974944592307816406………………

 

CronJob示例

yaml檔案

 1 [root@k8s-master controller]# pwd
 2 /root/k8s_practice/controller
 3 [root@k8s-master controller]# cat cronjob.yaml 
 4 apiVersion: batch/v1beta1
 5 kind: CronJob
 6 metadata:
 7   name: hello
 8 spec:
 9   schedule: "*/1 * * * *"
10   jobTemplate:
11     spec:
12       template:
13         spec:
14           containers:
15           - name: hello
16             image: registry.cn-beijing.aliyuncs.com/google_registry/busybox:1.24
17             args:
18             - /bin/sh
19             - -c
20             - date; echo Hello from the Kubernetes cluster
21           restartPolicy: OnFailure

 

啟動cronjob并查看狀態

 1 [root@k8s-master controller]# kubectl apply -f cronjob.yaml 
 2 cronjob.batch/hello created
 3 [root@k8s-master controller]# kubectl get cronjob -o wide
 4 NAME    SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE   CONTAINERS   IMAGES                                                          SELECTOR
 5 hello   */1 * * * *   False     1        8s              27s   hello        registry.cn-beijing.aliyuncs.com/google_registry/busybox:1.24   <none>
 6 [root@k8s-master controller]# 
 7 [root@k8s-master controller]# kubectl get job -o wide
 8 NAME               COMPLETIONS   DURATION   AGE   CONTAINERS   IMAGES                                                          SELECTOR
 9 hello-1590721020   1/1           2s         21s   hello        registry.cn-beijing.aliyuncs.com/google_registry/busybox:1.24   controller-uid=9e0180e8-8362-4a58-8b93-089b92774b5e
10 [root@k8s-master controller]# 
11 [root@k8s-master controller]# kubectl get pod -o wide
12 NAME                     READY   STATUS      RESTARTS   AGE   IP            NODE         NOMINATED NODE   READINESS GATES
13 hello-1590721020-m4fr8   0/1     Completed   0          36s   10.244.4.66   k8s-node01   <none>           <none>

 

幾分鐘之后的狀態資訊

 1 [root@k8s-master controller]# kubectl get cronjob -o wide
 2 NAME    SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE     CONTAINERS   IMAGES                                                          SELECTOR
 3 hello   */1 * * * *   False     0        55s             7m14s   hello        registry.cn-beijing.aliyuncs.com/google_registry/busybox:1.24   <none>
 4 [root@k8s-master controller]# 
 5 [root@k8s-master controller]# 
 6 [root@k8s-master controller]# kubectl get job -o wide
 7 NAME               COMPLETIONS   DURATION   AGE    CONTAINERS   IMAGES                                                          SELECTOR
 8 hello-1590721260   1/1           1s         3m1s   hello        registry.cn-beijing.aliyuncs.com/google_registry/busybox:1.24   controller-uid=0676bd6d-861b-440b-945b-4b2704872728
 9 hello-1590721320   1/1           2s         2m1s   hello        registry.cn-beijing.aliyuncs.com/google_registry/busybox:1.24   controller-uid=09c1902e-76ef-4731-b3b4-3188961c13e9
10 hello-1590721380   1/1           2s         61s    hello        registry.cn-beijing.aliyuncs.com/google_registry/busybox:1.24   controller-uid=f30dc159-8905-4cfc-b06b-f950c8dcfc28
11 [root@k8s-master controller]# 
12 [root@k8s-master controller]# kubectl get pod -o wide
13 NAME                     READY   STATUS      RESTARTS   AGE    IP            NODE         NOMINATED NODE   READINESS GATES
14 hello-1590721320-m4pxf   0/1     Completed   0          2m6s   10.244.4.70   k8s-node01   <none>           <none>
15 hello-1590721380-wk7jh   0/1     Completed   0          66s    10.244.2.77   k8s-node02   <none>           <none>
16 hello-1590721440-rcx7v   0/1     Completed   0          6s     10.244.4.72   k8s-node01   <none>           <none>
17 [root@k8s-master controller]# 
18 [root@k8s-master controller]# kubectl describe cronjob hello
19 Name:                          hello
20 Namespace:                     default
21 Labels:                        <none>
22 Annotations:                   kubectl.kubernetes.io/last-applied-configuration:
23                                  {"apiVersion":"batch/v1beta1","kind":"CronJob","metadata":{"annotations":{},"name":"hello","namespace":"default"},"spec":{"jobTemplate":{"...
24 Schedule:                      */1 * * * *
25 Concurrency Policy:            Allow
26 Suspend:                       False
27 Successful Job History Limit:  3
28 Failed Job History Limit:      1
29 Starting Deadline Seconds:     <unset>
30 Selector:                      <unset>
31 Parallelism:                   <unset>
32 Completions:                   <unset>
33 Pod Template:
34   Labels:  <none>
35   Containers:
36    hello:
37     Image:      registry.cn-beijing.aliyuncs.com/google_registry/busybox:1.24
38     Port:       <none>
39     Host Port:  <none>
40     Args:
41       /bin/sh
42       -c
43       date; echo Hello from the Kubernetes cluster
44     Environment:     <none>
45     Mounts:          <none>
46   Volumes:           <none>
47 Last Schedule Time:  Wed, 12 Aug 2020 00:01:00 +0800
48 Active Jobs:         <none>
49 Events:
50   Type    Reason            Age                  From                Message
51   ----    ------            ----                 ----                -------
52   Normal  SuccessfulCreate  19m                  cronjob-controller  Created job hello-1597160520
53   Normal  SawCompletedJob   19m                  cronjob-controller  Saw completed job: hello-1597160520, status: Complete
54   Normal  SuccessfulCreate  18m                  cronjob-controller  Created job hello-1597160580
55   Normal  SawCompletedJob   18m                  cronjob-controller  Saw completed job: hello-1597160580, status: Complete
56   Normal  SuccessfulCreate  17m                  cronjob-controller  Created job hello-1597160640
57   Normal  SawCompletedJob   17m                  cronjob-controller  Saw completed job: hello-1597160640, status: Complete
58   Normal  SuccessfulCreate  16m                  cronjob-controller  Created job hello-1597160700
59   Normal  SuccessfulDelete  16m                  cronjob-controller  Deleted job hello-1597160520
60   Normal  SawCompletedJob   16m                  cronjob-controller  Saw completed job: hello-1597160700, status: Complete
61   Normal  SuccessfulCreate  15m                  cronjob-controller  Created job hello-1597160760
62   Normal  SawCompletedJob   15m                  cronjob-controller  Saw completed job: hello-1597160760, status: Complete
63   Normal  SuccessfulDelete  15m                  cronjob-controller  Deleted job hello-1597160580
64   Normal  SuccessfulCreate  14m                  cronjob-controller  Created job hello-1597160820
65   Normal  SuccessfulDelete  14m                  cronjob-controller  Deleted job hello-1597160640
66   Normal  SawCompletedJob   14m                  cronjob-controller  Saw completed job: hello-1597160820, status: Complete
67   Normal  SuccessfulCreate  13m                  cronjob-controller  Created job hello-1597160880
68   Normal  SawCompletedJob   13m                  cronjob-controller  Saw completed job: hello-1597160880, status: Complete
69 ………………
70   Normal  SawCompletedJob   11m                  cronjob-controller  Saw completed job: hello-1597161000, status: Complete
71   Normal  SuccessfulDelete  11m                  cronjob-controller  Deleted job hello-1597160820
72   Normal  SawCompletedJob   10m                  cronjob-controller  (combined from similar events): Saw completed job: hello-1597161060, status: Complete
73   Normal  SuccessfulCreate  4m13s (x7 over 10m)  cronjob-controller  (combined from similar events): Created job hello-1597161420

 

找到最后一次調度任務創建的 Pod, 并查看 Pod 的標準輸出,請注意任務名稱和 Pod 名稱是不同的,

1 [root@k8s-master controller]#  kubectl logs pod/hello-1590721740-rcx7v   # 或者 kubectl logs hello-1590721740-rcx7v
2 Fri May 29 03:09:04 UTC 2020
3 Hello from the Kubernetes cluster

 

洗掉 CronJob

1 [root@k8s-master controller]# kubectl get cronjob
2 NAME    SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE
3 hello   */1 * * * *   False     0        32s             19m
4 [root@k8s-master controller]# 
5 [root@k8s-master controller]# kubectl delete cronjob hello  # 或者 kubectl delete -f cronjob.yaml
6 cronjob.batch "hello" deleted
7 [root@k8s-master controller]# kubectl get cronjob   # 可見已洗掉
8 No resources found in default namespace.

 

相關閱讀

1、Kubernetes K8S之資源控制器RC、RS、Deployment詳解

2、Kubernetes K8S之資源控制器StatefulSets詳解

3、Kubernetes K8S之資源控制器Daemonset詳解

4、官網:Jobs

5、官網:CronJob

 

完畢!

 


 

 

———END———
如果覺得不錯就關注下唄 (-^O^-) !

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/157.html

標籤:Linux

上一篇:CA和證書

下一篇:VMware下安裝CentOS

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more