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