클러스터는 컨테이너 런타임을 사용하여 Kubernetes 포드를 만들고 실행합니다. 베어메탈용 Anthos 클러스터 버전 1.13 이전에서는 컨테이너 런타임이 Docker Engine
또는 containerd
일 수 있습니다. 그러나 컨테이너 런타임은 베어메탈용 Anthos 클러스터 버전 1.13부터 containerd
입니다.
클러스터에서 Docker Engine
을 컨테이너 런타임으로 사용하면 이 컨테이너 런타임을 containerd
로 변경해야 합니다. 이 페이지에서는 컨테이너 런타임을 containerd
로 설정하는 방법을 설명합니다.
클러스터 구성 파일에서 containerRuntime
필드 값을 설정하여 컨테이너 런타임을 지정합니다. 하지만 이 필드 값 설정이나 변경만으로는 부족합니다. 변경사항을 적용하려면 새 클러스터를 만들거나 기존 클러스터를 업그레이드해야 합니다. 즉, 새 클러스터를 만들거나 기존 클러스터를 업그레이드하는 경우에만 컨테이너 런타임을 변경할 수 있습니다.
Kubernetes 1.24에서 Docker Engine 지원 종료
Kubernetes의 dockershim
구성요소를 사용하면 클러스터 노드가 Docker Engine 컨테이너 런타임을 사용할 수 있습니다. 그러나 Kubernetes 1.24는 dockershim
구성요소를 삭제했습니다. 베어메탈용 Anthos 클러스터 버전 1.13은 Kubernetes 1.24에서 실행되므로 버전 1.13 이상 클러스터에서는 더 이상 Docker Engine을 컨테이너 런타임으로 사용할 수 없습니다.
클러스터를 업그레이드하거나 만들 때 다음 컨테이너 런타임 규칙에 유의하세요.
- 버전 1.13 이상의 클러스터에는
containerd
를 사용해야 합니다. - Docker Engine 컨테이너 런타임을 사용하는 버전 1.12 클러스터는 만들 수 없습니다.
- Docker Engine을 사용하는 1.11 클러스터를 Docker Engine을 사용하는 1.12 클러스터로 업그레이드할 수 있습니다. 그러나 업그레이드하기 전에
containerd
로 전환하는 것이 좋습니다.
이미지를 만들기 위해 개발에서 사용하는 Docker 설치는 Kubernetes 클러스터 내의 Docker Engine 컨테이너 런타임과 관련이 없습니다. 여전히 Docker를 사용하여 이미지를 만들고 애플리케이션 컨테이너를 빌드할 수 있습니다. 이러한 컨테이너는 클러스터 내에서 계속 작동합니다.
bmctl
명령어에는 클러스터 만들기와 같은 작업에 사용되는 Docker가 필요하므로 관리자 워크스테이션에 Docker를 계속 설치해야 합니다.
이 Docker 사용은 dockershim
지원 중단의 영향을 받지 않습니다.
컨테이너 런타임을 docker
에서 containerd
로 변경하는 방법에 대한 자세한 내용은 다음 섹션을 참조하세요.
시작하기 전에
클러스터를 업그레이드할 때 사용자 클러스터를 업그레이드하기 전에 관리자 클러스터를 업그레이드해야 합니다.
배포에서
containerd
버전 1.4.6 이상이 지원되는지 확인합니다. 베어메탈용 Anthos 클러스터는 이전에 설치된containerd
버전 위에 이 버전을 설치합니다.베어메탈용 Anthos 클러스터에서 다음 파일을 설치할 수 있는지 확인합니다.
바이너리 파일
/usr/bin/containerd
/usr/bin/containerd-shim
/usr/bin/containerd-shim-runc-v1
/usr/bin/containerd-shim-runc-v2
/usr/bin/crictl
/usr/bin/ctr
/usr/local/sbin/runc
구성 파일
/etc/crictl.yaml
/etc/systemd/system/containerd.service
/etc/containerd/config.toml
/etc/containerd/certs.d/
/etc/systemd/system/containerd.service.d/09-proxy.conf
이 파일은 HTTP 프록시를 구성하는 경우에만 설치됩니다.
베어메탈용 Anthos 클러스터가 노드에
/etc/containerd/certs.d/
인증서를 설치할 수 있는지 확인합니다.
containerd
를 새 클러스터의 컨테이너 런타임으로 설정
클러스터 구성 파일의 spec.nodeConfig
섹션이 비어 있거나 설정되지 않은 경우 새 클러스터가 생성될 때 클러스터의 컨테이너 런타임은 containerd
로 자동 설정됩니다.
그러나 명시적으로 containerd
를 새 클러스터의 컨테이너 런타임으로 설정하려면 클러스터 구성 파일의 spec.nodeConfig
섹션에서 containerRuntime 필드를 containerd
로 설정합니다. 이렇게 하면 클러스터 구성이 다음과 같이 표시됩니다.
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: containerd
이 클러스터 구성 파일을 사용하여 새 클러스터를 만들 때 컨테이너 런타임은 containerd
입니다.
클러스터 업그레이드 시 컨테이너 런타임을 docker
에서 containerd
로 변경
클러스터를 업그레이드할 때 컨테이너 런타임을 docker
에서 containerd
로 변경하려면 다음 단계를 완료합니다.
클러스터 구성 파일의
spec.nodeConfig
섹션에서 containerRuntime 필드를docker
에서containerd
로 변경합니다. 이렇게 하면 클러스터 구성이 다음과 같이 표시됩니다.apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: cluster1 namespace: cluster-cluster1 spec: nodeConfig: containerRuntime: containerd
다음 명령어를 실행하여 클러스터를 업그레이드합니다.
bmctl upgrade cluster -c CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG
다음을 바꿉니다.
- CLUSTER_NAME을 업데이트하려는 클러스터 이름을 바꿉니다.
- ADMIN_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로
컨테이너 런타임 상태 확인
컨테이너 런타임 상태를 확인하려면 다음 명령어를 실행합니다.
systemctl status containerd
클러스터 업그레이드 시 컨테이너 런타임을 containerd
에서 docker
로 변경
베어메탈용 Anthos 클러스터 버전 1.11에서 1.12로 업그레이드할 때 컨테이너 런타임을 사용할 수 있습니다. 그러나 Docker Engine
컨테이너 런타임이 버전 1.13.0 이상에서 지원되지 않으므로 containerd
를 사용하는 것이 좋습니다.