55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결대세는 쿠버네티스 [초급~중급]
kubectl get pods --all-namespaces 정상확인 안됨
안녕하세요. 강의 내용 6-2) Dashboard 학습 중인데요 kubectl get pods --all-namespaces 입력했을때========kube-system calico-node-b9kzb 0/1 CrashLoopBackOff 11 31mkube-system calico-node-mxr7v 0/1 CrashLoopBackOff 11 31mkube-system calico-node-n8kqd 0/1 CrashLoopBackOff 13 31m====Status 일부가 CrashLoopBackOff 상태로 넘어가질 않네요 어떻게 확인하고 조치해야하나요
- 미해결대세는 쿠버네티스 [초급~중급]
강의자료 다운
ㅁ 강좌명 : 대세는 쿠버네티스ㅁ 문의사항강의 자료 다운 방법 문의드립니다.공지에 안내된 방식은 강의 하단의 "강의자료" 버튼을 누르라고 되어 있는데, 실습자료실로 가는 버튼은 보이는데 "강의자료" 버튼은 보이지 않습니다.
- 미해결대세는 쿠버네티스 [초급~중급]
vagrant file 관련 문의
안녕하세요, 강사님! 강사님께서 작성해주신 vagrant file로 총 세 개의 vm에 master, worker1, worker2 노드를 잘 설치한 상태입니다. 혹시 하나의 vm에 master, worker1, worker2를 한꺼번에 설치할 수 있을까요? 또한 현재 각 vm별로 vcpu를 4개씩 총 12개를 사용하는 걸로 알고 있는데 하나의 vm에 vcpu 12를 할당하는 것도 괜찮은 방법일까요? 감사합니다.
- 미해결대세는 쿠버네티스 [초급~중급]
동일 VPC내 Private Subnet의 DB 접속 관련 문의
안녕하세요. 쿠버네티스로 오랫동안 힘들어하다가 강사님의 강의로 많이 배우고 서비스 런칭도 준비 중인 개발자입니다. 제가 네이버 클라우드 플랫폼을 통해 쿠버네티스 서비스를 배포하던 중 통신관련 어려움이 있어 문의를 드립니다. VPC 구성192.168.0.0/16Subnet 구성서브넷1: Private, 192.168.0.0/24 - Load Balancer 용서브넷2: Public, 192.168.1.0/24 - DevOps 용서브넷3: Private, 192.168.2.0/24 - k8s 노드용서브넷4: Private, 192.168.3.0/24 - MongoDB용(설치가 아닌 구매형)NAT 설치Private 서브넷의 인터넷 접속을 위해 라우팅 설정 서브넷3에 nodejs로 개발한 frontend와 backend를 각각의 deployment와 service로 배포하였고 정상 동작을 확인했습니다.다음으로, 서비스 노출을 위해 alb.nginx.ingress 컨트롤러를 설치하고 ingress를 배포했습니다. ingress를 배포하면 서브넷1에 자동으로 alb가 생성되고 frontend와 backend가 타겟으로 자동 연동되어 정상적으로 트래픽이 주입되는 것도 확인했습니다.우선, 쿠버네티스를 선택하면서 가장 힘들었던 부분이 서비스 노출이었습니다. 플랫폼 마다 alb와 ingress 설정 부분이 상이했고, 특히 제가 사용하는 nCloud 쪽은 관련 자료도 많지 않았었느데 강사님의 강의가 정말 많은 도움이 되었습니다. 감사합니다.처음에는 Atlas의 mongoDB를 연동해서 테스트를 진행했는데 정상적으로 DB 접속도 되어서 문제가 없었습니다.이제 mongoDB도 nCloud에서 서비스하는 상품으로 변경하기 위해 private 타입은 서브넷4를 선택했습니다. nCloud의 경우 구매형 mongoDB도 VPC내에 설치하는 방식입니다.mongoDB의 접속은 nCloud 내에서만 접속 가능한 private endpoint를 이용했습니다.그랬더니 DB접속이 불가능했습니다.혹시 몰라서 public 타입의 서브넷2에 임의의 인스턴스를 생성해서 backend(pod가 아닌 실제 소스코드)를 설치해서 db접속을 시도하니 정상 접속이 가능했습니다. 동일 VPC내 public SN의 인스턴스가 다른 private SN의 DB로의 접속은 원활하다는 것은 확인했습니다.아마도 pod가 private 서브넷에 있어서 mongoDB의 endpoint를 resolution하지 못하는 것 같습니다. pod에 직접 접속해서 endpoint에 ping을 넣으면 bad address 에러가 반환됩니다.dev@dev:~/REAL_VIS$ k exec -it backend-deployment-65b69f6649-h554c /bin/sh kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead. / # ping e80k8.vpc.mg.naverncp.com ping: bad address 'e80k8.vpc.mg.naverncp.com' / # public 서브넷의 인스턴스에서 ping을 넣으면 응답을 하진 않지만 주소(192.168.3.6)가 resolution 되는건 확인했습니다.root@devops:~# ping e80k8.vpc.mg.naverncp.com PING e80k8.vpc.mg.naverncp.com (192.168.3.6) 56(84) bytes of data. ^C --- e80k8.vpc.mg.naverncp.com ping statistics --- 5 packets transmitted, 0 received, 100% packet loss, time 4098ms 이런 경우에는 어떻게 해결을 해야할지 조언 부탁드립니다.감사합니다.
- 미해결대세는 쿠버네티스 [초급~중급]
Load Balancer Type 문의
대세는 쿠버네티스 강좌Service - ClusterIP, NodePort, LoadBalancer챕터를 보고 있습니다. Load Balancer type에 소개된 yaml 파일의 내용을 보면Node에 할당된 30000번 port에 대한 내용은 없는데,어떠한 방식으로 Load Balancer로 들어온 요청이Node1, Node2의 30000번 포트로 요청을 전달하게 되나요?
- 미해결대세는 쿠버네티스 [초급~중급]
minikube 설치
vmware말고 minikube 설치를 진행해서 사용해도 되나요?
- 미해결대세는 쿠버네티스 [초급~중급]
Node의 CPU 자원이 모자라는 경우에 대한 질문입니다.
제가 강의를 듣고 이해하기로는한 Pod의 메모리 사용이 limit을 넘은 경우에는 해당 pod을 종료시키고 여유가 있는 node에 새 Pod를 띄우는 action을 취할 수 있다고 이해하였습니다.CPU의 경우, 한 Pod의 CPU 사용이 limit을 넘은 경우 reqeust 수치로 CPU 자원을 낮춰 할당한다고 설명하셨습니다.한 Node 안의 여러 Pod에서 CPU 사용이 limit을 넘으려고 하는 경우에는 모든 Pod들이 request CPU에 맞춰 할당 받게되어 처리속도가 느려지게 될 것으로 예상됩니다.(할당되는 CPU가 작아지기 때문에) 이런 경우에는 사용자가 직접 모니터링을 하여 pod을 종료시키고 새 node에 pod을 재생성하야하나요?아니면 자동으로 pod을 죽이고 새 node에서 띄우는 기능은 없을까요...?처리 방법이 궁금합니다!
- 미해결대세는 쿠버네티스 [초급~중급]
Pod 생성시 Container끼리 같은 이미지를 사용하지는 못하나요?
Pod 생성시 Container끼리 같은 이미지를 사용하지는 못하나요?(실습 환경이 아직 준비가 안되서 ㅠㅠ 질문남겨봅니다)
- 해결됨대세는 쿠버네티스 [초급~중급]
StatefulSet 내용이 잘 이해가 되지 않습니다.
강사님 안녕하세요StatefulSet 강의 중 궁금한 부분이 있어서 질문 드립니다. 먼저 ReplicaSet 부하 분산용으로 kubetm/app 가 3개 실행된다replicas:3spec: containers: - name: container image: kubetm/app부하 분산용으로 kubetm/app 가 3개 실행된다는 내용은 이해를 하겠는데 StatefulSet 예제도replicas:3spec: containers: - name: container image: kubetm/app이렇게 되어있더라구요강의 내용처럼 containers에 예를 들어image: kubetm/primaryimage: kubetm/secondaryimage: kubetm/albiter각각 다른 역할을 하는 container가 실행되어야 하는거 아닌가요?만약 그렇다고 하면 replicas 부분과 container 부분의 yaml 파일 작성이 실제로 어떻게 되는지 궁금합니다.
- 미해결대세는 쿠버네티스 [초급~중급]
StatefulSet에서 각 pod별로 port를 다르게 지정 할 수 있을까요?
안녕하세요.강의를 듣고 실무에 더 많은 k8s의 기능을 사용할 수 있게 되어서 즐겁게 업무를 하고 있는 개발자입니다. kafka를 statefulset을 활용하여 구성을 하였는데, pod 별로 서로 다른 container port를 설정 할수 있는지 궁금하여 문의드립니다.예를 들어서 relicas를 3으로 한 경우a-0, a-1,a-2 이렇게 pod가 생성되면,각각 9000, 9001, 9002 이렇게 다른 포트를 할당이 가능할까요?저 3개의 포트를 모두 열어 놓아도 결국엔 해당 프로세스가 있는 pod를 찾아가긴하지만, 프로세스가 안 떠있는 pod로 갔다가 다른 pod를 찾아가는 것이 좀 안 좋아보여서, pod 별로 프로세스의 listener port만을 할당하고 싶어서 문의 드립니다.
- 미해결대세는 쿠버네티스 [초급~중급]
volume 관련 질문
PV-PVC 관련하여 몇 가지 문의 드립니다. PV 와 PVC 생성 시 엑세스 모드가 서로 다른상태라면 PV와 PVC가 연결이 안되는 것인가요?PVC 생성 시 별도이 PV의 이름을 지정하지 않는것으로 보아 엑세스 모드와 용량으로 판별하여 PV와 연결이 되게 되나요? 만약 엑세스모드와 용량이 같은 여러 PV가 존재한다면 PVC는 생성 시 어떤 기준으로 PV와 연결되게 되나요?실습은 PV를 특정 노드에서 만들었기 때문에 해당 노드에서 생성된 Pod만 연결이 가능하고 다른 노드에서 생성된 pod는 pvc 연결이 불가능한 부분이 맞나요? 아니면 pvc 연결이기 때문에 다른 노드에서 생성된 pod도 볼륨 지정이 가능한가요?노드에서 pv를 만든것이 아닌 클라우드스토리지(ex : Azure에 Blob 또는 AWS에 S3)로 만들 경우 Pod에 노드 위치와 상관없이 볼륨 연결이 가능할까요?쿠버네티스가 처음이라.. 질문이 많네요. 전문가가 보아 이상한 질문일 수도 있지만 답변 부탁 드립니다.
- 미해결대세는 쿠버네티스 [초급~중급]
Experiment 실행시 resource 설정
안녕하세요 강사님,Experiment yaml 실행시 cpu, memory, storage, gpu 설정 방법 및 shared memory 설정 (limit & requests) 방법에 대해 설명 해 주시면 감사하겠습니다.
- 미해결대세는 쿠버네티스 [초급~중급]
서비스 생성 후에, 다른 파드 내에서 해당 서비스에 접근할 때
중급편 > 기본 오브젝트 > 서비스 편을 듣다가 궁금해져서 질문을 남깁니다. apiVersion: v1 kind: Service metadata: name: clusterip1 spec: selector: svc: clusterip ports: - port: 80 targetPort: 8080이렇게 서비스(1)을 만들고apiVersion: v1 kind: Service metadata: name: endpoint1 spec: selector: svc: endpoint ports: - port: 8080이렇게 서비스(2)를 만들었을 때 두 개의 서비스 모두에 붙지 않은 request-pod에서 각각의 서비스에 curl을 날릴 때서비스(1)은curl clusterip/hostname은 되는 반면curl clusterip:8080/hostname은 되지 않고 서비스(2)는curl endpoint1/hostname은 되지 않는데curl endpoint1:8080/hostname은 되는 건가요? 차이점만 봐서는 서비스 생성시의 서비스 targetport를 지정해주냐 안해주냐의 차이같고targetport는 파드를 연결하는 포트로 알고 있는데저 차이로 curl 날리는 게 달라지는 게 어떤 동작(?)으로 되는 건지 궁금합니다.
- 미해결대세는 쿠버네티스 [초급~중급]
ingress에 대해
안녕하세요 선생님 항상 감사합니다dockerfile과 ingress 와 service에 대해 이해가 잘 가지 않아 질문 드립니다.k8s를 운영하면서 web pod를 띄울때 전체적인 순서가Dockerfile -> deployment -> service -> metalLB -> ingress controller -> ingress 라고 생각 하고 있습니다 1.web-server가 0.0.0.0:8000 이라고 한다면 dockerfile 에서 expose 할 때 8000 으로 맞춰 줘야 하나요? 2.image를 expose 8000 으로 띄웠으니 deployment의 containerports를 8000 번으로 열어주어야 하나요?3.deployment pod port가 8000이니 service의 targetport는 pod 를 가리키는 8000을 줘야 하나요? 4.ingress를 80번 포트로 열어준다고 한다면 service의 port는 80이고 tagretport는 pod를 가리키는 8000 번이 맞나요?5. ngress-nginx-controller - ingress - service - deployement 이런식으로 트래픽이 들어오는게 맞다면 HPA 오토스케일을 걸어주고 싶은 상황에서는 ngress-nginx-controller에 걸어 줘야하나요?익스터널 ip가 있는 pod에 걸어주는거로 알고 있었는데 ngress-nginx-controller에 익스터널 ip가 있고 pod에는 없어서요이정도가 궁금합니다!
- 미해결대세는 쿠버네티스 [초급~중급]
설치 성공 but Pods들이 Running 상태로 안 올라옵니다.
설치는 성공했는데..pods들 아래와 같이 running 상태로 안돌아 오네요.해결방안이 있을까요? 선생님?참고로 집에 공유기가 없어서 포트 포워딩 방식으로 세팅했습니다.
- 미해결대세는 쿠버네티스 [초급~중급]
Authorizattion Secrets 이슈
안녕하세요 강사님,Secrets에 아무것도 보이지 않습니다. authentication 에서도 exec 명령후 etc 안에 Kubernetes 디렉토리가 없어서 인증 키 실습을 못하고 건너 뛰었는데.. 같은 문제로 안되는 건지 설명 부탁 드립니다. 같은 문제면 어떻게 해결해야 할지 도 알려 주시면 감사하겠습니다.
- 미해결대세는 쿠버네티스 [초급~중급]
vagrant up 설치 오류
잘 설치되는 듯 하다가 아래와 같은 오류가 발생했습니다. 검색해봐도 마땅한 답이 안나오는 것 같아서... 문의드립니다. Error: 0 [main] rsync (28752) C:\HashiCorp\Vagrant\embedded\usr\bin\rsync.EXE: *** fatal error - cygheap base mismatch detected - 0x11B2408/0x1462408.This problem is probably due to using incompatible versions of the cygwin DLL.Search for cygwin1.dll using the Windows Start->Find/Search facilityand delete all but the most recent version. The most recent version shouldreside in x:\cygwin\bin, where 'x' is the drive on which you haveinstalled the cygwin distribution. Rebooting is also suggested if youare unable to find another cygwin DLL. 0 [main] rsync 940 dofork: child -1 - forked process 28752 died unexpectedly, retry 0, exit code 0xC0000142, errno 11rsync: [sender] fork: Resource temporarily unavailable (11)rsync error: error in IPC code (code 14) at pipe.c(65) [sender=3.2.3]
- 해결됨대세는 쿠버네티스 [초급~중급]
Authorization 실습
안녕하세요 강의 잘 보고 있습니다.Authorization 실습예제에서 궁금한 부분이 있는데nm-02 네임스페이스를 생성하면default serviceaccount가 같이 생성되자나요?근데 clusterRole을 default serviceaccount와 연결하지 않고sa-02라는 serviceaccount를 새로 만들어서 연결하는 이유가 있을까요?
- 미해결대세는 쿠버네티스 [초급~중급]
docker와 pod/service의 차이
저는 도커만 사용을 해보았고 kubernetes는 업무상 필요해서 공부하면서 사용 해보려고 하는건데, docker에 containers들과 images들이 있는데 pod를 docker와 같은 개념으로 보면 되는건지, 아님 docker 처럼 외부와 연결이 가능한 service를 docker로 봐야 할지.. 아뭏든 pod/service와 docker의 차이가 무엇인지 설명해 주시면 감사하겠습니다.
- 미해결대세는 쿠버네티스 [초급~중급]
container를 admin이 생성한 pod에 연동하는 방법
이미지 생성후 applictioan program을 docker container 에 업로드하고 experiment를 실행하면 기존 kubernetes에 설정에 의해 그 container가 연동된 pod가 running되어 namespace에서 확인이 됩니다.첫번째 질문: 그 container(예: was 또는 wep)를 admin이 생성한 pod에 연동되어 관리 되도록 하는 방법, service를 통해 연동을 하면 되는건지...두번째 질문: image 빌드 및 conatanier 생성시 admin이 생성한 새로운 pod에 container가 실행 되도록 하는 방법에 대해 설명해 주시면 감사하겠습니다.세번째 질문: kind: limitRange를 yaml 파일로 생성하게 되면, 기존 nameserver에 새로 적용한 limitRange가 자동으로 update 가 되는건지와 이때 기존 namespace에 자동 적용되기 위해 yalm 파일에 metadata의 name이 같아야 하는건지 등 특별히 뭔가를 해야 하는것이 있는지 설명 부탁 드립니다.네번째 질문: pod도 새로운 limitRange 값으로 생성시 기존 containers 들을 관리하는 pod에 자동으로 update 가 되는건지아닌, 별도의 pod로 새롭게 image와 containers을 만들어야 하는건지 알고 싶습니다. 만약 자동으로 기존 pod에 새로운 limitRange 값이 update 된다면, 새로운 생성할 pod의 yaml 파일에 특별히 뭔가를 해야 하는것이 있는지 설명 부탁 드립니다.그리고 강의내용 중에 어느 부분을 다시 검토해 봐야 하는지도 좀 알려 주시기 바랍니다.