묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실리콘밸리 엔지니어에게 배우는 쿠버네티스 for SWE
NAT을 사용하면 안되는 규칙에 대한 질문입니다. (Cluster Network(클러스터 네트워크)에 대해 알아보자 )
강의 중 NAT을 사용하면 안된다는 부분에 질문이 있습니다.다른 노드간 통신을 하려고 합니다.서버A - 공인 아이피(242.53.436.93), 사설 ip(192.168.1.108)서버 B - 공인 아이피(215.26.372.38), 사설 ip(192.168.1.4)NAT을 사용하면 안되는 거면 사설 ip를 이용하는 환경은 노드와 노드끼리 통신이 안되는 건가요?만약 불가능 하다면 직접 통신은 못해도,nginx를 통해 http 통신은 가능할까요?서버A - 노드 1 - 파트(웹어플리케이션이)에서서버 B - 노드 1 - 파트(웹어플리케이션이)에게 215.26.372.38:80/auth/user라는 통신을 요청하는게 가능할까요?감사합니다.
-
해결됨대세는 쿠버네티스 [초급~중급]
쿠버네티스 실습
안녕하세요. 쿠버네티스 수강생입니다.혹시 실습이 계속 대시보드에서 진행되나요..?터미널로 실습 하고 싶어서 그런데 다른 강의나 강의자료가 있으실까요..?
-
미해결대세는 쿠버네티스 [초급~중급]
ssh root@192.168.56.31 실행시 Operation timed out이 뜹니다
guest network도 192.168.64.1로 변경해봤는데 ssh root@192.168.56.31 커맨드 실행시 반응이없다가 ssh: connect to host 192.168.56.31 port 22: Operation timed out 오류가 나옵니다.
-
미해결그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
etcd restore시 etcd static pod pending status
안녕하세요. etcd 백업/리스 투어 진행하고 있는데 정상적으로 etcd snapshot 생성 후 resore 시 etcd pod가 pending 상태를 유지합니다. 혹시 이류를 알 수 있을까요?스냅샷 생성 명령어$ ETCDCTL_API=3 etcdctl --endpoints https://127.0.0.1:2379 --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt snapshot save /home/k8sadm/20240610.db 스냅샷 정상 확인$ ETCDCTL_API=3 etcdctl --write-out=table snapshot status 20240610.dbDeprecated: Use etcdutl snapshot status instead.+----------+----------+------------+------------+| HASH | REVISION | TOTAL KEYS | TOTAL SIZE |+----------+----------+------------+------------+| 1c359138 | 2024399 | 888 | 3.8 MB |+----------+----------+------------+------------+ 스냅샷 리스토어 명령어ETCDCTL_API=3 etcdctl --data-dir /var/lib/etcd-backup snapshot restore 20240610.db4. descirbe etcd podkubectl describe pod etcd-k8s-jyhyun -n kube-systemName: etcd-k8s-jyhyunNamespace: kube-systemPriority: 2000001000Priority Class Name: system-node-criticalNode: k8s-jyhyun/Labels: component=etcd tier=control-planeAnnotations: kubeadm.kubernetes.io/etcd.advertise-client-urls: https://10.6.20.130:2379 kubernetes.io/config.hash: fa7fbc532f6755b3221eb69e85a2d135 kubernetes.io/config.mirror: fa7fbc532f6755b3221eb69e85a2d135 kubernetes.io/config.seen: 2024-06-10T11:30:54.682732539+09:00 kubernetes.io/config.source: fileStatus: PendingSeccompProfile: RuntimeDefaultIP:IPs: <none>Controlled By: Node/k8s-jyhyunContainers: etcd: Image: registry.k8s.io/etcd:3.5.12-0 Port: <none> Host Port: <none> Command: etcd --advertise-client-urls=https://10.6.20.130:2379 --cert-file=/etc/kubernetes/pki/etcd/server.crt --client-cert-auth=true --data-dir=/var/lib/etcd --experimental-initial-corrupt-check=true --experimental-watch-progress-notify-interval=5s --initial-advertise-peer-urls=https://10.6.20.130:2380 --initial-cluster=k8s-jyhyun=https://10.6.20.130:2380 --key-file=/etc/kubernetes/pki/etcd/server.key --listen-client-urls=https://127.0.0.1:2379,https://10.6.20.130:2379 --listen-metrics-urls=http://127.0.0.1:2381 --listen-peer-urls=https://10.6.20.130:2380 --name=k8s-jyhyun --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt --peer-client-cert-auth=true --peer-key-file=/etc/kubernetes/pki/etcd/peer.key --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt --snapshot-count=10000 --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt Requests: cpu: 100m memory: 100Mi Liveness: http-get http://127.0.0.1:2381/health%3Fexclude=NOSPACE&serializable=true delay=10s timeout=15s period=10s #success=1 #failure=8 Startup: http-get http://127.0.0.1:2381/health%3Fserializable=false delay=10s timeout=15s period=10s #success=1 #failure=24 Environment: <none> Mounts: /etc/kubernetes/pki/etcd from etcd-certs (rw) /var/lib/etcd from etcd-data (rw)Volumes: etcd-certs: Type: HostPath (bare host directory volume) Path: /etc/kubernetes/pki/etcd HostPathType: DirectoryOrCreate etcd-data: Type: HostPath (bare host directory volume) Path: /var/lib/etcd-backup HostPathType: DirectoryOrCreateQoS Class: BurstableNode-Selectors: <none>Tolerations: :NoExecute op=ExistsEvents: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Pulled 11m kubelet Container image "registry.k8s.io/etcd:3.5.12-0" already present on machine Normal Created 11m kubelet Created container etcd Normal Started 11m kubelet Started container etcd Normal Killing 9m46s kubelet Stopping container etcd
-
해결됨대세는 쿠버네티스 [초급~중급]
Xshell
안녕하세요! 쿠버네티스 수강생입니다.쿠버네티스 설치 할 때 Xshell 말고 putty로 사용 가능한가요?감사합니다.
-
미해결대세는 쿠버네티스 [초급~중급]
pc 사양 문제로 cpu core 수 낮춰도 될까요??
현재 학습에 사용하고 있는 PC의 CPU 수가 4개 입니다. (11세대 i7) 3개 vm을 돌리니 cpu 사용량 100%찍어 종종 뻗곤 합니다. vagrant 파일 수정해서 cpu core수 낮춰도 나중에 강의 진행하는 데 문제 없을까요??
-
미해결대세는 쿠버네티스 [초급~중급]
도커 이미지 쿠버네티스 위에 올릴 때 디플로이먼트 어떻게 해야하나요??
안녕하세요도커파일을 쿠버네티스에 올려보고싶습니다.docker pull python:3.8.3-slimdocker run -it python:3.8.3-slimkubectl create deployment python-app --image=python:3.8.3 하여deployment.apps/python-app created 까지 확인했습니다. 하지만와 같은 CrashLoopBackOff가 뜨며 파드가 올라가지 않습니다.혹시 디플로이먼트 파일을 따로 작성해야하나요 아니면 다른 해결 방법이 있을까요??
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Jenkins 내용 추가
수강전 질문에 Jenkins Webhook 기능을 추후에 필요하면, 추가 강의로 포함해 놓도록 하겠습니다고 하셨습니다. 기대하겠습니다.
-
미해결실리콘밸리 엔지니어에게 배우는 쿠버네티스 for SWE
한번에 다운 받기 자료 요청
혹시 한번에 다운 받을수 있게 압축파일로 해주실수 있나요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ec2인스턴스를 다시 켜서 ip가 바뀌면 인증값도 바뀌나요?
개인프로젝트로 하는데 t2.micro는 너무작아서 유료 인스턴스 유형을 사용해야하는데 탄력적 ip를 사용하지않으면 인스턴스를 끄고 켤때마다 주소값이 바뀌는데만약 주소값이 바뀌면 각 ec2인스턴스의 ssh-keygen으로 인증 받은 값들도 전부 바뀌는 건가요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Built-In Node가 오프라인 상태일때
This is the Jenkins controller's built-in node. Builds running on this node will execute on the same system and as the same user as the Jenkins controller. This is appropriate e.g. for special jobs performing backups, but in general you should run builds on agents. Learn more about distributed builds.Disk space is below threshold of 1.00 GiB. Only 471.52 MiB out of 474.81 MiB left on /tmp.강의를 그대로 따라했는데 빌드상태가 오프라인으로 떠요로컬호스트 환경에서는 문제없었습니다...
-
미해결그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
API Timeout 발생하면서 연결 오류 발생
안녕하세요. 강사님.어느날 서버에 접속해보니 api timeout이 발생하면서 node / pod 등 조회가 안되고 있습니다. E0605 17:20:35.425038 3424 memcache.go:265] couldn't get current server API group list: Get "https://192.168.37.169:6443/api?timeout=32s": dial tcp 192.168.37.169:6443: connect: connection refusedE0605 17:20:35.425350 3424 memcache.go:265] couldn't get current server API group list: Get "https://192.168.37.169:6443/api?timeout=32s": dial tcp 192.168.37.169:6443: connect: connection refusedE0605 17:20:35.426888 3424 memcache.go:265] couldn't get current server API group list: Get "https://192.168.37.169:6443/api?timeout=32s": dial tcp 192.168.37.169:6443: connect: connection refusedE0605 17:20:35.428316 3424 memcache.go:265] couldn't get current server API group list: Get "https://192.168.37.169:6443/api?timeout=32s": dial tcp 192.168.37.169:6443: connect: connection refusedE0605 17:20:35.429744 3424 memcache.go:265] couldn't get current server API group list: Get "https://192.168.37.169:6443/api?timeout=32s": dial tcp 192.168.37.169:6443: connect: connection refused 위와 같이 api timeout이 발생하면서 연결 거부가 발생하여서구글링하여보니 /etc/kubernetes/admin.conf를 $HOME/.kube/config에 복사하여 해결한 사례를 보고 똑같이 하였으나 증상이 동일합니다.혹시 이런 상황에서 어떤쪽을 확인해보면 좋을까요?(kubelet쪽도 확인하여보았지만 정상 running 상태였습니다.)
-
미해결대세는 쿠버네티스 [초급~중급]
cronjob을 생성 후 대시보드를 통한 접근시 404오류가 발생합니다.
xshell을 통해서 yaml 파일 작성 후 cronjob을 생성해보기도 하였고 대시보드를 통해 cronjob을 생성해보기도 하였습니다. 생성까지는 다음과 같이 무사히 되는데 클릭하고 들어갈 경우 다음과 같은 에러가 발생합니다. 다음과 같이 별 이상은 없는데 대시보드로 접근만 불가한 상황이네요... stackOverFlow에도 관련 오류가 있길래 좀 찾아봤는데 별다른 해결법을 찾지 못했습니다 ㅜ
-
해결됨대세는 쿠버네티스 [초급~중급]
안녕하세요.
안녕하세요, 관련강의를 통하여 쿠버네티스를 많이 이해하는데 도움이 되었습니다.그림과 실습으로 친절하게 알려주셔서 감사합니다. 궁금한 사항으로 (굉장히 기본적인 내용인 것 같은데요 ㅎ) 대쉬보드 에서 클러스터 롤바인딩(ex. kubernetes-dashboard2)을 수정할때는 버튼으로 수정이 편한데요. OS 상에서는 어떻게 수정하는지 궁금합니다. 감사합니다.
-
미해결대세는 쿠버네티스 [초급~중급]
대시보드 접속 오류 질문입니다.
안녕하세요 강사님.현재 k8s master 노드와 node1,2를 모두 정상적으로 생성한 상태인데, 대시보드 접근이 안되어 문의글 남깁니다. 대시보드 url을 입력해 접속하면 다음과 같은 화면이 출력됩니다.kubectl get pods -A 했을 때 모든 pods가 정상적으로 running 상태입니다. 문제가 무엇일까요..? 답변 주시면 감사하겠습니다.
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
vagrant 설치중 404 오류
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)vagrant upBringing machine 'master-node' up with 'virtualbox' provider...==> master-node: Box 'rockylinux/8' could not be found. Attempting to find and install... master-node: Box Provider: virtualbox master-node: Box Version: >= 0==> master-node: Loading metadata for box 'rockylinux/8' master-node: URL: https://vagrantcloud.com/api/v2/vagrant/rockylinux/8==> master-node: Adding box 'rockylinux/8' (v9.0.0) for provider: virtualbox master-node: Downloading: https://vagrantcloud.com/rockylinux/boxes/8/versions/9.0.0/providers/virtualbox/unknown/vagrant.boxDownload redirected to host: dl.rockylinux.org master-node:An error occurred while downloading the remote file. The errormessage, if any, is reproduced below. Please fix this error and tryagain.The requested URL returned error: 404 설치중 위와 같은 에러가 발생했는데, 이유를 모르겠습니다... ㅠㅠㅠ카페 [강의 자료실]에도 많은 질문과 답변들이 있어요! cafe: https://cafe.naver.com/kubeops
-
해결됨쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
다음 강의 질문입니다.
안녕하세요 강사님,강의 너무 잘 수강했습니다. 다음 강의가 궁굼한데언제쯤 나오나요?!
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
젠킨스에서 properties 방법을 알고싶다는거 였습니다.
질문 답변에 properties를 불러오는 방법들이 나열되었는데 답변 내용은 이미 아는 내용들입니다..Jenkins와 같은 CI/CD 도구를 이용할 때는 빌드 또는 배포 과정에서 외부의 설정 파일을 참조하거나, 환경 변수를 이용하여 필요한 설정 값을 주입하는 방법을 사용할 수 있습니다. 라고 있는데여기서 외부 설정파일을 어떻게 참조하는지 그 방법을 알고싶었습니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ssh-copy-id를 사용해도 비밀번호를 계속 요구합니다.
안녕하세요 강의 수강 중 문제가 발생해 문의 남기게 되었습니다. [Ansible 기본명령어] 파트를 보고 다음과 같이 수행하였습니다. hosts 파일 생성 후 [devops] 에 ansible-server 와 docker-server ip 등록ssh-keygen 명령어 수행ssh-copy-id root@[접속IP] 명령어 수행접속은 정상적으로 잘 됩니다.그러나 ssh-copy-id 실행 후에도 ssh root@172.17.0.3 과 같이 접속하려고하면 비밀번호를 입력을 요구합니다. 어떤 부분 때문에 문제가 되는지 모르겠습니다.아래는 ssh-copy-id 실행 후 ssh root@172.17.0.3를 입력시 출력되는 메시지입니다.Enter passphrase for key '/root/.ssh/id_rsa': 참고로 ssh-copy-id root~ 수행시/root/.ssh 하위에 있는 known_hosts 파일에 각 호스트IP 에 대한 키값같은게 추가 되는 것을 확인할 수 있었습니다. 추가 되는 것을 보면 정상적으로 동작은 한 것 같은데 ... 왜 다시 비밀번호를 입력하라는 창이 뜰까요?간과하고 있는 부분을 알려주시면 수업 시청시 도움이 될 것 같습니다. #추가1강의를 계속 진행하다보니 ansible all -m ping 시에 docker-server가 정상적으로 동작하고 있음에도 불구하고 permssion denied가 발생합니다. ( ssh 로 docker-server 직접 접근시 문제 없습니다. )관련하여 커뮤니티 Q&A 에서/root/.ssh 하위의 authroized-keys에 등록되어 있는 내용과 id_rsa_pub 내용이 일치 해야 한다고 해서 확인했더니 동일한걸로 판단 됩니다. 혹시 몰라 .ssh 하위 내용을 모두 삭제하고ssh-keygen 부터 수행하였으나 결과는 동일합니다.authrorized_keys 내용id_rsa.pub 내용 known_hosts 내용 이상입니다.좋은 강의 항상 감사드립니다.
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
OVA이미지 실습시, kubectl run nginx 안됨
도저히 실습에 진도가 나가지않아서 삽질하다가 질문드립니다. 사내에서 실습하는데, 사내 Proxy로 인해 Vagrant로 동작이 안되서 만들어놓으신 Vagrantfile, sh 스크립트 파일까지 고쳐가면서 하나씩 뚫고 가다가 결국은 포기했습니다. 그래서 강의대로 OVA이미지 파일 4개를 Windows의 VirtualBox에 import하고 실행했는데요.강의처럼 테스트로 nginx pod 하나 뛰워보면, 계속 상태가 아래와 같이 ContainerCreating에서 변하지 않습니다. [root@m-k8s ~]# kubectl run nginx --image=nginx pod/nginx created [root@m-k8s ~]# kubectl get po -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx 0/1 ContainerCreating 0 14s <none> w3-k8s <none> <none> 그래서 인터넷 뒤져서 descibe 명령을 해보면 아래와 같고요[root@m-k8s ~]# k describe pods Name: nginx .... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 3m11s default-scheduler Successfully assigned default/nginx to w3-k8s Warning FailedCreatePodSandBox 3m10s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "98c8cd593834608f6b964442a4253da3b4d5c8936ee5ba0b01d2b37dd58f7f07": plugin type="calico" failed (add): stat /var/lib/calico/nodename: no such file or directory: check that the calico/node container is running and has mounted /var/lib/calico/ kubelet.service 로그를 보면 아래와 같이 rpc error가 발생합니다.[root@m-k8s ~]# journalctl -f -u kubelet.service -- Logs begin at Fri 2024-05-31 13:58:40 KST. -- May 31 13:59:30 m-k8s kubelet[1170]: E0531 13:59:30.245464 1170 kuberuntime_gc.go:176] "Failed to stop sandbox before removing" err="rpc error: code = Unknown desc = failed to destroy network for sandbox \"684257523f2fa5084b4176cb38db77da2b32eaede58d0e565eafa9cd0a606167\": plugin type=\"calico\" failed (delete): error getting ClusterInformation: Get \"https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default\": dial tcp 10.96.0.1:443: i/o timeout" sandboxID="684257523f2fa5084b4176cb38db77da2b32eaede58d0e565eafa9cd0a606167" May 31 13:59:40 m-k8s kubelet[1170]: E0531 13:59:40.856695 1170 remote_runtime.go:269] "StopPodSandbox from runtime service failed" err="rpc error: code = Unknown desc = failed to destroy network for sandbox \"e2e9812b51ac2134f3a12109f08b56c4475de7206dde4b4a127ca8ed418653b0\": plugin type=\"calico\" failed (delete): error getting ClusterInformation: Get \"https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default\": dial tcp 10.96.0.1:443: i/o timeout" podSandboxID="e2e9812b51ac2134f3a12109f08b56c4475de7206dde4b4a127ca8ed418653b0" May 31 13:59:40 m-k8s kubelet[1170]: E0531 13:59:40.856857 1170 kuberuntime_manager.go:954] "Failed to stop sandbox" podSandboxID={Type:containerd ID:e2e9812b51ac2134f3a12109f08b56c4475de7206dde4b4a127ca8ed418653b0}무엇이 문제일까요? ㅠ위 로그에 "https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default"이 10.96.0.1 IP는 처음보는 IP인데 정상적인 IP는 맞을까요?OVA이미지 import할때 VirtualBox에 설정이 문제일까요?kubectl run nginx --image=nginx 할때 외부사이트에서 이미지를 받아오나요? 외부 사이트라면 ID/패스워드 인증없이 받아오는걸까요? 외부 registry면.. 또 Proxy 설정이나, SSL 인증이 문제가 될거 같기도 한데요...