CRI-O 的次要版本 ( 1.xy
) 遵循 Kubernetes 發布週期。 Kubernetes 的補丁版本 ( 1.xz
) 與 CRI-O 的補丁版本不同步,因為它們計劃每月發布,而 CRI-O 僅在必要時才提供。如果 Kubernetes 版本終止生命週期,則可以以相同的方式考慮相應的 CRI-O 版本。
這意味著在功能分級、棄用或刪除方面,CRI-O 也遵循 Kubernetes n-2
發行版本傾斜政策。這也適用於獨立於 Kubernetes 的功能。儘管如此,功能向後移植到受支援的發行分支(獨立於 Kubernetes 或 cri-tools 等其他工具)仍然是可能的。這使得 CRI-O 能夠與 Kubernetes 發布週期解耦,並在實現新功能時具有足夠的靈活性。每個要向後移植的功能都將由社區根據具體情況決定,而整體相容性矩陣不應受到損害。
有關更多信息,請訪問 Kubernetes 版本偏差策略。
CRI-O | 庫伯內斯 | 維護狀態 |
---|---|---|
main | master 分支 | 積極實施主 Kubernetes 儲存庫中的功能 |
release-1.x 分支 ( v1.xy ) | release-1.x 分支 ( v1.xz ) | 維護是手動的,只有錯誤修復才會被向後移植。 |
CRI-O 的發行說明是手工製作的,可以從我們的 GitHub Pages 網站不斷檢索。
CRI-O 旨在提供符合 OCI 的執行時間和 Kubelet 之間的整合路徑。具體來說,它使用符合 OCI 的運行時來實現 Kubelet 容器運行時介面 (CRI)。 CRI-O 的範圍與 CRI 的範圍有關。
在較高層面上,我們預期 CRI-O 的範圍僅限於以下功能:
CRI-O 是 Kubernetes 容器執行時間介面 (CRI) 的實現,它將允許 Kubernetes 直接啟動和管理開放容器計畫 (OCI) 容器。
該計劃是在不同方面使用 OCI 項目和最佳品種庫:
目前 Kubernetes 社群正在透過設計提案積極開發它。疑問和問題應在 Kubernetes sig-node Slack 頻道中提出。
您可以在此處找到描述 CRI-O 方向的路線圖。該專案正在追蹤所有正在進行的工作,作為功能路線圖 GitHub 專案的一部分。
CRI-O 的 CI 分為 GitHub actions 和 OpenShift CI (Prow)。用於 prow 作業的相關虛擬機器映像會在作業中定期建置:
這些作業是從 openshift/release 儲存庫維護的,並定義用於特定作業的工作流程。實際的作業定義可以在main
分支的 ci-operator/jobs/cri-o/cri-o/cri-o-cri-o-main-presubmits.yaml 下的相同儲存庫以及對應的檔案中找到發布分支。這些作業的基本映像配置可在 ci-operator/config/cri-o/cri-o 下的相同儲存庫中找到。
命令 | 描述 |
---|---|
克里歐(8) | OCI Kubernetes 容器執行時期守護程式 |
與 CRI-O(或其他 CRI 相容運行時)互動的命令列工具的範例是 Crictl 和 Podman。
文件 | 描述 |
---|---|
crio.conf(5) | CRI-O 設定檔 |
政策.json(5) | 簽名驗證策略文件 |
註冊表.conf(5) | 註冊表配置文件 |
存儲.conf(5) | 儲存設定檔 |
SECURITY.md 中描述了報告漏洞的安全流程。
您可以設定 CRI-O 在建立容器時注入 OCI Hooks。
我們為營運和開發轉移提供有用的信息,因為它與利用 CRI-O 的基礎設施有關。
對於非同步通訊和長時間運行的討論,請使用 GitHub 儲存庫上的問題和拉取請求。這將是討論設計和實現的最佳場所。
對於聊天交流,我們在 Kubernetes Slack 上有一個頻道,歡迎大家加入並討論開發。
我們維護與 CRI-O 相關的精選連結清單。您在網上發現了有關該項目的有趣資訊嗎?太棒了,請隨意打開 PR 並將其添加到列表中。
要安裝CRI-O
,您可以按照我們的安裝指南進行操作。或者,如果您想從原始程式碼建立CRI-O
,請查看我們的設定指南。
在開始之前,您需要啟動 CRI-O
您可以使用local-up-cluster.sh
透過CRI-O
運行本機版本的 Kubernetes:
CGROUP_DRIVER=systemd
CONTAINER_RUNTIME=remote
CONTAINER_RUNTIME_ENDPOINT='unix:///var/run/crio/crio.sock'
./hack/local-up-cluster.sh
有關運行CRI-O
更多指導,請訪問我們的教程頁面
CRI-O 預設公開 gRPC API 來實作 Kubernetes 的容器執行時間介面 (CRI)。除此之外,還有一個額外的 HTTP API 可以檢索有關 CRI-O 的更多執行時間狀態資訊。請注意,該 API 不被認為是穩定的,生產用例不應依賴它。
在正在運行的 CRI-O 實例上,我們可以透過像curl這樣的HTTP傳輸工具存取API:
$ sudo curl -v --unix-socket /var/run/crio/crio.sock http://localhost/info | jq
{
"storage_driver": "btrfs",
"storage_root": "/var/lib/containers/storage",
"cgroup_driver": "systemd",
"default_id_mappings": { ... }
}
目前支援以下 API 入口點:
小路 | 內容類型 | 描述 |
---|---|---|
/info | application/json | 有關運行時的一般信息,例如storage_driver 和storage_root 。 |
/containers/:id | application/json | 專用容器訊息,如name 、 pid 和image 。 |
/config | application/toml | CRI-O 使用的完整 TOML 配置(預設為/etc/crio/crio.conf )。 |
/pause/:id | application/json | 暫停正在運行的容器。 |
/unpause/:id | application/json | 取消暫停已暫停的容器。 |
/debug/goroutines | text/plain | 列印 goroutine 堆疊。 |
/debug/heap | text/plain | 寫入堆轉儲。 |
子命令crio status
可用於透過專用命令列工具存取 API。它透過專用子命令config
、 info
和containers
支援所有 API 端點,例如:
$ sudo crio status info
cgroup driver: systemd
storage driver: btrfs
storage root: /var/lib/containers/storage
default GID mappings (format ::):
0:0:4294967295
default UID mappings (format ::):
0:0:4294967295
請參閱 CRI-O 指標指南。
請參閱 CRI-O 追蹤指南。
容器運作時的某些方面值得額外解釋。這些詳細資訊總結在專門的指南中。
有問題嗎?我們的調試指南中有一些調試提示和技巧
可以在此處找到生產環境中 CRI-O 採用者的不完整清單。如果您是用戶,請透過提交拉取請求來幫助我們完成它!
每週舉行一次會議來討論 CRI-O 的發展。它向所有人開放。加入會議的詳細資訊位於 wiki 上。
有關 CRI-O 如何治理的更多信息,請查看治理文件