CRI-O는 마이너 버전( 1.xy
)과 관련하여 Kubernetes 릴리스 주기를 따릅니다. Kubernetes용 패치 릴리스( 1.xz
)는 매월 예정되어 있기 때문에 CRI-O의 패치 릴리스(1.xz )와 동기화되지 않습니다. 반면 CRI-O는 필요한 경우에만 이를 제공합니다. Kubernetes 릴리스의 수명이 종료되면 해당 CRI-O 버전도 동일한 방식으로 간주될 수 있습니다.
이는 CRI-O가 기능 종료, 지원 중단 또는 제거와 관련하여 Kubernetes n-2
릴리스 버전 차이 정책도 따른다는 것을 의미합니다. 이는 Kubernetes와 독립적인 기능에도 적용됩니다. 그럼에도 불구하고 Kubernetes 또는 cri-tool과 같은 다른 도구와 독립적인 지원되는 릴리스 분기에 대한 기능 백포트는 여전히 가능합니다. 이를 통해 CRI-O는 Kubernetes 릴리스 주기에서 분리되고 새로운 기능을 구현할 때 충분한 유연성을 가질 수 있습니다. 백포트될 모든 기능은 커뮤니티의 사례별 결정이 될 것이며 전체 호환성 매트릭스가 손상되어서는 안 됩니다.
자세한 내용은 Kubernetes 버전 차이 정책을 참조하세요.
크리오 | 쿠버네티스 | 유지보수 상태 |
---|---|---|
main | master 브랜치 | 기본 Kubernetes 저장소의 기능이 적극적으로 구현됩니다. |
release-1.x 브랜치( v1.xy ) | release-1.x 브랜치( v1.xz ) | 유지 관리는 수동이며 버그 수정만 백포트됩니다. |
CRI-O의 릴리스 노트는 직접 제작되었으며 GitHub 페이지 웹사이트에서 지속적으로 검색할 수 있습니다.
CRI-O는 OCI 규격 런타임과 Kubelet 간의 통합 경로를 제공하기 위한 것입니다. 특히 OCI 준수 런타임을 사용하여 Kubelet CRI(컨테이너 런타임 인터페이스)를 구현합니다. CRI-O의 범위는 CRI의 범위와 연결되어 있습니다.
높은 수준에서 CRI-O의 범위는 다음 기능으로 제한될 것으로 예상됩니다.
CRI-O는 Kubernetes가 OCI(Open Container Initiative) 컨테이너를 직접 시작하고 관리할 수 있게 해주는 Kubernetes CRI(컨테이너 런타임 인터페이스)의 구현입니다.
계획은 다양한 측면에서 OCI 프로젝트와 최고의 라이브러리를 사용하는 것입니다.
현재 쿠버네티스 커뮤니티에서 디자인 제안을 통해 활발한 개발이 진행 중이다. 질문과 문제는 Kubernetes 서명 노드 Slack 채널에서 제기되어야 합니다.
CRI-O의 방향을 설명하는 로드맵은 여기에서 확인할 수 있습니다. 이 프로젝트는 기능 로드맵 GitHub 프로젝트의 일부로 진행 중인 모든 노력을 추적하고 있습니다.
CRI-O의 CI는 GitHub 작업과 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에 설명되어 있습니다.
컨테이너를 생성할 때 OCI 후크를 삽입하도록 CRI-O를 구성할 수 있습니다.
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(컨테이너 런타임 인터페이스)를 충족합니다. 이 외에도 CRI-O에 대한 추가 런타임 상태 정보를 검색하기 위한 추가 HTTP API가 있습니다. 이 API는 안정적인 것으로 간주되지 않으며 프로덕션 사용 사례에서는 이에 의존해서는 안 됩니다.
실행 중인 CRI-O 인스턴스에서는 컬과 같은 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 | 고루틴 스택을 인쇄합니다. |
/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 개발을 논의하기 위해 매주 회의가 열립니다. 누구에게나 열려있습니다. 회의 참여에 대한 자세한 내용은 위키에 있습니다.
CRI-O가 어떻게 관리되는지에 대한 자세한 내용은 거버넌스 파일을 살펴보세요.