在容器內獲取Pod資訊 Downward API

2022-06-14 10:57:09 字數 1564 閱讀 1399

我們知道,每個pod在被成功建立出來之後,都會被系統分配唯一 的名字、ip位址,並且處於某個namespace中,那麼我們如何在pod的容 器內獲取pod的這些重要資訊呢?答案就是使用downward api。

downward api可以通過以下兩種方式將pod資訊注入容器內部。

(1)環境變數:用於單個變數,可以將pod資訊和container資訊注入容器內部。

(2)volume掛載:將陣列類資訊生成為檔案並掛載到容器內部。 下面通過幾個例子對downward api的用法進行說明。

下面的例子通過downward api將pod的ip、名稱和所在namespace 注入容器的環境變數中,容器應用使用env命令將全部環境變數列印到 標準輸出中:

注意到上面valuefrom這種特殊的語法是downward api的寫法。目 前downward api提供了以下變數。

◎ metadata.name:pod的名稱,當pod通過rc生成時,其名稱是 rc隨機產生的唯一名稱。

◎ status.podip:pod的ip位址,之所以叫作status.podip而非 metadata.ip,是因為pod的ip屬於狀態資料,而非元資料。

◎ metadata.namespace:pod所在的namespace。

從日誌中我們可以看到pod的ip、name及namespace等資訊都被正 確儲存到了pod的環境變數中

下面的例子通過downward api將container的資源請求和限制資訊 注入容器的環境變數中,容器應用使用printenv命令將設定的資源請求 和資源限制環境變數列印到標準輸出中

注意valuefrom這種特殊的downward api語法,目前 resourcefieldref可以將容器的資源請求和資源限制等配置設定為容器內 部的環境變數。

◎ requests.cpu:容器的cpu請求值。 ◎ limits.cpu:容器的cpu限制值。 ◎ requests.memory:容器的記憶體請求值。 ◎ limits.memory:容器的記憶體限制值。 執行kubectl create命令來建立pod:

從日誌中我們可以看到container的requests.cpu、limits.cpu、 requests.memory、limits.memory等資訊都被正確儲存到了pod的環境變 量中。

文章**於k8s權威指南

Properties獲取配置檔案內資訊

public class propertiesutil 根據key值讀取配置的值 param key key值 return key 鍵對應的值 throws ioexception public string readvalue string key throws ioexception 讀取pr...

docker 在容器外執行某個容器內的某個命令

有時候我們想執行某個容器的某條命令,但又不想進入容器內。那該怎麼辦?於是指令碼可以這樣寫 docker id 62f3f40ab240 sudo docker exec it docker id bin bash c cd packages detectron python tools train....

Flex 在as獲取元件的資訊

具體參見此文章 想必大家在獲取index.mxml主容器裡面的某個id獲取不到而煩吧。因為id只能在當前頁面使用,在另個頁面是用不了的,今天就出這個教程幫大家解決問題。請看例子 這個是主應用程式index.mxml,現在我是要獲取mylabid public function init void p...