Anthos clusters on bare metal은 클러스터 구성 파일에 선택적 containerRuntime
구성 필드를 추가합니다. 이 필드를 사용하여 클러스터 노드가 Kubernetes 포드용 컨테이너를 예약하는 데 사용하는 컨테이너 런타임을 구성합니다.
kubelet
을 통해 컨테이너 런타임 인터페이스를 직접 호출할 수 있습니다. 이 옵션을 사용하면 Docker 데몬이 필요 없으므로 Docker와 kubelet
를 분리할 수 있습니다.
이러한 변경이 필요한 이유는 Kubernetes의 목표가 Docker 데몬의 사용을 중단하고 containerd를 기본값으로 만드는 것이기 때문입니다. Kubernetes는 Kubernetes 버전 1.20부터 경고를 보내고 버전 1.24까지 지원 중단을 완료할 계획입니다. 이 변경사항은 containerd를 GKE의 기본값으로 만들기 위해 계획된 변경사항과 일치합니다.
Anthos clusters on bare metal에서는 새 containerRuntime
필드를 통해 Docker 또는 containerd
를 사용하도록 kubelet
를 구성할 수 있습니다. 기본적으로 kubelet
은 containerd를 컨테이너 런타임으로 사용합니다.
시작하기 전에
클러스터에 사용하려는 컨테이너 런타임을 식별합니다. 클러스터를 업그레이드 또는 설치할 때만 컨테이너 런타임 필드 값을 변경할 수 있습니다.
배포에서
containerd
버전 1.4.6 이상이 지원되는지 확인합니다. Anthos clusters on bare metal은 이전에 설치된containerd
버전 위에 이 버전을 설치합니다.Anthos clusters on bare metal이 두 런타임에 모두 설치된 다음 파일을 설치할 수 있는지 확인합니다.
바이너리 파일
/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 clusters on bare metal이 선택한 런타임에 따라 노드에 다음 인증서를 설치할 수 있는지 확인하세요.
containerd
:/etc/docker/certs.d/
/etc/containerd/certs.d/
- Docker:
/etc/docker/certs.d/
새 클러스터의 컨테이너 런타임 구성
새 클러스터의 컨테이너 런타임을 설정하려면 클러스터 구성 파일의 spec
아래에 있는 nodeConfig
섹션에서 containerRuntime
필드를 설정합니다. Anthos clusters on bare metal은 다음 값을 지원합니다.
containerd
docker
필드가 비어 있거나 설정되지 않았으면 Anthos clusters on bare metal에 기본적으로 containerd
가 사용됩니다.
Docker를 사용하려면 구성 항목이 다음 예시와 비슷하게 표시됩니다.
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
클러스터를 업그레이드할 때 컨테이너 런타임 구성
업그레이드할 때 다른 컨테이너 런타임을 사용하도록 Anthos clusters on bare metal을 구성할 수 있습니다. 클러스터를 업그레이드 또는 설치할 때만 컨테이너 런타임 필드 값을 변경할 수 있습니다.
요구사항
- 관리자 클러스터를 사용자 클러스터보다 먼저 업그레이드합니다.
- 클러스터를 업그레이드하기 전 구성 파일에서
containerRuntime
필드의 값을 설정합니다.
런타임을 Docker로 변경
업그레이드 동안 컨테이너 런타임을 설정하려면 클러스터 구성 파일의 spec
아래에 있는 nodeConfig
섹션에서 containerRuntime
필드를 설정합니다. Anthos clusters on bare metal은 다음 값을 지원합니다.
containerd
docker
Docker를 사용하려면 다음 예시와 같이 구성 파일을 변경합니다.
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
업그레이드의 일부로 클러스터 노드의 컨테이너 런타임을 docker
로 설정하려면 다음 명령어를 실행하여 클러스터를 업그레이드합니다.
bmctl upgrade cluster
Docker를 런타임으로 설정하여 클러스터 업데이트
컨테이너 런타임을 docker
로 설정하면 다음 명령어는 /etc/containerd/certs.d/
의 이미지 레지스트리 인증서를 업데이트합니다.
bmctl update cluster
컨테이너를 런타임으로 사용하는 클러스터 재설정
기본 컨테이너 런타임을 사용하는 경우 다음 명령어는 구성, 바이너리 파일 또는 디렉터리를 삭제하지 않습니다.
bmctl reset cluster
재설정 중에는 containerd
서비스가 계속 실행되지만 Kubernetes에 예약된 컨테이너가 중지되고 containerd 런타임에서 중지 및 삭제됩니다.
다음 바이너리 파일 및 디렉터리를 삭제하여 재설정을 완료하세요.
/etc/crictl.yaml
/etc/systemd/system/containerd.service
/etc/systemd/system/containerd.service.d/
/etc/containerd/config.toml
/etc/containerd/certs.d/
Docker를 런타임으로 사용하는 경우 재설정 중에 삭제가 수행되지 않습니다.
런타임 상태 확인
머신 상태 확인 중 런타임 상태를 확인하려면 다음 명령어를 실행합니다.
systemctl status RUNTIME
RUNTIME
을 선택한 런타임(containerd
또는 docker
)으로 바꿉니다.