묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨데브옵스(DevOps)를 위한 쿠버네티스 마스터
kubeadm init 실패(+join할 때도 참고)
sudo kubeadm init명령어를 입력했는데 다음과 같은 에러가 발생합니다.ttasjwi20240228@master-1:~$ sudo kubeadm init [init] Using Kubernetes version: v1.29.2 [preflight] Running pre-flight checks error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR CRI]: container runtime is not running: output: time="2024-03-04T06:52:20Z" level=fatal msg="validate service connection: validate CRI v1 runtime API for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService" , error: exit status 1 [preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...` To see the stack trace of this error execute with --v=5 or higher이런 문제가 발생하네요. 검색해보면 2020년 containerd github에 이런 증상에 관한 이슈가 올라와져있습니다.https://github.com/containerd/containerd/issues/4581이 이슈의 답변에는 이런 내용이 있습니다.containerd.io 패키지에 의해 설치된 config.toml 파일에는 disabled_plugins = ["cri"]라는 줄이 있는데, 이것이 문제를 일으킨 것으로 보입니다. 이 문제를 해결하려면 다음 명령을 실행하시면 됩니다.sudo rm /etc/containerd/config.toml sudo systemctl restart containerd sudo kubeadm init혹시 워커노드에서 join할 때도 동일한 문제 생기면sudo rm /etc/containerd/config.toml sudo systemctl restart containerd이 명령을 워커노드에 입력해봅시다
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
2024년 3월 4일 기준 설치
아래에 23년 당시 설치방법을 올리신 분의 것으로도 잘 안 되서... 그 사이에 또 바뀌었나 싶어서 노션 링크의 공식 문서를 보고 따라했습니다만 apt 명령으로 kubelet, kubeadm, kubectl이 설치가 안 되는 문제가 있습니다. 노션 링크의 공식문서는 한국어 문서였고, 최신화가 안 되어있던 것입니다. 영어 문서를 봐야합니다. 현재 공식문서에서는 이런 말이 나와있습니다. Note: The legacy package repositories (apt.kubernetes.io and yum.kubernetes.io) have been deprecated and frozen starting from September 13, 2023. Using the new package repositories hosted at pkgs.k8s.io is strongly recommended and required in order to install Kubernetes versions released after September 13, 2023. The deprecated legacy repositories, and their contents, might be removed at any time in the future and without a further notice period. The new package repositories provide downloads for Kubernetes versions starting with v1.24.0.apt.kubernetes.i and yum.kubernetes.io레거시 패키지 리포지토리 deprecatedapt.kubernetes.io and yum.kubernetes.io2023년 8월 13일 이후 릴리즈되는 새로운 쿠버네티스 버전을 설치하기 위해서는 새로운 패키지 리포지토리를 써라http://pkgs.k8s.io새로운 패키지 리포지토리는 1.24.0 ~ 이후의 버전을 지원 이런 내용이 한국어 문서에는 반영이 안 됐습니다. 해당 문서에서는 1.29.0을 설치하기 위해 다음을 하라고 합니다. apt 패키지 인덱스를 업데이트하고 Kubernetes apt 저장소를 사용하는 데 필요한 패키지를 설치하십시오: sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gpg Kubernetes 패키지 저장소의 공개 서명 키를 다운로드하십시오. 모든 저장소에 동일한 서명 키가 사용되므로 URL에서 버전을 무시할 수 있습니다:(우분투 20.04에서는 sudo mkdir -p -m 755 /etc/apt/keyrings 명령어를 입력해야합니다)# If the folder `/etc/apt/keyrings` does not exist, it should be created before the curl command, read the note below. # sudo mkdir -p -m 755 /etc/apt/keyrings curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg 적절한 Kubernetes apt 저장소를 추가하십시오. 이 저장소에는 Kubernetes 1.29에 대한 패키지만 있으므로, 다른 Kubernetes 마이너 버전을 사용하는 경우 URL에서 Kubernetes 마이너 버전을 원하는 버전에 맞게 변경해야 합니다(설치할 Kubernetes 버전의 문서를 읽고 있는지도 확인해야 합니다).# This overwrites any existing configuration in /etc/apt/sources.list.d/kubernetes.list echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list apt 패키지 인덱스를 업데이트하고 kubelet, kubeadm 및 kubectl을 설치하고 버전을 고정하십시오:sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl 결론바로 위 내용을 그대로 적용하신다면 아래 내용을 복사 붙여넣기 하시면 돼요. cat <<EOF > kube_install.sh # /etc/apt/keyrings 폴더 생성 및 권한 부여 sudo mkdir -p -m 755 /etc/apt/keyrings # 1. apt 패키지 색인을 업데이트하고, 쿠버네티스 apt 리포지터리를 사용하는 데 필요한 패키지를 설치한다. sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gpg # 2. 구글 클라우드의 공개 사이닝 키를 다운로드 한다. sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg # 3. 쿠버네티스 apt 리포지터리를 추가한다. echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list # 4. apt 패키지 색인을 업데이트하고, kubelet, kubeadm, kubectl을 설치하고 해당 버전을 고정한다. sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl EOF sudo bash kube_install.sh kubeadm version실행 후 버전 확인을 해보시면 됩니다 지금 자료는 2024.03.04 기준 공식문서(영어<- 중요) 자료고내일 당장 바뀔 수도 있습니다. 제가 지금 올린 내용을 믿으시지 마시고 일단 먼저 공식문서 (영어 <- 중요)를 참고하세요!
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
키보드 소리가 너무커요
강의인데키보드 소리가 너무 커서거슬려요조용한 키보드좀 써서 찍으면 안될까요?
-
미해결CloudNet@ - Amazon EKS 기본 강의
강의 스크립트 받을 수 있을까요?
안녕하세요.강의 스크립트(자막)을 받을 수 있을까요?제공되는 노트는(pdf)는 온라인 강의 목차정도만 있고 실제 내용은 강의에서 말로 설명으로 지나가서, 노트 정리를 다시 하려고 하니 영상을 계속 앞뒤로 돌리면서 자막을 보고 있습니다.챕터별 강의스크립트를 별도로 받을 수 없을까요?스크립트를 읽고 영상 강의를 듣는 게 정리하는 데 도움이 될 것 같아 문의 드립니다.
-
미해결CloudNet@ - Amazon EKS 기본 강의
AWS VPC CNI의 ENI에서 질문이 있습니다.
안녕하세요 강의 잘 음미하고 있습니다." Core DNS파드 배포시에 ENI slot에 Secondary IP가 전부 차 있는 것을 확인하고(실제로 파드가 사용은 안하고 있지만 L-IPAM의 warm pool에서 할당만 받은 상태) 이후 slot이 가득 차 있으므로 새로운 ENI를 생성한다. 따라서 2개의 ENI가 생긴다. " 라고 말씀해 주셨습니다.그래서 노드 셀렉터걸어서 Core DNS 있는 노드에 배포해 봤는데, 첫 파드 생성 시에만 저 규칙(ENI 생성)이 적용되고, 계속해서 규칙대로 ENI가 생성되는 것은 아니고 기존 ENI 2개에 있는 Secondary IP를 가져다 쓰더라구요. 당연히 계속 ENI를 생성하는 건 비용 측면이나 네트워크 측면이나 비효율적이니 그러려니 싶겠는데, 노드에 첫 파드 생성 시에(aws-node, kube-proxy 제외)는 왜 항상 ENI가 1개는 추가로 생성되면서 시작하게 되는건가요? 그냥 ENI에 남은 IP가 있는데 쓰면 되지 않을까요? 감사합니다. 수업 내용이 꽤나 딥다이브해서 이게 이거구나 할 때가 많아서 좋습니다. ㅎㅎ
-
미해결대세는 쿠버네티스 (초급~중급편)
kubernetes dashboard v2.7.0 인증서 등록에서 문제
dash board 접근 시,https://192.168.64.30:6443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login{ "kind": "Status", "apiVersion": "v1", "metadata": { }, "status": "Failure", "message": "services \"https:kubernetes-dashboard:\" is forbidden: User \"system:anonymous\" cannot get resource \"services/proxy\" in API group \"\" in the namespace \"kubernetes-dashboard\"", "reason": "Forbidden", "details": { "name": "https:kubernetes-dashboard:", "kind": "services" }, "code": 403 }해당 오류가 발생합니다 권한 문제 같은데.... 인증서도 정상적으로 신뢰함으로 동작하고 있습니다!
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ssh 접속 오류 kex_exchange_identification: read: Connection reset by peer
안녕하세요. SSH Sever설치 강의 내용중 hub.docker.com에서 edowon0623/docker 이미지파일을 다운받았습니다.아래와 같은 명령어로 docker 실행을 했고요.docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/docker:latest /usr/sbin/init이후에 ssh에 접속하려할때 아래와 같은 오류가 발생됩니다.ssh root@localhost -p 10022kex_exchange_identification: read: Connection reset by peerConnection reset by ::1 port 10022 제 노트북 환경은MacBook Pro intel Core i5macOS Sonoma 14.1.2 입니다. 도커는 정상적으로 아래와 같이 실행되고 있습니다.work % docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES3f2373fa24ca edowon0623/docker:latest "/sbin/init systemct…" 8 seconds ago Up 5 seconds 0.0.0.0:10022->22/tcp, 0.0.0.0:8081->8080/tcp docker-servercfe2dfbf08c6 jenkins/jenkins:lts-jdk17 "/usr/bin/tini -- /u…" 5 weeks ago Up About a minute 0.0.0.0:8080->8080/tcp, 0.0.0.0:60000->60000/tcp, 50000/tcp jenkins-server
-
미해결CloudNet@ - Amazon EKS 기본 강의
Secondary ENI 관련 질문드립니다.
안녕하세요 수강생입니다. 다른 분들은 다 이해하셨겠지만, 순전히 궁금해서 질문드립니다.VPC CNI 강의에서 노드에 ENI가 있고 슬롯개수따라 Secondary IP를 가지고 해당 Secondary IP는 Pod에 부여된다. 그리고 Secondary IP가 부족하면 Secondary ENI를 추가한다.로 이해했습니다. 그 후 강의 중 '기본 네트워크 환경 강의(1),(2)'에서 'coredns는 노드 수에 상관없이 두개의 노드에 스케줄링된다.' 했을 때, 두개의 노드에 대해서 처음부터 Secondary ENI가 있는건 coreDNS로 인해 POD가 늘어났기 때문이고 이로 인해, 노드 3의 경우는 새로운 POD가 스케줄링 될 때 Secondary ENI가 부여됐다고 이해했습니다. 여기서 제가 궁금한게... 그렇다면, 이전에 Secondary IP는 다 부여가 되었으니 새로운 ENI를 할당한거라고 생각하는데...그 Secondary IP들은 다 어디에 부여된걸까요...? POD는 owide로 확인해봐도 부여된게 안보이는데 궁금해서 여쭤봅니다. 다른 컴포넌트에 부여가 되는건지 아니면 강의에서 얘기했을 수도 있는데 제가 앞부분이라서 못들은거라면, 해당 내용에 대한 세션 좀 확인 부탁드립니다. 감사합니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
access. jenkins가 안됩니다
포트를 8083으로 설정하고 localhost:8083 으로 들어가도 페이지가 작동하지 않는다고 뜨네요..8080 포트를 lsof -i tcp:8080으로 조회해서 kill -9 으로 해도 자꾸 사용중이라고 뜹니다. docker run -d -p 8083:8083 -p 50000:50000 --name jenkins-server --restart=on-failure jenkins/jenkins:lts-jdk11 으로 실행하면 안되는건가요??
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
강사님 sysconfig/docker파일을 열면 내용무? vi /etc/sysconfig/docker로 열면 내용이 없는데 어떻게 된 것인가요? 어떻게 해결해야 하나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
강사님 파일이 없다고 하네요 파일 스크린 샷이라도 올려주세요 수동으로 받아 적게 sed: can't read /etc/sysconfig/docker-storage: No such file or directory
sed: can't read /etc/sysconfig/docker-storage: No such file or directory 이런 error 가 뜨네요 파일이 없다는데 어떻하죠? 저 말고도 다른 수강생들도 생기는 문제인거 같은데 확인 부탁합니다 파일 내용이라도 올랴주시면 수동으로 받아 적겠습니다
-
미해결공인 쿠버네티스 자격증 잘 준비하는 법 (CKA, CKAD, CKS)
프로그래밍을 할줄 알아야 쿠버네티스를 공부할 수 있을까요?
강사님 안녕하세요.쿠버네티스를 공부하려고 하는데요.개발자는 아니고 인프라 관련 직종에서 일하고 있습니다.쿠버네티스를 공부하려면 프로그래밍을 할 줄 알아야 할까요? 답변 기다립니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
초기 password 문의
도커를 실행시키고 docker run -d -p 8080:8080 -p 50000:50000 --name jenkins-server --restart=on-failure jenkins/jenkins:lts-jdk11 을 통해 젠킨스 이미지를 다운 받고 실행을 시켰습니다.docker ps 를 통해 jenkins 도커가 실행중임을 확인 하였고, http://127.0.0.1:8080/ 접속을 통해 젠킨스 로그인 창이 뜨는것 까지 확인 했습니다.그런데, 초기 비밀번호는 어디에서 확인할수 있는걸까요? 제가 진행한 Flow에서는 강의영상 9분 46초에 나와있는 화면을 접하지 못했습니다.제가 어떤 부분을 놓친걸까요?
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
쿠버네티스 설치할 때 에러납니다. 해결 방법 공유합니다. (23.05.30 기준)
한달 전에는 노션에 있는 스크립트대로 해도 잘 됐는데 지금은 안되네요. 강사님이 강의에서 설치 방법이 계속 바뀐다고 하셨는데 그 사이에 바뀐 모양입니다. 다른 질문 작성자 님이 공유해주신 내용 참고해서 문제 해결하였고 저처럼 삽질하지 마시라고 내용 공유드립니다.저는 'kubeadm, kubelet 및 kubectl 설치' 구간의 노션 스크립트를 다음과 같이 변경하여 설치 진행했습니다.#2번, #3번을 변경했습니다.sudo mkdir /etc/apt/keyrings cat <<EOF > kube_install.sh # 1. apt 패키지 색인을 업데이트하고, 쿠버네티스 apt 리포지터리를 사용하는 데 필요한 패키지를 설치한다. sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl # 2. 구글 클라우드의 공개 사이닝 키를 다운로드 한다. curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg # 3. 쿠버네티스 apt 리포지터리를 추가한다. echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list # 4. apt 패키지 색인을 업데이트하고, kubelet, kubeadm, kubectl을 설치하고 해당 버전을 고정한다. sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl EOF sudo bash kube_install.sh기존 스크립트에서 인증 관련 데이터를 '/etc/apt/keyrings'폴더에 저장하는 것으로 변경되었습니다. 강의에서 실습하는 Ubuntu 22.04 이전 환경에는 default로 '/etc/apt/keyrings' 폴더가 없어 직접 만들어 줘야 인증 키를 받을 수 있습니다.
-
미해결쿠버네티스 101 - 클라우드/서버 개발 첫걸음
개발 환경에 소개해주신 것들은 직접 설치 하라는 의미인건가요?
개발 환경 강의에서 VS 에서 Google Cloud Code 이외 설치 영상은 없는데처음에 소개해줄 때 알아서 설치하라는 말씀이신가요? Google Cloud Code 익스텐션 설치 후 where.exe minicube 입력 시정보: 제공된 패턴에 해당되는 파일을 찾지 못했습니다.라고 떠서요.
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
버추얼 박스 사용시 각 노드간 연결 문제
강의 내용에 나와 있는 버추얼 박스를 3개 만들어서 쿠버네티스 환경을 만들려고 했습니다. 강의 나온 대로 kubeadm init과 join을 수행했는데, 연결이 계속 안되는 현상이 있었고, 확인해보니 쿠버네티스와는 상관없는 버추얼 박스 VM 간의 통신이 제대로 안되는 이슈였습니다. NAT로 연결되어 있었는데, 어댑터 브릿지로 변경해도 VM 간의 연결이 제대로 안되었습니다. 강의 중에는 연결이 잘되던데, 방법 문의드립니다.
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
60010포트 관련 에러 (vagrant up 진행시)
vagrant up 진행시 하기와 같이 에러가 나옵니다.어떻게 진행해야하나요?
-
해결됨데브옵스(DevOps)를 위한 쿠버네티스 마스터
재접속시 worker 노드 STATUS NotReady 이슈
안녕하세요 강의 너무 잘듣고 있습니다.강의가 길어서 Google cloud VM인스턴스에 ssh로 접속을 하고, 끊었다 다시 하곤 하는데요. 다시 연결할 때 worker-1, worker-2가 NotReady상태로 변하곤해서 질문드립니다 (그림-1). worker 노드 역할을 하는 인스턴스에 접속할 때는 그림-2와 같은 에러 메시지가 뜨고요. 인스턴스 재설정 여부에 따라 문제가 해결되기는 하는데요.인스턴스 재설정 -> Cloud Identity-Aware Proxy를 사용하지 않고 재시도 -> ssh 접속 -> Ready상태인스턴스 재설정 (X) -> Cloud Identity-Aware Proxy를 사용하지 않고 재시도 -> 그림-3과 같은 에러창매번 이러다 보니까 솔루션이 있는지 궁금하여 문의드립니다.그림-1그림-2그림-3
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Docker 개념 문의
학습중에 궁금한부분이 생겨서 문의드립니다제가 알기로는 docker 컨테이너를 실행해도리눅스의 경우 커널같은 코어한 부분은 쉐어한다고 알고있는데요낮은 버전의 우분투에서 도커오 높은 버전의 우분투 이미지를 돌려도 정상적으로 돌아갈까요?
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
Vagrant sysnet4admin/CentOS-k8s 버전 관련 문의입니다.
안녕하세요 강사님!강사님의 강의를 듣기 위하여 실습 환경을 조성하고 있는데, vagrant up 과정에서 다음과 같은 오류 메세지가 나타났습니다.The adapter to attach a forwarded port to was not found. Please verify that the given adapter is setup on the machine as a NAT interface. 해당 오류 메세지에 대하여 질문은 이미 이 질문글 https://www.inflearn.com/questions/726525/vagrant-up%EC%8B%9C-%EC%98%A4%EB%A5%98 에서 확인하였고 강사님도 "다양한 정책, 보안 설정, 기타 등을 다 고려한 답변을 해 드리기 어렵다" 고 하셔서 여기서 해결책을 찾을 수는 없었습니다.해결책을 찾던 중에 혹시 sysnet4admin/CentOS-k8s 박스 이미지의 최신 버전(0.7.4)이 현재 제 실습 환경과 충돌이 있는 것이 아닌가 하여 이전 버전(0.7.2)을 사용하였더니 구축에 성공하였습니다.이렇게 해서 문제 해결은 했는데, 혹시 이전 버전(0.7.2)의 박스 이미지를 사용해도 실습에 지장이 없을까요? 실습에 문제가 있다면 어떤 부분일지 궁금하여 질문드렸습니다![실습 환경]OS: macOS Ventura 13.1 (x86)VirtualBox: 7.0.6Vagrant: 2.3.4