109 Secret的使用場景 (Swarm16)

2022-05-30 19:06:13 字數 840 閱讀 4211

參考

我們可以用secret管理任何敏感資料。這些敏感資料是容器在執行時需要的。同時我們又不想把這些資料儲存到映象中。

secret可以用於管理:

1、使用者名稱和密碼

2、tls證書

3、ssh金鑰

4、其他小於500kb的資料

secret只能在 swarm service 中使用,普通容器想使用secret的話, 可以將其包裝成副本數為1 的service

我們這裡在舉乙個使用secret的典型場景。

資料中心有三套swarm環境,分別用於研發、測試和生產。對於同乙個應用,在不同的環境中使用不同的使用者名稱和密碼。我們可以在三個環境中分別建立secret,不過使用相同的名字,比如 username 和 password。應用部署的時候三套環境指定同樣的secret名字即可。

除了敏感資料,secret當然也可以用於非敏感資料,比如配置檔案,不過目前新版本的docker 提供了config子命令來管理不需要加密的資料。config 與 secret 命令的使用方法完全一致。

secret的安全性

當在swarm中建立secret時,docker 通過 tls 連線將加密後的secret 傳送給所有的manager節點。

secret 建立後,即使是 swarm manager 也無法檢視secret的明文資料,只能通過 docker secret inspect 檢視secret的一般資訊。

只有當secret 被指定的service 使用時,docker才會將解密後的secret以檔案的形式mount到容器中,預設的路徑為 /run/secret/。

當容器停止執行是,docker會unmount secret 檔案,並從節點上清除。

autorelease的使用場景

autorelease 就是把 release 延後到 autorelease pool drain 的時候。是 arc 進行引用計數管理機制中的一部分,挺巧妙的。其它還有 weak 指標等都是為了管理好記憶體設計的機制。主要是可以用在非 alloc copy new等函式的返回值上面。可以對應解決...

PrepareForTest的使用場景

當使用powermockito.whennew方法時,必須加註解 preparefortest和 runwith。註解 preparefortest裡寫的類是需要mock的new物件 所在的類。當需要mock final方法的時候,必須加註解 preparefortest和 runwith。註解 p...

CSS important的使用場景

我們知道,css寫在不同的地方有不同的優先順序,css檔案中的定義 元素style中的屬性,但是如果使用 important,事情就會變得不一樣。首先,先看下面一段 測試css中的 important區別title head type text css testclass style class t...