簡體   English   中英

Kubernetes - 為每個卷(而不是每個 pod)設置自定義權限/文件所有權

[英]Kubernetes - setting custom permissions/file ownership per volume (and not per pod)

有沒有辦法在 Kubernetes 中以聲明方式設置每個卷的權限/所有權?

用例:

  • 一個 pod 由兩個容器組成,作為兩個不同的用戶/組運行,他們都是非 root,並且無法sudo
  • 容器分別掛載一個卷,並需要在這些卷中創建文件(例如,它們都想寫入日志)

我們知道我們可以使用fsGroup ,但這是一個 pod 級別的聲明。 所以即使我們在第一個容器中選擇 fsGroup 等於用戶,那么我們也會在另一個容器中遇到權限問題。 (參考: Kubernetes:如何設置 VolumeMount 用戶組和文件權限

一種解決方案是使用 init-container 更改掛載目錄的權限

init-container 需要掛載兩個卷(從兩個容器),並執行所需的chown / chmod操作。

缺點:

  • 需要了解其他容器特定的額外容器(即 uid/gid)
  • init 容器需要以 root 身份運行才能執行chown

可以通過添加一個具有 root 訪問權限的 init 容器來完成。

    initContainers:
    - name: changeowner
      image: busybox
      command: ["sh", "-c", "chown -R 200:200 /<volume>"]   
      volumeMounts:
      - name: <your volume>
        mountPath: /<volume>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM