什麼是容器映像檔
建立容器所依據的唯讀範本。把應用程式的執行檔、函式庫、設定等檔案分層疊加,並附上要啟動的指令等設定,不包含作業系統的核心。由 Dockerfile 等建置,存放在登錄檔(registry)中發布。可用儲存庫名稱與標籤(例:web:1.4)指定,也可用由內容計算出的摘要(sha256:…)唯一指定。相同的層由多個映像檔共用。
日文名稱: コンテナイメージ
「容器映像檔」出現在1領域的3道練習題中(雲端與容器基礎等)。
這個名詞所屬的領域: 雲端與容器基礎
建立容器所依據的唯讀範本。把應用程式的執行檔、函式庫、設定等檔案分層疊加,並附上要啟動的指令等設定,不包含作業系統的核心。由 Dockerfile 等建置,存放在登錄檔(registry)中發布。可用儲存庫名稱與標籤(例:web:1.4)指定,也可用由內容計算出的摘要(sha256:…)唯一指定。相同的層由多個映像檔共用。
日文名稱: コンテナイメージ
「容器映像檔」出現在1領域的3道練習題中(雲端與容器基礎等)。
這個名詞所屬的領域: 雲端與容器基礎
Dockerfile 的指令中會改變檔案的指令(RUN、COPY 等)各自成為1層。層以由內容計算出的摘要識別,因此使用同一基礎映像檔的映像檔之間,該層的下載與磁碟都只需1份並共用。即使在後面的層刪除檔案,前面層的內容仍留在映像檔中,因此大型暫存檔要在同一個指令內刪除,或以多階段建置使其不進入最終映像檔。
標籤是 web:1.4 或 latest 這類由人取的名稱,之後可以改貼到別的映像檔上。摘要是由映像檔內容計算出的值,內容只要有1位元不同就會改變。在正式環境或需要確實使用與測試相同的東西時,以摘要指定。
不放入執行時不需要的編譯器與套件管理工具,映像檔就會變小、拉取變快,漏洞的對象也減少。以多階段建置把建置用與執行用的階段分開,是代表性的方法。機密值不放進映像檔,而是在啟動時傳入。
正確答案:B. 映像檔是唯讀的範本,可從1個映像檔啟動多個各自擁有可寫入層的容器
映像檔是彙整執行應用程式所需檔案與設定的唯讀範本,容器則是由映像檔建立的執行單位。建立容器時,會在映像檔的各層之上疊加該容器專用的可寫入層。因此可從1個映像檔啟動許多容器,各容器中的變更不會影響其他容器或映像檔。若想把變更保留為映像檔,一般做法是修改 Dockerfile 並重新建置映像檔。
正確答案:A. 建立新的 ReplicaSet,一邊增加新版本的 Pod 一邊減少舊版本的 Pod。舊的 ReplicaSet 以 Pod 數為0的狀態保留,供回復使用
Pod 範本改變時,Deployment 會為新範本建立 ReplicaSet,一邊確認新的 Pod 已準備就緒,一邊逐步減少舊 ReplicaSet 的 Pod。因此在更新期間,也有一定數量的 Pod 持續處理要求。舊的 ReplicaSet 會以 Pod 數為0的狀態保留,所以可用 kubectl rollout undo 回到前一版。先刪除全部 Pod 再重新建立的方式是 Recreate,只在明確指定時使用。
映像檔是唯讀的範本,容器是由它建立、執行中(或已停止)的實體。1個映像檔可以建立許多容器,每個容器各附有專用的可寫入層。這類似程式檔案與行程的關係。
latest 是沒有特別意義的一般標籤,只是省略標籤時使用的預設名稱,除非有人改貼,否則不一定指向新版本。想固定版本時,請以具體的標籤或摘要指定。
Kubernetes Pod CI/CD(持續整合與持續交付) 環境變數 不可變基礎設施 可用區域 可觀測性 共同責任模型 自動擴展 物件儲存