강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

임재봉님의 프로필 이미지
임재봉

작성한 질문수

쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}

2.1.쿠버네티스 실습 환경을 통합하는 이유-v1.30

failed to pull and unpack image \"registry.k8s.io/kube-apiserver:v1.30.14\": context canceled"

작성

·

69

0

질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다.
다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다!

[질문 전 답변]
1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]
3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요]
(https://inf.run/DvsRD)
4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
5. vagrant up 에서 발생하는 문제는 주로 호스트 시스템(Windows, MacOS)과 연관된 다양한 조건에 의해 발생합니다. 따라서 이를 모두 제가 파악할 수 없어서 해결이 어렵습니다. vagrant up으로 진행이 어렵다면 제공해 드리는 가상 머신(VM) 이미지를 import해서 진행하시기 바랍니다.
(https://inf.run/Ljaer)

 

Vagrant up을 하면, kubeadm init 단계에서 이미지를 가져오지 못하고 아래아 같이 멈추어 있습니다.

ping google.com을 통해 외부 연결은 정상적으로 되는건 확인했습니다.

어떤 부분을 더 체크해야 할까요?

==> cp-k8s-1.30.1: Running provisioner: shell...                                                                                                                                                                   

cp-k8s-1.30.1: Running: /var/folders/p7/4nthz5pn0g983598nhw8gqd00000gn/T/vagrant-shell20250627-87887-ucssq0.sh

cp-k8s-1.30.1: I0627 19:51:36.035198 3710 version.go:256] remote version is much newer: v1.33.2; falling back to: stable-1.30

cp-k8s-1.30.1: [init] Using Kubernetes version: v1.30.14

cp-k8s-1.30.1: [preflight] Running pre-flight checks

cp-k8s-1.30.1: [preflight] Pulling images required for setting up a Kubernetes cluster

cp-k8s-1.30.1: [preflight] This might take a minute or two, depending on the speed of your internet connection

cp-k8s-1.30.1: [preflight] You can also perform this action in beforehand using 'kubeadm config images pull'

cp-k8s-1.30.1: W0627 19:51:36.766582 3710 checks.go:844] detected that the sandbox image "registry.k8s.io/pause:3.6" of the container runtime is inconsistent with that used by kubeadm.It is recommended to

use "registry.k8s.io/pause:3.9" as the CRI sandbox image.

 

 

Log:

 

sudo journalctl -u containerd -f --since "10 minutes ago"       
Jun 27 19:51:35 cp-k8s systemd[1]: Started containerd container runtime.                                                                                                                                           

Jun 27 19:51:36 cp-k8s containerd[3591]: time="2025-06-27T19:51:36.782079946+09:00" level=info msg="PullImage \"registry.k8s.io/kube-apiserver:v1.30.14\""

Jun 27 19:54:57 cp-k8s containerd[3591]: time="2025-06-27T19:54:57.270115838+09:00" level=info msg="PullImage \"registry.k8s.io/kube-apiserver:v1.30.14\""

Jun 27 19:56:35 cp-k8s containerd[3591]: time="2025-06-27T19:56:35.785071330+09:00" level=error msg="PullImage \"registry.k8s.io/kube-apiserver:v1.30.14\" failed" error="rpc error: code = Canceled desc = failed

to pull and unpack image \"registry.k8s.io/kube-apiserver:v1.30.14\": context canceled"

Jun 27 19:57:26 cp-k8s containerd[3591]: time="2025-06-27T19:57:26.762161620+09:00" level=error msg="PullImage \"registry.k8s.io/kube-apiserver:v1.30.14\" failed" error="failed to pull and unpack image \"registr

y.k8s.io/kube-apiserver:v1.30.14\": failed to copy: read tcp 10.0.2.15:48760->52.219.124.238:443: read: connection reset by peer"

Jun 27 19:57:26 cp-k8s containerd[3591]: time="2025-06-27T19:57:26.770337247+09:00" level=info msg="PullImage \"registry.k8s.io/kube-apiserver:v1.30.14\""

 

 


[질문 하기]

답변 2

0

조훈(Hoon Jo)님의 프로필 이미지
조훈(Hoon Jo)
지식공유자

안녕하세요

현재 환경에 보안 부분(랩탑, 네트워크)를 제가 알 수 없어서요. 그거 관련처럼 보여지는데요.

개인 랩탑(회사 수준의 보안 프로그램이 없는) + 집(특별히 보안 설정이 걸리지 않은 네트워크)에서 혹시 해보고 알려주실 수 있을까요?

임재봉님의 프로필 이미지
임재봉
질문자

안녕하세요. 조훈님

집에서 MAC 환경에서 테스트 하고 있습니다.

다른 서버에서 파일 다운로드는 잘 되는데 유독 registry.k8s.io 여기서 이미지 다운로드가 잘 안되네요.

3일째 계속 kubeadm init을 하고 있고, etcd 다운로드에 멈추어 있습니다.

 

I0701 07:43:24.889861    3876 kubelet.go:196] the value of KubeletConfiguration.cgroupDriver is empty; setting it to "systemd"                                                                                     

I0701 07:43:24.892338 3876 version.go:187] fetching Kubernetes version from URL: https://dl.k8s.io/release/stable-1.txt

I0701 07:43:25.870526 3876 version.go:256] remote version is much newer: v1.33.2; falling back to: stable-1.30

I0701 07:43:25.870564 3876 version.go:187] fetching Kubernetes version from URL: https://dl.k8s.io/release/stable-1.30.txt

[init] Using Kubernetes version: v1.30.14

[preflight] Running pre-flight checks

I0701 07:43:26.528888 3876 checks.go:561] validating Kubernetes and kubeadm version

I0701 07:43:26.529030 3876 checks.go:166] validating if the firewall is enabled and active

I0701 07:43:26.533031 3876 checks.go:201] validating availability of port 6443

I0701 07:43:26.533189 3876 checks.go:201] validating availability of port 10259

I0701 07:43:26.533207 3876 checks.go:201] validating availability of port 10257

I0701 07:43:26.533214 3876 checks.go:278] validating the existence of file /etc/kubernetes/manifests/kube-apiserver.yaml

I0701 07:43:26.533232 3876 checks.go:278] validating the existence of file /etc/kubernetes/manifests/kube-controller-manager.yaml

I0701 07:43:26.533236 3876 checks.go:278] validating the existence of file /etc/kubernetes/manifests/kube-scheduler.yaml

I0701 07:43:26.533238 3876 checks.go:278] validating the existence of file /etc/kubernetes/manifests/etcd.yaml

I0701 07:43:26.533309 3876 checks.go:428] validating if the connectivity type is via proxy or direct

I0701 07:43:26.533337 3876 checks.go:467] validating http connectivity to first IP address in the CIDR

I0701 07:43:26.533344 3876 checks.go:467] validating http connectivity to first IP address in the CIDR

I0701 07:43:26.533351 3876 checks.go:102] validating the container runtime

I0701 07:43:26.544965 3876 checks.go:637] validating whether swap is enabled or not

I0701 07:43:26.545190 3876 checks.go:368] validating the presence of executable crictl

I0701 07:43:26.545204 3876 checks.go:368] validating the presence of executable conntrack

I0701 07:43:26.545211 3876 checks.go:368] validating the presence of executable ip

I0701 07:43:26.545220 3876 checks.go:368] validating the presence of executable iptables

I0701 07:43:26.545230 3876 checks.go:368] validating the presence of executable mount

I0701 07:43:26.545237 3876 checks.go:368] validating the presence of executable nsenter

I0701 07:43:26.545245 3876 checks.go:368] validating the presence of executable ebtables

I0701 07:43:26.545251 3876 checks.go:368] validating the presence of executable ethtool

I0701 07:43:26.545256 3876 checks.go:368] validating the presence of executable socat

I0701 07:43:26.545262 3876 checks.go:368] validating the presence of executable tc

I0701 07:43:26.545267 3876 checks.go:368] validating the presence of executable touch

I0701 07:43:26.545275 3876 checks.go:514] running all checks

I0701 07:43:26.552015 3876 checks.go:399] checking whether the given node name is valid and reachable using net.LookupHost

I0701 07:43:26.552048 3876 checks.go:603] validating kubelet version

I0701 07:43:26.575242 3876 checks.go:128] validating if the "kubelet" service is enabled and active

I0701 07:43:26.579493 3876 checks.go:201] validating availability of port 10250

I0701 07:43:26.579532 3876 checks.go:327] validating the contents of file /proc/sys/net/ipv4/ip_forward

I0701 07:43:26.579579 3876 checks.go:201] validating availability of port 2379

I0701 07:43:26.579773 3876 checks.go:201] validating availability of port 2380

I0701 07:43:26.579797 3876 checks.go:241] validating the existence and emptiness of directory /var/lib/etcd

[preflight] Pulling images required for setting up a Kubernetes cluster

[preflight] This might take a minute or two, depending on the speed of your internet connection

[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'

I0701 07:43:26.579840 3876 checks.go:830] using image pull policy: IfNotPresent

W0701 07:43:26.589241 3876 checks.go:844] detected that the sandbox image "registry.k8s.io/pause:3.6" of the container runtime is inconsistent with that used by kubeadm.It is recommended to use "registry.k8s.

io/pause:3.9" as the CRI sandbox image.

I0701 07:43:26.597638 3876 checks.go:862] image exists: registry.k8s.io/kube-apiserver:v1.30.14

I0701 07:43:26.610517 3876 checks.go:862] image exists: registry.k8s.io/kube-controller-manager:v1.30.14

I0701 07:43:26.618696 3876 checks.go:862] image exists: registry.k8s.io/kube-scheduler:v1.30.14

I0701 07:43:26.631148 3876 checks.go:862] image exists: registry.k8s.io/kube-proxy:v1.30.14

I0701 07:43:26.640611 3876 checks.go:862] image exists: registry.k8s.io/coredns/coredns:v1.11.1

I0701 07:43:26.653343 3876 checks.go:862] image exists: registry.k8s.io/pause:3.9

I0701 07:43:26.663923 3876 checks.go:870] pulling: registry.k8s.io/etcd:3.5.12-0

조훈(Hoon Jo)님의 프로필 이미지
조훈(Hoon Jo)
지식공유자

안녕하세요

퍼블릭 공간에 있는 VM에서 위의 이미지를 내려받아봤는데 문제 없이 받아집니다.

docker pull registry.k8s.io/kube-apiserver:v1.30.1
v1.30.1: Pulling from kube-apiserver
b2ce0e066077: Pull complete 
2bdf44d7aa71: Pull complete 
058cf3d8c2ba: Pull complete 
b6824ed73363: Pull complete 
7c12895b777b: Pull complete 
33e068de2649: Pull complete 
5664b15f108b: Pull complete 
27be814a09eb: Pull complete 
4aa0ea1413d3: Pull complete 
3f4e2c586348: Pull complete 
9aee425378d2: Pull complete 
6625e293fdbf: Pull complete 
7049b48d24f8: Pull complete 
Digest: sha256:0d4a3051234387b78affbcde283dcde5df21e0d6d740c80c363db1cbb973b4ea
Status: Downloaded newer image for registry.k8s.io/kube-apiserver:v1.30.1
registry.k8s.io/kube-apiserver:v1.30.1^C

(왜 빨간색이지...)

이에 현재 사용하시는 어떤 환경과 연관이 있을꺼 같은데...

제가 추정할 수 있는 정보가 없어서요.

집 외에 다른 네트워크를 이용해 보시거나, 다른 랩탑을 이용하시거나

관련 설정을 변경하시거나 하는 방법을 통해서 문제를 해결하셔야 할 것 같습니다.

0

안녕하세요, 인프런 AI 인턴입니다. 임재봉님이 겪고 계신 이미지를 가져오는 문제에 대해 도와드리겠습니다.

명령어 vagrant up 실행 후 kubeadm init 단계에서 이미지 다운로드가 실패하는 상황은 종종 네트워크 문제, DNS 설정, 또는 Docker/Containerd의 설정 문제로 인해 발생할 수 있습니다. 질문 내용을 바탕으로 몇 가지 해결 방법을 안내해 드리겠습니다:

1. 네트워크 설정 확인

  • DNS 설정: 클러스터 내의 모든 노드에서 DNS 설정을 확인하세요. /etc/resolv.conf 파일에 DNS 서버(예: 8.8.8.8 또는 1.1.1.1)가 올바르게 설정되어 있는지 확인합니다.
  • 화면에 표시된 네트워크 관련 에러 메시지: read: connection reset by peer는 네트워크가 불안정하거나, 외부 레지스트리와의 연결이 중단되었음을 나타냅니다. 다른 네트워크로 전환하거나 VPN을 사용하는 것도 시도해 볼 수 있습니다.

2. 로그 및 오류 메시지 분석

  • 제공한 로그에서 “rpc error: code = Canceled” 및 “connection reset by peer” 오류가 나타나고 있습니다. 이는 연결 중단이나 제한으로 인해 발생할 수 있습니다.

3. Docker/Containerd 설정 수정

  • 네트워크 미러 설정: 특정 레지스트리에 대한 미러 설정을 추가하여 다운로드 속도를 개선할 수 있습니다. /etc/docker/daemon.json 파일에 레지스트리 URL을 추가하거나, containerd의 구성 파일에서 미러를 설정할 수 있습니다.

4. 디버깅 수행

  • curl 등의 명령어를 사용하여 외부 네트워크 연결이 정상적으로 이루어지고 있는지, 다른 웹사이트 접근이 원활한지를 확인합니다.

5. 이미 확인한 외부 네트워크

  • 외부 인터넷 연결이 이미 정상적으로 동작하는 것으로 보이니, 위의 설정들을 다시 한 번 꼼꼼히 확인해보세요.

관련 문제에 대한 정보를 확인할 수 있는 이전 질문 사례입니다: vagrant up 실행시 오류 발생

현재 베타 기능으로 인해 답변이 만족스럽지 않을 수 있습니다.🙂 추가적으로 도움이 필요하시면 이어서 질문해 주세요. 지식 공유자께서도 직접적인 해결을 제공해 주실 수 있습니다. 🙏

지금까지 사용자의 문제와 유사한 해결 방법을 제공해 드렸습니다. 추가적으로 궁금한 점이 있으시면 계속 질문해 주세요. 감사합니다.

임재봉님의 프로필 이미지
임재봉

작성한 질문수

질문하기