在 Kubernetes 中部署 Trivy 漏洞掃描服務

創建專用 Namespace

# trivy-ns.yaml
apiVersion: v1
kind: Namespace
metadata:  name: trivy-system

配置持久化存儲(緩存數據庫)

apiVersion: v1
kind: PersistentVolumeClaim
metadata:  name: trivy-db-cache  namespace: trivy-system
spec:  accessModes:    - ReadWriteOnce  resources:    requests:      storage: 5Gi  storageClassName: standard

部署 Trivy 服務

apiVersion: apps/v1
kind: Deployment
metadata:  name: trivy-scanner  namespace: trivy-system
spec:  replicas: 2  selector:    matchLabels:      app: trivy-scanner  template:    metadata:      labels:        app: trivy-scanner    spec:      containers:      - name: trivy        image: aquasec/trivy:0.45.1        args: ["--cache-dir", "/trivy/cache"]        volumeMounts:        - name: trivy-cache          - mountPath: /trivy/cache        ports:        - containerPort: 8080        resources:          requests:            memory: "512Mi"            cpu: "500m"          limits:            memory: "2Gi"            cpu: "1"      volumes:      - name: trivy-cache        persistentVolumeClaim:          claimName: trivy-db-cache

創建 Service 暴露接口

# trivy-service.yaml
apiVersion: v1
kind: Service
metadata:  name: trivy-service  namespace: trivy-system
spec:  selector:    app: trivy-scanner  ports:    - protocol: TCP      port: 80      targetPort: 8080

配置自動數據庫更新(可選)

# trivy-cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:  name: trivy-db-updater  namespace: trivy-system
spec:  schedule: "0 0 * * *"  jobTemplate:    spec:      template:        spec:          containers:          - name: trivy-db-update            image: aquasec/trivy:0.45.1            args: ["--download-db-only", "--cache-dir", "/trivy/cache"]                     volumeMounts:            - name: trivy-cache              mountPath: /trivy/cache          restartPolicy: OnFailure          volumes:          - name: trivy-cache            persistentVolumeClaim:              claimName: trivy-db-cache

驗證部署

# 檢查組件狀態
kubectl get pods -n trivy-system
# 執行測試掃描
kubectl run test-scan --rm -i --tty --image aquasec/trivy:0.45.1 \  --namespace trivy-system \  --command -- sh -c "trivy image --server http://trivy-service:80 alpine:3.12"

集成到 CI/CD(示例)

// Jenkins Pipeline 示例
pipeline {  agent any  
stages {    stage('Scan Image') {      steps {        script {          sh 'docker build -t myapp:${BUILD_ID} .'                    def scanResult = sh(script: '''            kubectl run trivy-scan-${BUILD_ID} \              --namespace trivy-system \              --image aquasec/trivy:0.45.1 \              --rm -i --restart=Never \              -- \              image --severity HIGH,CRITICAL \              --format json \              --server http://trivy-service:80 \              myapp:${BUILD_ID}          ''', returnStdout: true)                    def report = readJSON text: scanResult          if(report.Results[0].Vulnerabilities) {            error "發現高危漏洞!"          }        }      }    }  }}

高級配置選項

  1. 私有鏡像倉庫認證
# 添加認證信息到 Deployment
env:
- name: TRIVY_USERNAME  valueFrom:    secretKeyRef:      name: registry-creds      key: username
- name: TRIVY_PASSWORD  valueFrom:    secretKeyRef:      name: registry-creds      key: password
  1. 自定義策略規則
# 創建 ConfigMap 掛載自定義策略
volumes:
- name: trivy-policies  configMap:    name: trivy-custom-policiesvolumeMounts:- name: trivy-policies  - mountPath: /etc/trivy/policies
  1. 服務網格集成
annotations:  sidecar.istio.io/inject: "true"  sidecar.istio.io/rewriteAppHTTPProbers: "true"

監控指標配置

# 添加 Prometheus 監控
args: - "--listen=0.0.0.0:8080"- "--cache-dir=/trivy/cache"- "--metrics"
# ServiceMonitor 配置
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:  name: trivy-monitor  namespace: trivy-systemspec:  
endpoints:  
- port: http    interval: 30s  selector:    matchLabels:      app: trivy-scanner

該部署方案具備以下特性:- 高可用部署(多副本)- 數據庫緩存持久化- 每日自動更新漏洞庫- 集成 Prometheus 監控- 支持私有倉庫認證- 可擴展策略管理- 服務網格兼容性根據實際環境需要,可調整存儲類、資源配額、網絡策略等配置參數。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/74447.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74447.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/74447.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Cursor安裝注冊+基礎配置+入門實操

一、安裝注冊 官網地址:https://www.cursor.com/ 下載按鈕會根據電腦系統來匹配,點擊對應「Download」按鈕進行下載。完成后,按步驟安裝即可。 安裝完成后,即可點擊圖標打開軟件。 基礎設置完成后,就需要選擇注冊賬號…

秒殺業務優化之從分布式鎖到基于消息隊列的異步秒殺

一、業務場景介紹 優惠券、門票等限時搶購常常出現在各類應用中,這樣的業務一般為了引流宣傳而降低利潤,所以一旦出現問題將造成較大損失,那么在業務中就要求我們對這類型商品嚴格限時、限量、每位用戶限一次、準確無誤的創建訂單&#xff0c…

MiniMax GenAI 可觀測性分析:基于阿里云 SelectDB 構建 PB 級別日志系統

“阿里云SelectDB作為MiniMax日志存儲服務的核心支撐,為在線和離線業務提供了高效、穩定的查詢與聚合分析能力。其支持實時物化視圖、租戶資源隔離、冷熱分離等企業級特性,不僅有效解決了日志場景下PB級別數據查詢的性能瓶頸,還通過智能化的資…

【YOLO V3】目標檢測 Darknet 訓練自定義模型

【YOLO V3】目標檢測 Darknet 訓練自定義模型 前言整體思路環境檢查與依賴配置克隆 YOLOv3 Darknet 并編譯Clone Darknet 項目文件修改 Makefile 文件修改模型保存頻率項目編譯 準備數據集配置訓練文件數據集:datasets (自制)權重文件 yolov3…

Kafka分區分配策略詳解

Kafka分區分配策略詳解 Kafka作為當前最流行的分布式消息隊列系統,其分區分配策略直接影響著系統的性能、可靠性和可擴展性。合理的分區分配不僅能夠提高數據處理的效率,還能確保系統負載的均衡。 Kafka提供了多種內置的分區分配策略,包括R…

C#中 String類API(函數)

字符串屬性 string str "打工人";Console.WriteLine(str);char s str[0];Console.WriteLine(s); 字符串內置API(函數) 1. Concat 拼接字符串 string s1 "打";string s2 "工";string s3 "人";string sthstring.Concat(s1, s2, s…

JavaScript性能優化實戰手冊:從V8引擎到React的毫秒級性能革命

目錄 一、性能優化的本質挑戰1.1 瀏覽器渲染管線的性能瓶頸2.1 內存管理優化2.2 執行效率優化2.3 網絡傳輸優化 三、React框架深度調優3.1 渲染性能優化3.2 性能監控體系 四、企業級優化案例4.1 電商平臺首頁優化4.2 數據可視化大屏優化 五、新一代性能優化技術5.1 WASM性能突破…

【PostgreSQL】pg各版本選用取舍邏輯與docker安裝postgres:15

企業常用 PostgreSQL 版本推薦 1. PostgreSQL 14(最常見,穩定) 目前許多企業仍在使用 PostgreSQL 14,因為它在性能、并發處理、JSON 支持等方面做了較多優化,同時又非常穩定。官方支持時間:2026 年 11 月…

DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加導出數據功能

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏+關注哦 ?? 目錄 DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加導出數據功能??頁面效果??指令輸入?…

《Python實戰進階》第31集:特征工程:特征選擇與降維技術

第31集:特征工程:特征選擇與降維技術 摘要 特征工程是機器學習和數據科學中不可或缺的一環,其核心目標是通過選擇重要特征和降低維度來提升模型性能并減少計算復雜度。本集聚焦于特征選擇與降維技術,涵蓋過濾法、包裹法、嵌入法等…

避雷 :C語言中 scanf() 函數的錯誤?使用!!!

1. 返回值說明 scanf函數會返回成功匹配并賦值的輸入項個數&#xff0c;而不是返回輸入的數據。 可以通過檢查返回值數量來確認輸入是否成功。若返回值與預期不符&#xff0c;就表明輸入存在問題。 #include <stdio.h>int main() {int num;if (scanf("%d", …

Excel第41套全國人口普查

2. 導入網頁中的表格&#xff1a;數據-現有鏈接-考生文件夾&#xff1a;網頁-找到表格-點擊→變為√-導入刪除外部鏈接關系&#xff1a;數據-點擊鏈接-選中連接-刪除-確定&#xff08;套用表格格式-也會是刪除外部鏈接&#xff09;數值縮小10000倍&#xff08;除以10000即可&am…

WPS宏開發手冊——使用、工程、模塊介紹

目錄 系列文章前言1、開始1.1、宏編輯器使用步驟1.2、工程1.3、工程 系列文章 使用、工程、模塊介紹 JSA語法 第三篇練習練習題&#xff0c;持續更新中… 前言 如果你是開發人員&#xff0c;那么wps宏開發對你來說手拿把切。反之還挺吃力&#xff0c;需要嘻嘻&#xf…

EtherCAT轉CANopen配置CANopen側的PDO映射

EtherCAT轉CANopen配置CANopen側的PDO映射 在工業自動化領域&#xff0c;EtherCAT和CANopen是兩種廣泛應用的通信協議。它們各自具有獨特的優勢&#xff0c;但在某些應用場景下&#xff0c;需要將這兩種協議進行轉換以實現設備間的高效數據交換。本文將詳細介紹如何在使用Ethe…

【QT】Qt creator快捷鍵

Qt creator可以通過以下步驟快捷鍵査看調用關系&#xff1a; 1.打開代碼文件。 2.將光標放在你想要查看調用關系的函數名上。 3.按下鍵盤快捷鍵 CtrlshiftU。 4.彈出菜單中選擇“調用路徑”或“被調用路徑” 5.在彈出的窗口中可以查看函數的調用關系 折疊或展開代碼快捷鍵&…

【RHCE】LVS-NAT模式負載均衡實驗

目錄 題目 IP規劃 配置IP RS1 RS2 RS3 LVS client 配置RS 配置LVS 安裝lvs軟件 啟動ipvsadm服務 lvs規則匹配 ipvsadm部分選項 客戶端測試 總結 題目 使用LVS的 NAT 模式實現 3 臺RS的輪詢訪問&#xff0c;IP地址和主機自己規劃。 IP規劃 主機IP地址RS1-nat模…

排序算法(插入,希爾,選擇,冒泡,堆,快排,歸并)

1.插入排序 插入排序的主要思想是額外申請一個空間cur&#xff0c;讓cur一開始等于數組的第1號位置,設置i1&#xff0c;讓i-1的元素與其比較&#xff0c;如果arr[i-1]>arr[i]&#xff0c;就讓arr[i1] arr[i]&#xff0c;當進行到最后一次對比結束&#xff0c;i-1,再讓arr[…

Java——Random庫

一、作用 Random庫——生成隨機數 二、實現步驟 1.導包&#xff1a;import java.util.Random; #快捷鍵&#xff1a;“Random”回車鍵 2.取得隨機數&#xff1a;Random 變量1 new Random(); 3.調用隨機數&#xff1a;類型 變量2 變量1.nextInt(n); &#xff08;代表變量…

解線性方程組的直接方法:高斯消元法與其程序實現

解線性方程組的直接方法&#xff1a;高斯消元法與其程序實現 1.順序高斯消元法 設線性方程組 A x b \boldsymbol{Ax}\boldsymbol{b} Axb 如果 a k k ( k ) ≠ 0 a_{kk}^{\left( k \right)}\ne 0 akk(k)??0 可以通過高斯消元法轉化為等價的三角形線性方程組&#xff1a; …

LiteIDE中配置golang編譯生成無CMD窗口EXE的步驟

LiteIDE中配置golang編譯生成無CMD窗口EXE的步驟 一、環境配置1、設置GOROOT?2、配置GOPATH? 二、項目編譯參數設置1、新建/打開項目?2、修改編譯配置?3、其他優化選項&#xff08;可選&#xff09;? 三、構建與驗證1、編譯生成EXE?2、驗證無窗口效果? 四、注意事項 一、…