인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

odark님의 프로필 이미지

작성한 질문수

쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2

📝 무게감 있게 설치하는 방법 3/3 - 최종 정리

한방에 빠르게 설치하기에서 에러가 나는데요

작성

·

67

1

일단 Vagrantfile보면
yum install -y kubelet-1.27.2-150500.1.1.x86_64 kubeadm-1.27.2-150500.1.1.x86_64 kubectl-1.27.2-150500.1.1.x86_64 --disableexcludes=kubernetes 이렇게 각 버전을 직접 명시했는데....저는 공식가이드에서 1.30을 선택하면 그냥 버전명이 안붙은채로 되던데...어떻게 저 디테일한버전을 찾을수있나요?

그리고 일단 그보다....

image.png

이런 상황이고 해당 노드 내용을 보면

image.png

이런 에러가 뜨고요..

image.png

왠만한건 모두 pending상태입니다.

해당 파드 describe 보면 0/1 nodes are available: 1 node(s) had untolerated taint {node.kubernetes.io/not-ready: }. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling 이거구요..

 

이게 처음 설치할때 로그를 보면 여기에서부터 문제인것도 같은데...kubeadm설치시

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

master-node: W0228 15:14:16.156514 25883 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.

버전이 서로 안맞다고 나옵니다.

image.png

뭐가 잘못된걸까요?

 

 

그리고 vagranfile에는 kubeadm init --pod-network-cidr=20.96.0.0/16 --apiserver-advertise-address 192.168.56.30 이렇게만 있는데

런타임유닉스 도메인 소켓 경로containerdunix:///var/run/containerd/containerd.sock

--cri-socket=unix:///var/run/containerd/containerd.sock

이부분을 추가해줘야 하나요?

 

답변 2

0

일프로님의 프로필 이미지
일프로
지식공유자

일단 kubelet도 containerd와 마찬가지 방법으로 세부 버전을 찾으시면 됩니다.

그리고 로그 메시지를 자세히 보면 메모리가 부족하다고 나오는데. VM에 메모리를 더 추가해보시겠어요? kubeadm 설치시 메세지는 딱히 문제되는 부분은 아니고, 별도로 containerd.sock를 추가해줄 필요는 없습니다.

 

근데 쿠버네티스 1.30버전을 설치하시려고 하시는 거군요. 현재 제 강의의 실습환경은 1.27 버전으로 진행되고, 이 버전에서 최적화된 오픈소스들이 추가로 설치 됩니다.

이때 자원 사양부터 관련 오픈소스들(칼리코, 대시보드 등)의 버전들이 모두 고려 되는데요.

그렇기 때문에 1.30 버전으로 진행하시면 설치부터 실습 진행까지 가이드를 보면서, 지금 containrd나 kubelet의 버전을 찾는 것처럼 일일히 확인을 해보셔야 해요. 저는 그 과정을 다 거치면서 설치 가이드를 만든 거고요.

물론 하나하나 찾아가는 과정도 중요합니다. 하지만 진도를 나가는데 이처럼 어려움이 많을 수 있으니 가이드대로 진행을 권해드리고요.

추후 해수편으로 넘어가게 되면 쿠버네티스 1.30 버전으로 된 가이드가 제공됩니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

odark님께서 Kubernetes의 설치 및 설정 과정에서 여러 문제에 직면하신 것 같습니다. 주요 문제와 해결 방법을 하나씩 설명드리겠습니다.

  1. 디테일한 버전 찾는 방법:

    • 공식 Kubernetes 가이드에서는 주로 최신 안정 버전을 추천하거나 설정하는 경우가 많습니다. 특정 버전이 필요한 경우, Kubernetes의 릴리즈 페이지에서 원하는 버전을 찾으실 수 있습니다. 또한, 설치 중 사용하는 명령어에 --disableexcludes=kubernetes를 추가해 특정 버전을 지정할 수 있습니다.
  2. 노드 상태가 NotReady인 문제:

    • 로그에서 “InvalidDiskCapacity”와 같은 경고가 나타나면, 이는 주로 노드 설정에서 디스크 용량, CPU 또는 메모리 문제일 수 있습니다. 노드 리소스 설정을 확인하고 필요 시 올바르게 할당했는지 확인하세요.
    • 노드의 Taint 설정으로 인해 파드가 스케줄링되지 않을 수도 있습니다. Taint를 제거하거나, 파드에 해당 Taint를 toleration하도록 설정할 수 있습니다.
  3. 파드가 Pending 상태인 문제:

    • “0/1 nodes are available” 에러는 노드가 사용 가능하지 않음을 나타냅니다. 이는 노드에 Taint가 설정되어 있는 경우 종종 발생합니다. 적절한 toleration을 설정하거나, Taint를 제거하는 것이 필요합니다.
    • kubectl taint nodes --all 명령어로 노드를 확인하고, 필요시 taint를 제거하여 노드를 사용 가능 상태로 만들 수 있습니다.
  4. kubeadm 설치 시 CRI 호환성 문제:

    • 현재 로그에 나타난 대로, 파드 네트워크 설정 오류(“sandbox image” 버전 충돌)가 있으며, 이는 주로 컨테이너 런타임 이미지의 버전 충돌 때문입니다.
    • crictl을 사용해 불필요한 이미지 삭제 및 적절한 이미지 설치를 하실 필요가 있습니다.
  5. cri-socket 설정:

    • 설치 중 사용하는 컨테이너 런타임에 따라 적절한 소켓 파일을 지정해야 합니다. Docker가 아닌 containerd를 사용하는 경우, Vagrantfile에 --cri-socket=unix:///var/run/containerd/containerd.sock 옵션을 추가하는 것이 필요합니다. 이는 kubeadm init 명령어의 옵션에 포함되어야 합니다.

odark님께서 겪고 계신 이슈들을 해결하는 데 도움이 되었기를 바랍니다. 추가적인 궁금증이 있으시거나 더 구체적인 기술 지원이 필요하실 경우, 질문을 이어서 남겨주세요. 곧 지식공유자께서 더 자세한 답변을 제공해 주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

odark님의 프로필 이미지

작성한 질문수

질문하기