国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

推薦一款Kubernetes YAML文件靜態(tài)分析工具KubeLinter

開源
2020年10月28日,StackRox 引入了一個名為 KubeLinter 的新開源工具,旨在識別 YAML 文件中的任何錯誤配置。

在 Kubernetes 的世界中,我們使用 YAML 文件,對其進行部署以創(chuàng)建各種 Kubernetes 對象,但挑戰(zhàn)在于編寫它們時是否遵循最佳實踐?我們使用的是正確的標準配置集嗎?在部署應用程序甚至 Helm 圖表之前,可以檢查 YAML 嗎?所有這些問題的答案都是肯定的,我們可以。2020年10月28日,StackRox 引入了一個名為 KubeLinter 的新開源工具,旨在識別 YAML 文件中的任何錯誤配置。

根據定義,KubeLinter 是一個靜態(tài)分析工具,用于檢查 Kubernetes YAML 文件和 Helm 圖表,以確保其中所代表的應用程序遵循最佳實踐。將 YAML 文件提供給該工具后,它將通過內置檢查運行,然后詳細報告任何錯誤以及解決這些錯誤的補救措施。關于此工具的最好之處在于它是可配置和可擴展的:可以啟用或禁用內置檢查,并且您可以定義和使用自己的自定義檢查。

用法

我將在 Mac 上安裝 KubeLinter,但只需下載適用于您操作系統(tǒng)的發(fā)行版,即可將相同的說明用于Linux。

你可以從https://github.com/stackrox/kube-linter/releases/下載 KubeLinter CLI,如下所示: 

  1. $ curl -LO https://github.com/stackrox/kube-linter/releases/download/0.1.1/kube-linter-darwin.zip  
  2. $ unzip kube-linter-darwin.zip  
  3. $ mv kube-linter /usr/local/bin  
  4. #check if it's working  
  5. $ kube-linter version  
  6. 0.1.1 

現(xiàn)在,為了簡單地檢查單個 YAML 文件,只需提供 YAML 文件名。假設 deploy.yaml 您要檢查以下文件,以檢查其當前目錄中保存的最佳安全性和配置做法: 

  1. apiVersion: apps/v1  
  2. kind: Deployment  
  3. metadata:  
  4.   name: portainer  
  5.   namespace: portainer 
  6.   labels:  
  7.     io.portainer.kubernetes.application.stack: portainer  
  8.     app.kubernetes.io/name: portainer  
  9.     app.kubernetes.io/instance: portainer  
  10.     app.kubernetes.io/version: "2.0.0"  
  11. spec:  
  12.   replicas: 1  
  13.   strategy:  
  14.     type: "Recreate"  
  15.   selector:  
  16.     matchLabels:  
  17.       app.kubernetes.io/name: portainer  
  18.       app.kubernetes.io/instance: portainer  
  19.   template:  
  20.     metadata:  
  21.       labels: 
  22.          app.kubernetes.io/name: portainer  
  23.         app.kubernetes.io/instance: portainer  
  24.     spec:  
  25.       serviceAccountName: portainer-sa-clusteradmin  
  26.       volumes:  
  27.          - name: "data"  
  28.            persistentVolumeClaim:  
  29.              claimName: portainer  
  30.       containers:  
  31.         - name: portainer  
  32.           image: "portainer/portainer-ce:latest"  
  33.           imagePullPolicy: IfNotPresent  
  34.           args:  [ '--tunnel-port','30776' ]  
  35.           volumeMounts:  
  36.             - name: data  
  37.               mountPath: /data  
  38.           ports:  
  39.             - name: http  
  40.               containerPort: 9000  
  41.               protocol: TCP  
  42.             - name: tcp-edge  
  43.               containerPort: 8000  
  44.               protocol: TCP  
  45.           livenessProbe:  
  46.             httpGet:  
  47.               path: /  
  48.               port: 9000  
  49.           readinessProbe:  
  50.             httpGet:  
  51.               path: /  
  52.               port: 9000  
  53.           resources:  
  54.             {} 

讓我們進行測試 kube-linter lint deploy.yaml。我們應該得到如下輸出: 

  1. deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) container "portainer" does not have a read-only root file system (check: no-read-only-root-fs, remediation: Set readOnlyRootFilesystem to true in your container's securityContext.) 
  2. deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) serviceAccount "portainer-sa-clusteradmin" not found (check: non-existent-service-account, remediation: Make sure to create the service account, or to refer to an existing service account.) 
  3. deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) container "portainer" is not set to runAsNonRoot (check: run-as-non-root, remediation: Set runAsUser to a non-zero number, and runAsNonRoot to true, in your pod or container securityContext. See https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ for more details.) 
  4. deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) container "portainer" has cpu request 0 (check: unset-cpu-requirements, remediation: Set your container's CPU requests and limits depending on its requirements. See https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits for more details.) 
  5. deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) container "portainer" has cpu limit 0 (check: unset-cpu-requirements, remediation: Set your container's CPU requests and limits depending on its requirements. See https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits for more details.) 
  6. deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) container "portainer" has memory request 0 (check: unset-memory-requirements, remediation: Set your container's memory requests and limits depending on its requirements. See https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits for more details.) 
  7. deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) container "portainer" has memory limit 0 (check: unset-memory-requirements, remediation: Set your container's memory requests and limits depending on its requirements. See https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits for more details.) 
  8. Error: found 7 lint errors 

檢測類型

如您所見,YAML 文件中發(fā)現(xiàn)了錯誤,每個錯誤都有明確的補救步驟。

如果您想看一下內置檢查,可以在https://github.com/stackrox/kube-linter/blob/main/docs/genic/checks.md中列出所有這些檢查,或者也可以使用 KubeLinter 查看清單: 

  1. $ kube-linter checks list  
  2. Name: dangling-service  
  3. Description: Alert on services that don't have any matching deployments  
  4. Remediation: Make sure your service's selector correctly matches the labels on one of your deployments.  
  5. Template: dangling-service  
  6. Parameters: map[]  
  7. Enabled by default: true  
  8. ------------------------------  
  9. Name: default-service-account  
  10. Description: Alert on pods that use the default service account  
  11. Remediation: Create a dedicated service account for your pod. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ for more details. 
  12. Template: service-account  
  13. Parameters: map[serviceAccount:^(|default)$]  
  14. Enabled by default: false  
  15.  
  16.  
  17.  
  18. and many more 

忽略檢測

您可以使用以下注釋忽略針對 YAML 文件的特定檢查,也可以根據需要忽略檢查組: 

  1. ignore-check.kube-linter.io/<check-name> 

例如: 

  1. ignore-check.kube-linter.io/unset-cpu-requirements 

您可以像上面這樣在上面的部署文件示例中添加忽略檢查規(guī)則: 

  1. metadata:  
  2.   name: portainer  
  3.   namespace: portainer  
  4.   labels: 
  5.      io.portainer.kubernetes.application.stack: portainer  
  6.     app.kubernetes.io/name: portainer  
  7.     app.kubernetes.io/instance: portainer  
  8.     app.kubernetes.io/version: "2.0.0"  
  9.   annotations:  
  10.     ignore-check.kube-linter.io/unset-cpu-requirements : "cpu requirements not required" 

現(xiàn)在,當您 kube-linter lint deploy.yaml 再次運行時,您應該不會看到與 CPU 要求相關的錯誤提示。

使用配置運行

KubeLinter 也可以使用配置運行,您可以在其中提供要包含/排除的所有檢測信息。以下是存儲庫中的示例配置: 

  1. # customChecks defines custom checks.  
  2. customChecks:  
  3. - name: "required-label-app"  
  4.   template: "required-label"  
  5.   params:  
  6.     key: "app"  
  7. checks: 
  8.    # if doNotAutoAddDefaults is true, default checks are not automatically added.  
  9.   doNotAutoAddDefaults: false  
  10.   # addAllBuiltIn, if set, adds all built-in checks. This allows users to  
  11.   # explicitly opt-out of checks that are not relevant using Exclude.  
  12.   # Takes precedence over doNotAutoAddDefaults, if both are set.  
  13.   addAllBuiltIn: false  
  14.   # include explicitly adds checks, by name. You can reference any of the built-in checks.  
  15.   # Note that customChecks defined above are included automatically.  
  16.   include:  
  17.   - "required-label-owner"  
  18.   # exclude explicitly excludes checks, by name. exclude has the highest priority: if a check is  
  19.   # in exclude, then it is not considered, even if it is in include as well.  
  20.   exclude:  
  21.     - "privileged" 

如果你運行kubelinter --config config lint deploy.yaml,其中 config 與上述配置的文件,你應該可以看到添加了需要標簽的檢查:

deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) no label matching "owner=<any>" found (check: required-label-owner, remediation: Add an email annotation to your object with information about the object's owner.)

當內置到 CI 管道中時,KubeLinter 可以證明是非常有用的工具。可以檢查和驗證推送到存儲庫中的編排文件,以獲取最佳實踐和安全考慮,并在檢測到問題時生成警報。

這樣,可以將部署到集群的應用程序進行健康的就緒檢查。該項目處于 Alpha 階段,但有望作為 CI 集成工具在實際部署到生產之前驗證所有部署。 

 

責任編輯:龐桂玉 來源: 奇妙的Linux世界
相關推薦

2021-07-29 06:37:55

KubernetesKubeLinter工具

2021-04-22 09:20:20

KubernetesKubectl FlaLinux

2016-03-29 14:54:36

2021-06-09 09:52:29

開源Pyroscope代碼

2025-04-07 08:10:00

2020-02-17 07:20:22

SSH遠程連接工具Linux

2024-01-25 10:40:11

AutoProfil開源分析工具

2020-12-03 09:33:58

前端開發(fā)工具

2022-06-28 07:14:23

WizTree磁盤文件清理

2020-12-15 15:08:17

工具Java線程

2020-12-15 07:54:40

工具Hutoolgithub

2018-11-26 14:30:08

Python開發(fā)工具編程語言

2019-02-25 10:18:43

工具代碼測試

2024-02-20 07:32:18

Rsync遠程同步工具傳輸數(shù)據

2022-07-04 08:48:36

KubernetesDatreeLinux

2020-11-12 10:00:56

Kubernetes工具Linux

2019-07-22 09:24:54

LinuxMySQL數(shù)據庫

2019-08-02 14:45:22

阿里Java命令

2022-06-20 08:58:25

Obsidian筆記工具

2021-11-01 05:53:08

Doldrums逆向工程分析工具安全工具
點贊
收藏

51CTO技術棧公眾號

猛男欧美办公室激情在线| 亚洲综合色视频在线观看| 天堂av一区| 欧美精品久久久久久久多人混战 | 国产激情小视频在线| 久久久久久亚洲综合影院红桃 | 亚洲区一区二| 91精品成人久久| 国产在线高清视频| 亚洲视频在线观看三级| 国产成年人在线观看| 欧美激情视频一区二区三区在线播放| 色黄久久久久久| 黄网页在线观看| 精品成人av一区| 国产亚洲精品网站| 日韩中文字幕一区二区三区| 91在线中文字幕| 国产一区2区| 久久久久久久久爱| 久久夜夜久久| 亚洲欧美另类中文字幕| 黄网站免费在线播放| 色狠狠色噜噜噜综合网| 最新av番号| 中文字幕在线一区| 欧美污视频网站| www.爱久久.com| 老司机激情视频| 老司机免费视频一区二区三区| 国产女主播一区二区三区| 66视频精品| 91精品国产综合久久久久久蜜臀| jizz18欧美18| 午夜精品久久久99热福利| 视频精品一区| 欧美精品一区二区免费| 日韩成人免费av| 三级精品视频久久久久| www.日韩| 中文字幕日韩在线视频| 不卡亚洲精品| 正在播放亚洲1区| 韩国成人动漫| 亚洲欧美一区二区三区四区| 精品中文字幕一区| 9久re热视频在线精品| 久久精彩视频| 国产精品不卡| 欧美一级大片在线免费观看| 午夜视频在线看| 国模少妇一区二区三区| 日韩在线不卡视频| 成品人视频ww入口| 成人国产在线视频| 国产午夜伦鲁鲁| 韩国三级大全久久网站| 亚洲色图在线播放| 欧美一区二区福利| 久久亚洲捆绑美女| 97超超碰碰| 午夜久久久久久电影| 九色在线播放| 久久九九亚洲综合| 国产精品69久久久久水密桃| 黄色99视频| 久久综合九色综合欧美狠狠| 一区二区三区四区欧美日韩| 国产成a人亚洲| 少妇一级淫免费播放| 亚洲一区二区三区四区的| 亚洲欧洲成人| 日韩视频免费观看高清完整版在线观看 | 精品一区二区三区在线观看视频| 欧美极度另类性三渗透| 欧美国产小视频| 日韩精品久久一区| eeuss影院一区二区三区| 国外亚洲成av人片在线观看| 欧美三级三级三级爽爽爽| 亚洲深夜视频| 欧美壮男野外gaytube| 影音先锋国产精品| 国产3p露脸普通话对白| 一区二区三区免费| 污视频在线免费观看网站| 日韩在线播放av| 婷婷综合激情| 每日在线观看av| 欧美视频免费在线| 综合在线影院| 国产日韩欧美视频| 成人欧美在线观看| 国产精品99久久久久久似苏梦涵 | 日韩成人一区| 91久久国产自产拍夜夜嗨| 91麻豆精东视频| 色呦呦在线播放| 国产精品免费观看高清| 欧美极品少妇xxxxⅹ高跟鞋| 国产日产久久高清欧美一区| 日韩成人免费看| 日韩一区二区三区xxxx| 91久久精品一区二区二区| 久久久久影视| 免费一级欧美片在线观看网站| 台湾av在线二三区观看| 精品国产一区二区精华| 粉嫩一区二区三区在线观看| 国产免费高清一区| 国产婷婷精品av在线| 国产福利视频在线观看| **欧美日韩vr在线| 国产综合色精品一区二区三区| 影院免费视频| 中文字幕在线成人| 亚洲精品少妇| 午夜网站在线观看| 亚洲一二在线观看| 99精品视频免费观看视频| 无码人妻精品一区二区三区在线| 欧美人与z0zoxxxx视频| 曰本一区二区三区视频| 国产老熟妇精品观看| 日韩免费视频一区二区| 色琪琪久久se色| 国产喷水theporn| 亚洲天天在线日亚洲洲精| 亚洲欧美不卡| 国产三级在线看| 国产高清视频一区三区| 久久久午夜精品理论片中文字幕| 国产精选在线| 你懂的网址一区二区三区| 好吊成人免视频| 国产最新精品| 一菊综合网成人综合网| 美女视频久久黄| 成人黄色小视频| 日本电影在线观看网站| 成人啪啪免费看| 亚洲一区二区成人在线观看| 欧美a大片欧美片| www日韩在线观看| 亚洲精品一二三区| 阿v视频在线| 九色自拍视频在线观看| 国产喷白浆一区二区三区| www 久久久| 日本在线成人| 亚洲第一区视频| 国产精品久久久久久久久久久久午夜片| 精品久久久精品| 久久精品久久精品| 玖玖精品一区| 一女二男3p波多野结衣| 美国毛片一区二区三区| 欧美中文在线| 国产欧美精品一区二区| 一区二区三区免费网站| 福利片一区二区| 欧美牲交a欧美牲交aⅴ免费下载| 色哟哟入口国产精品| 91丝袜美腿高跟国产极品老师 | 日韩视频精品在线| 国产福利精品导航| 欧美特黄aaaaaaaa大片| 成人小视频在线观看免费| 亚洲欧美色婷婷| 暴力调教一区二区三区| 国产精品亚洲一区二区在线观看| 日韩欧美亚洲天堂| zzijzzij亚洲日本成熟少妇| 2022国产精品视频| 亚州精品视频| 在线观看导航| av激情久久| 精品少妇一区二区三区在线播放| 精品一区二区在线观看| 日韩高清不卡| 日本wwwwww| 亚洲va码欧洲m码| 日韩亚洲欧美一区| 成人国产精品免费网站| 国产亚洲字幕| 激情六月天婷婷| 91短视频在线观看| 91高清在线视频| 亚洲免费资源| 97偷自拍亚洲综合二区| 久久久9色精品国产一区二区三区| 国产一区二区三区四区三区四| 亚洲综合日韩| 免费看欧美女人艹b| 欧美喷水视频| 国产欧美日韩免费观看| 最近2019好看的中文字幕免费| 久久五月天小说| 亚洲精品影院在线观看| 岛国av午夜精品|