- 運算›
- Bottlerocket›
- 常見問答集
Bottlerocket 常見問答集
一般問題
Bottlerocket이란 무엇인가요?
Bottlerocket 是由 AWS 贊助和支援的 Linux 發行版本,專為託管容器工作負載而建置。藉由 Bottlerocket,您可以透過將容器基礎設施的更新自動化,來提升容器化部署的可用性並降低營運成本。Bottlerocket 僅包含執行容器所需的基本軟體,從而提高資源利用率、減少安全受攻擊面並降低管理開銷。它還與容器協調器 (例如 Kubernetes 和 Amazon ECS) 整合,以進一步降低管理和營運開銷,同時更新叢集中的容器主機。
Bottlerocket을 사용할 수 있는 리전은 어디인가요?
在所有 AWS 商業區域、GovCloud 和 AWS 中國區域均可使用 Bottlerocket。Bottlerocket 是 VMware vSphere 和裸機上 EKS Anywhere 的預設作業系統。此外,Bottlerocket 也可在內部部署用於 VMware 中的 Kubernetes 工作節點,以及在裸機上與 EKS Anywhere for Kubernetes 工作節點搭配使用。
Bottlerocket을 사용하면 어떤 이점이 있나요?
a) 更長的正常執行時間、更低的營運成本和更低的管理複雜性:與 Linux 相比,Bottlerocket 僅包含執行容器所需的元件,具有較少的資源佔用、較短啟動時間和安全受攻擊面。由於減少了儲存、運算和網路資源的使用,更小的佔用空間有助於降低成本。使用容器原型 (而不是套件管理器) 來執行軟體降低了管理開銷。
b) 透過自動作業系統更新提高安全性:對 Bottlerocket 的更新作為一個單元套用,必要時可以回復,這消除了「拙劣」更新可能使系統處於無法使用狀態的風險。更新失敗在通用作業系統中很常見,因為在逐個套件更新期間出現無法恢復的故障。在 Bottlerocket 中,安全更新能夠以最低干擾的方式,在可用時立即自動套用,並在發生故障時回復。
c) 開源和通用可用性:開放的開發模型使客戶、合作夥伴和所有相關方能夠對 Bottlerocket 進行程式碼和設計變更。
d) 高級支援:在 Amazon EC2 上使用 AWS 提供的 Bottlerocket 建置包含在同樣的 AWS 支援計劃中,這些支援計劃還涵蓋 Amazon EC2、Amazon EKS、Amazon ECR 等 AWS 服務。
Bottlerocket은 Amazon Linux와 어떻게 다른가요?
Amazon Linux 是一種通用作業系統,用於執行與 RPM 套件管理器或容器封裝在一起的廣泛應用程式。Amazon Linux 經過最佳化,能夠使用 yum、ssh、tcpdump、netconf 等傳統工具根據工作負載的需要設定每個執行個體。另一方面,Bottlerocket 專用於執行容器,且可讓您以自動化方式管理大量容器主機。具體來說,Bottlerocket 在以下方面與 Amazon Linux 有所差異:
- Bottlerocket 沒有套件管理器且軟體僅可作為容器執行。可套用對 Bottlerocket 的更新,並且可以在單個原子步驟中回復,從而減少更新錯誤。
- 管理 Bottlerocket 主機的主要機制是使用 Kubernetes 等容器協調器。與 Amazon Linux 有所不同,不會頻繁登入個別 Bottlerocket 執行個體來進行進階偵錯和疑難排解。
Bottlerocket의 핵심 구성 요소는 무엇인가요?
Bottlerocket 的主要元件包括:
- 最低作業系統包含 Linux 核心、系統軟體和作為容器執行時期的 containerd。
- 原子更新機制,用於在單一步驟中套用和回復作業系統更新。
- 與 Kubernetes 之類的容器協調器整合,以管理和協調更新。
- 可選擇性地針對進階疑難排解和偵錯執行的「管理員容器」。
Bottlerocket 요금은 어떻게 되나요?
AWS 提供的 Bottlerocket 建置版本可免費使用。您只需為所使用的 EC2 執行個體付費。
Bottlerocket은 초당 결제를 지원하나요?
是,會影響。Bottlerocket 使用 Amazon EC2 Linux/Unix 執行個體類型的定價。您在 EC2 上使用 AWS 提供的 Bottlerocket 以原生方式建置時,支援依每秒計費。請注意,以 Bottlerocket 克為基礎建置的 AWS Marketplace 產品可能會產生相關的小時費用。
퍼블릭 로드맵이 있나요?
Bottlerocket 커뮤니티에 연결하려면 어떻게 해야 하나요?
請在 Meetup 上加入 Bottlerocket 社群,以了解有關最新的 Bottlerocket 活動並與社群成員見面。定期安排見面。
使用 Bottlerocket
如何開始在 AWS 上使用 Bottlerocket?
AWS 為 Bottlerocket 提供 Amazon Machine Image (AMI),您可以使用它從 AWS Console、CLI 和開發套件在支援的 EC2 執行個體類型上執行。AWS 將提供 Bottlerocket 建置,其已預先設定為搭配 EKS、ECS、VMware 及裸機上的 EKS Anywhere 使用。您可以使用協調器,以最短的中斷時間更新和管理作業系統,而不必登入每個作業系統執行個體。
如何在 Bottlerocket 上執行軟體?
您可透過協調器,在 Bottlerocket 執行個體上啟動容器化應用程式。您還可以在影像自訂期間將軟體和啟動指令碼包含到 Bottlerocket 中。請參閱 Bottlerocket 文件以取得詳細資訊。
使用 Kubernetes 部署和操作 Bottlerocket 的步驟有哪些?
您可以使用下列步驟來部署和維修 Bottlerocket:
- 第 1 步:您可以像在虛擬機器中部署任何其他作業系統一樣部署 Bottlerocket。在 AWS 上,您可以從 AWS 管理主控台,透過 API 或透過 AWS CLI 將 Bottlerocket 部署至 EC2 執行個體。您需要透過使用者資料為每個 Bottlerocket 執行個體提供組態詳細資訊,以註冊到 Amazon EKS 叢集。
- 步驟 2:若要與協調器一起運作 Bottlerocket,您需要將整合元件部署至您的叢集。整合元件使協調器能夠以干擾性最小的方式啟動重新啟動、回復更新和取代容器以進行輪流升級。
如何將更新套用至 Bottlerocket?
Bottlerocket 更新會在可用時自動從預先設定的 AWS 儲存庫中下載。需要重新啟動 Bottlerocket 來套用更新,可手動起始或由 Kubernetes 之類的協調器進行管理。您需要選擇適當的機制,以根據應用程式對重新啟動的容忍度和營運需要來處理重新啟動。如果您的應用程式為無狀態且可彈性地重新啟動,則可在下載更新後立即執行重新啟動。如果您在對重新啟動沒有彈性的容器中執行有狀態的傳統工作負載 (例如,資料庫、長期執行的業務線應用程式等),則需要確保在重新啟動之前保留狀態。
Bottlerocket 重新啟動可由協調器管理,方法是跨主機排空和重新啟動容器,從而在叢集中啟用輪流更新以減少中斷。如果透過支援的協調器或手動動作發生故障,也可以安全地回復 Bottlerocket 的更新。如需在 Amazon EKS 叢集和 Amazon ECS 叢集上部署和使用「Bottlerocket 更新運算子」的步驟,請參閱 Bottlerocket 文件。
版本控制和變體
Bottlerocket 릴리스 버전은 어떻게 관리되나요?
AWS 提供的 Bottlerocket 建置遵循 “major.minor.patch” 語義版本控制方案。Bottlerocket 的次要版本將在一年中多次發佈,其中包含對新 EC2 平台的支援、對新協調器代理程式的支援以及對開源元件的更新等變更。版本方案將指示更新是否包含重大變更。
사용할 수 있는 Bottlerocket 변형으로는 어떤 것이 있나요?
變體是一種支援不同功能或整合特性 Bottlerocket 建置版本。AWS 提供支援 EC2、VMware 及裸機上的 Kubernetes 工作節點的 Bottlerocket 變體。AWS 還在 EC2 中為 ECS 提供 Bottlerocket。您可以查看所有 AWS 提供的變體清單。
Bottlerocket에는 NVIDIA GPU 기반 Amazon EC2 인스턴스 유형을 지원하는 변형이 있나요?
Bottlerocket 版本發行的頻率是多少?
Bottlerocket 功能版本 (次要版本,例如 1.10.0、1.11.0) 通常以 6 到 8 週的節奏發行。錯誤和 CVE 修正 (修補程式版本,例如 1.10.1、1.11.1) 會視需要進行發行,並且發行節奏視問題的嚴重程度而定。請參閱 CHANGELOG,其中顯示了所有 Bottlerocket 發行版本及其時間表。
支援
Bottlerocket에 대해 AWS는 어떤 종류의 지원을 제공하나요?
AWS 提供的 Bottlerocket 建置將接受安全性更新、錯誤修正,且包含在 AWS Support 計劃中。指定建置的支援期間將視所使用的容器協調器版本而定。對應的協調器版本被取代時,Bottlerocket 建置也將被取代。例如,我們不再支援 aws-k8s-1.19,這是適用於 Kubernetes 1.19 的 Bottlerocket 建置。這與 Kubernetes 1.19 不再接受上游支援一致。我們建議客戶將 aws-k8s-1.19 節點取代為您的叢集支援的最新建置。此外,GitHub 上提供了對 Bottlerocket 的社群支援,您可以在其中發佈問題、功能請求和報告錯誤。有關 CVE 發行和修正的詳細資訊將發佈在 Bottlerocket 變更日誌中。
基於 Amazon Linux 2 的 EKS 和 ECS 最佳化的 AMI 是否繼續受支援?
目前基於 Amazon Linux 的 EKS 最佳化的 AMI 將受支援且繼續接受安全更新。如需支援生命週期的詳細資訊,請參閱 EKS 最佳化的 Amazon Linux 2 AMI 和 ECS 最佳化的 AMI。
Bottlerocket에서 지원하는 컴퓨팅 플랫폼 및 EC2 인스턴스 유형은 무엇인가요?
除了 F、G4ad 和 INF 執行個體類型之外,HVM 和 EC2 裸機執行個體系列支援來自 AWS 的 Bottlerocket 建置。
EKS 관리형 노드 그룹은 Bottlerocket을 지원하나요?
是。請參閱這篇部落格文章,以進一步了解詳細資訊。
更新
Bottlerocket에서 사용 가능한 업데이트 종류는 무엇입니까?
AWS 針對 Bottlerocket 提供預先測試的更新,只需一個步驟即可套用。這些更新也可在單一步驟中回復至已知良好狀態。因此,Bottlerocket 不會發生由於需要手動修復的狀態不一致而導致系統無法使用的「失敗」更新。使用單一步驟原子更新時,複雜性較低,進而減少更新失敗情況。
Bottlerocket에 대한 업데이트를 적용하려면 어떻게 해야 합니까?
AWS 提供的 Bottlerocket 建置的更新會在可用時自動從預先設定的 AWS 儲存庫中下載。需要重新啟動 Bottlerocket 來套用更新,可手動起始或由 Kubernetes 之類的協調器進行管理。您需要選擇適當的機制,以根據應用程式對重新啟動的容忍度和營運需要來處理重新啟動。如果您的應用程式為無狀態且可彈性地重新啟動,則可在下載更新後立即執行重新啟動。如果您在對重新啟動沒有彈性的容器中執行有狀態的傳統工作負載 (例如,資料庫或長期執行的業務線應用程式),則需要確保在重新啟動之前保留狀態。
Bottlerocket 重新啟動可由 Kubernetes 等協調器管理,方法是跨主機排空和重新啟動容器,從而在叢集中啟用輪流更新以減少中斷。依預設,Bottlerocket 將在啟動時自動更新至最新安全版本。如果透過支援的協調器或手動動作發生故障,也可以安全地回復 Bottlerocket 的更新。
업데이트가 최소한의 가동 중단을 보장하도록 Bottlerocket에서 어떻게 지원할 수 있습니까?
與 Kubernetes 這樣的協調器整合可讓 Bottlerocket 更新的中斷時間最短。更新程序期間,協調器會排空正在更新的主機上的容器,並將其置於叢集中的其他閒置主機上。如果更新失敗,協調器還會將主機回復至 Bottlerocket 的上一個版本。
相容性與遷移
Bottlerocket의 컨테이너에서 어떤 컨테이너 이미지를 실행할 수 있습니까?
Bottlerocket 可執行所有符合 OCI 映像格式規範和 Docker 映像檔的所有容器映像。
Amazon Linux 2에서 실행하는 컨테이너를 Bottlerocket으로 이동할 수 있습니까?
可以,您可以在 Amazon Linux 2 和 Bottlerocket 之間移動容器,而無需進行任何修改。
Bottlerocket을 사용하지 않아야 하는 경우가 있습니까?
如果要執行容器的營運工作流程設計在主機作業系統上使用 yum 安裝軟體、直接 SSH 至執行個體、個別自訂每個執行個體,或執行非容器化的第三方 ISV 軟體 (例如,用於記錄和監控的代理程式),則 Amazon Linux 2 可能非常適合。Bottlerocket 經過最佳化,可執行和管理大型容器化部署,且不會輕易允許許多這些活動。
疑難排解和安全性
Bottlerocket에서 문제를 디버깅하려면 어떻게 해야 하나요?
您可以使用 Bottlerocket 的 API (透過使用者資料或 AWS Systems Manager 叫用) 執行「管理員容器」,然後使用 SSH 登入,以使用較高的權限進行進階偵錯和疑難排解。AWS 提供的管理員容器可讓您安裝和使用 sosreport、traceroute、strace、tcpdump 等偵錯工具。不會頻繁登入個別 Bottlerocket 執行個體來進行進階偵錯和疑難排解。
관리 컨테이너란 무엇인가요?
管理員容器是一種 Amazon Linux 容器映像,包含用於疑難排解和偵錯 Bottlerocket 的公用程式,且可以較高的權限執行。請參閱有關如何使用管理員容器的詳細資訊。
Bottlerocket에서 제공하는 컨테이너 격리와 보안 기능은 무엇인가요?
Bottlerocket 可透過僅包含託管容器的必要軟體,進而實現自動安全性更新並減少遭受安全攻擊的風險。Bottlerocket 使用容器控制群組 (cgroups) 和內核命名空間來隔離容器之間。它還帶有處於強制模式和 seccomp 的安全增強 Linux (SELinux)。核心中的 eBPF 透過提供用於追蹤 I/O、檔案系統操作、CPU 使用率、入侵偵測和疑難排解的低開銷追蹤架構,減少了許多低級系統操作對核心模組的需求。Bottlerocket 使用 device-mapper-verity (dm-verity),這是一種 Linux 核心功能,它提供完整性檢查,以協助防止可以保留根權限的 Rootkit。
如何從 Bottlerocket 節點收集日誌?
有多種選項可從 Bottlerocket 節點收集日誌。例如,可以使用 CloudWatch Container Insights 或 Fluent Bit with OpenSearch。
Bottlerocket에는 CIS 벤치마크가 있나요?
是的,Bottlerocket 有 CIS 基準。CIS Benchmark 是注重安全的組態設定型錄,可協助 Bottlerocket 客戶以簡單而有效的方式,來設定或記錄任何不合規的組態。Bottlerocket 的 CIS 基準測試包括 1 級和 2 級組態設定檔,並且可以從 CIS 網站存取。
Bottlerocket은 FIPS 인증을 받으셨나요?
否,Bottlerocket 還沒有通過 FIPS 認證。我們的藍圖涵蓋了 Bottlerocket 的 FIPS 認證,但目前並未預計何時通過此認證。
Bottlerocket을 사용하여 PCI 규정 준수를 달성할 수 있나요?
是,可以使用 Bottlerocket 達到 PCI 合規性。最佳化功能集和減少的受攻擊面,意味著 Bottlerocket 執行個體需要較少的組態即可滿足 PCI DSS 需求。Bottlerocket 的 CIS 基準是強化指導的絕佳資源,可依據 PCI DSS 要求 2.2 版支援客戶對安全組態標準的要求。客戶也可以利用 Fluent Bit 來支援 PCI DSS 要求 10.2 版下的作業系統層級稽核記錄的客戶要求。AWS 會定期發佈新的 (已修補的) Bottlerocket 執行個體,以協助客戶滿足 PCI DSS 要求 6.2 (適用於 v3.2.1) 和要求 6.3.3 (適用於 v4.0)。
Bottlerocket을 HIPAA 규제 대상 워크로드에 사용할 수 있나요?
是,Bottlerocket 是符合 HIPAA 資格的功能,可與 Amazon EC2 和 Amazon EKS 的受管制工作負載搭配使用。如需有關 Amazon EKS 的組態指導,請參閱此白皮書以取得其他資訊。
如何依據 CIS 基準強化 Bottlerocket?
請參閱有關強化和驗證 Bottlerocket 的指南 (在其與 Amazon EKS 搭配使用時)。
Amazon Inspector 是否支援 Bottlerocket?
是。Amazon Inspector 是一項漏洞管理服務,可不斷掃描 EC2 和容器工作負載以尋找軟體漏洞和意外網路風險。Amazon Inspector 利用 AWS System Manager (SSM) 代理程式來掃描漏洞。在 Bottlerocket 主機中,SSM 代理程式會在控制主機容器範圍內執行,因此您需要確定已在主機中啟用此代理程式。
開放原始碼和商標
Bottlerocket의 오픈 소스 라이선스란 무엇입니까?
Bottlerocket 程式碼根據 Apache 2.0 OR MIT 取得授權。Amazon 在 Rust 中編寫 Bottlerocket,因此,我們選擇了可輕鬆適應該社群的授權。基礎第三方程式碼 (如 Linux 內核) 仍然受其原始授權的約束。
Bottlerocket에 대한 소스 코드 변경 사항을 보고 이를 적용하려면 어떻게 해야 합니까?
Bottlerocket 作為 GitHub 上託管的開放原始碼專案發行。設計文件、程式碼、建置工具、測試和文件將會託管於 GitHub 上。我們將使用 GitHub 的錯誤和功能追蹤系統進行專案管理。您可以使用標準 GitHub 工作流程來檢視和提供原始程式碼。
내 변경 사항을 포함하는 Bottlerocket의 사용자 지정 빌드를 생성하려면 어떻게 해야 합니까?
您可以延伸 GitHub 儲存庫,執行變更並按照我們的建置指南進行操作。
Bottlerocket의 자체 빌드를 생성하고 재배포할 수 있습니까?
是。如果您從未修改的原始程式碼建置 Bottlerocket 並轉散佈結果,則只有在分發名稱和與其相關聯的內容都清楚的情況下,才可以使用「Bottlerocket」,並且必須確定其建置時的遞交,包括遞交日期。
이 정책을 준수하기 위해 Bottlerocket의 수정된 버전에서 수정해야 하는 OS 변경 사항은 무엇입니까?
您必須修改作業系統版本檔案,才能依據本政策使用 Bottlerocket,否則必須移除 Bottlerocket 商標。可以透過修改 packages/release/release.spec 和 tools/rpm2img 來完成此操作。您不需要變更系統根文件夾名稱 (/x86_64-bottlerocket-linux-gnu/sys-root)、分割區標籤、目錄路徑和服務檔案描述,即可符合此政策。
如果我發現濫用 Bottlerocket 商標的情況,該怎麼辦?
如果您發現對 Bottlerocket 商標有混淆或誤導性的使用或其他濫用,則可以透過以上所述與我們聯絡:[email protected],以便我們進一步調查。