월 39,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
vagrant up 명령시 에러 발생
안녕하세요. 오늘부터 조훈님의 강의를 듣게 되었습니다. vagrant up 을 했을 때 아래와 같이 에러가 발생하는데 원인과 해결책을 알 수 있을까요? 감사합니다.
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
nfs-client-provisioner 생성 오류
안녕하세요. 스로토리클래스를 생성하는 과정에서 아래와 같은 에러가 발생하고 있습니다. [root@m-k8s 5.6]# k logs nfs-client-provisioner-5f86658464-q4ntt Error from server (BadRequest): container "nfs-client-provisioner" in pod "nfs-client-provisioner-5f86658464-q4ntt" is waiting to start: ContainerCreating 먼저 환경을 설명 드리면, 마스터 k8s 노드의 private_network의 ip는 192.168.56.10입니다. Virtualbox 제약으로 변경했습니다. 그래서 5.6/nfs-subdir-external-provisioner/deployment.yaml 의 IP를 모두 192.168.56.10으로 동일하게 세팅했습니다. 이 상황에서 어떤 부분을 더 체크해보면 좋을까요?
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
PV와 PVC가 어떤 원리로 연결 된나요?
안녕하세요. 좋은 강의 잘 듣고 있습니다. 감사합니다. PV와 PVC를 서로 연결하는 설정이 없는데, 어떻게 K8s에서 연결해 주는 건가요? 한번에 여러개는 설정이 안되는것 같던데.. 혹시 1개만 설정이 가능하기 떄문에 특별히 서로 연결해줄 고리가 없는건가요?
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
EXTERNAL-IP와 VM IP Range가 다를 경우 어떻게 맞추어 주어야 하나요?
안녕하세요. VirtualBox의 정책 변경으로 private_network의 IP Range를 192.168.1,*를 사용하지 못하고 192.168.56.*으로 설정해서 사용하고 있습니다. 그런데 Endpoint 실습에 사용되는 4.7/loadbalancer.yaml를 사용하게 되면 EXTERNAL-IP가 192.168.1.11로 설정로 설정되어 접속이 브라우저에서 안되는 것 같습니다. 이런 경우 192.168.1.11 를 변경을 하려면 어떻게 하나요? 아니면 다른 방법으로 처리해야 할까요?
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
안녕하세요. 설치 질문드립니다~
안녕하세요. k8s-UpTo-10GiB 폴더 안에 있는 Vagrantfile로 vagrant up에서 에러가 나서 질문드립니다. 현재 마스터노드에서는 설치가 진행이 잘 되는거 같은데 http://naver.me/IGuwupk5 w1노드 설치할때 에러가 발생합니다. http://naver.me/5NLTL9mc 2번째 스크립트가 실행될때 에러가 발생하는것 같습니다. 이게 가상머신 안에서 설치할때 발생하는 에러 같은데 혹시 어떤 에러인지 아실까요? 제가 우분투만 쓰고 centos는 안써봐서 그런지 에러를 잘 모르겠네요. 1.6에서도 마스터 노드 안에서 설치를 진행할때 비슷한 에러가 발생했는데 그냥 넘어가서 2.1을 진행했습니다. 환경은 윈도우이고 램도 32기가라 자원의 영향은 크게 없을거 같습니다.한두달전에 쉽게 시작하는 쿠버네티스는 설치해서 잘 썼었는데 다시 하니까 이렇게 되네요. ㅎㅎ 참고로 버추얼박스 베이그런트 다시 설치하고 폴더 지우고 하는 것들은 다 많이 해보긴 했습니다. ㅜㅜ
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
안녕하세요. 스토리지 클래스에 대해 궁금한 점이 있어서 질문 드립니다.
현재 상황은 로컬pc와 aws ec2 인스턴스를 site to site vpn방식으로 연결하고, 로컬 pc를 마스터노드, ec2 인스턴스를 워커노드 형태로 쿠버네티스 클러스터를 구성한 상태입니다. 같이 하는 친구가 워낙 잘 해서 이렇게 인프라를 잘 구축해줬는데, 저는 여기서 스토리지 클래스를 구성해 동적 프로비저닝을 구현하면 좋겠다는 생각을 해서 쿠버네티스 문서에 나와 있는 내용과 강의시간에 배운 내용들을 참조해 로컬 마스터노드에서 작업을 진행중인데 생각보다 구성이 잘 안 돼서 질문드리게 됐습니다. 로컬 마스터노드에서 스토리지클래스를 구성해 쿠버네티스 클러스터로 연결된 ec2 인스턴스의 ebs를 프로비저너로 사용하려고 하는데 이게 구현이 가능한 기술일까요? 계속 찾아보니 aws에서 제공해주는 aws storagegateway와 s3를 이용한 datasync가 있는데 꼭 이 방법을 이용해야 하는지 아니면 ec2와 연결된 ebs에 볼륨을 붙일 수 있을지 궁금해서 질문드립니다. 질문 드리기 전에 여기저기 찾아봐도 nfs를 이용한 스토리지클래스들의 예는 조금 찾아볼 수 있는데, 이 경우 마땅한 레퍼런스를 잘 찾을 수 없어 염치 불고하고 질문드립니다.
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
일반적으로 쿠버네티스 환경에서 데이터베이스 구성은 어떻게 고려하나요?
안녕하세요. 쿠버네티스를 열심히 공부하고 있는 개발자 출신의 엔지니어입니다. 저희 회사에서 일종의 SaaS 서비스를 준비하고 있는데 해당 서비스관리를 위해 쿠버네티스를 고려하고 있습니다.(아마도 아마존 EKS에 적용을 하려고 합니다.) 예를 들어, 잘 만들어진 공용의 웹서비스와 DB(테이블)의 이미지가 각각 있다고 전제하고 고객에게 필요에 따라 SaaS 형태로 서비스한다고 가정한다면 데이터베이스의 경우 통상적으로 어떻게 구성을 하게 되나요? 보통 파드에 컨테이너로 올라가는 웹서비스의 경우는 디플로이먼트로 배포하면서 리플리카셋을 이용해서 Scale-out하는 것에 대해 이해가 잘 가는 편이지만 DB를 동일하게 각각의 파드에 올려서 사용하는 것은 조금 이상해 보입니다. 또한, 파드의 특성상 언제든지 죽을수도 있는 상황인데 DB가 그런식으로 관리된다면 상식적이지가 않아 보입니다. 통상적으로 쿠버네티스 환경에서 고객별로 별도의 DB가 만들어진다고 가정한다면 보통 어떻게 관리하도록 구성하는 것이 바람직한지 힌트를 좀 주시길 바랍니다. 감사합니다.
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
vagrant up 시 오류
이번에는 Virtualbox를 아예 삭제하고 관련 폴더도 다 삭제한 다음 6.1.18버전으로 다시 설치하고, .vagrant 파일도 삭제하고 vagrant up을 했는데 다음과 같은 오류가 났습니다 ㅜ ---- w2-k8s-1.22: Installed: w2-k8s-1.22: kubeadm.x86_64 0:1.22.0-0 kubectl.x86_64 0:1.22.0-0 kubelet.x86_64 0:1.22.0-0 w2-k8s-1.22: w2-k8s-1.22: Dependency Installed: w2-k8s-1.22: conntrack-tools.x86_64 0:1.4.4-7.el7 w2-k8s-1.22: cri-tools.x86_64 0:1.13.0-0 w2-k8s-1.22: kubernetes-cni.x86_64 0:0.8.7-0 w2-k8s-1.22: libnetfilter_cthelper.x86_64 0:1.0.0-11.el7 w2-k8s-1.22: libnetfilter_cttimeout.x86_64 0:1.0.0-7.el7 w2-k8s-1.22: libnetfilter_queue.x86_64 0:1.0.2-2.el7_2 w2-k8s-1.22: socat.x86_64 0:1.7.3.2-2.el7 w2-k8s-1.22: Complete! w2-k8s-1.22: Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. w2-k8s-1.22: Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service. ==> w2-k8s-1.22: Running provisioner: shell... w2-k8s-1.22: Running: C:/Users/LG/AppData/Local/Temp/vagrant-shell20211013-18604-5scmh8.sh w2-k8s-1.22: [preflight] Running pre-flight checks w2-k8s-1.22: error execution phase preflight: couldn't validate the identity of the API Server: Get "https://192.168.1.10:6443/api/v1/namespaces/kube-public/configmaps/cluster-info?timeout=10s": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) w2-k8s-1.22: To see the stack trace of this error execute with --v=5 or higher The SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed. The output for this command should be in the log above. Please read the output to determine what went wrong. ----- 제 노트북은 왜 이럴까요..ㅎㅎㅎ;; ----- 추가) 문제가 있는 2번째 워커 노드만 제거하고 다시 vagrant up 했더니 Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. 이 부분에서 무한 대기하고 있습니다.
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
마스터 노드 쉘 스크립트 실행 시 오류
마스터 노드 쉘 스크립트 실행 시 다음과 같은 오류가 발생합니다. ----- [root@m-k8s 1.6]# ./WO_master_node.sh I1013 17:13:43.888031 3880 version.go:251] remote version is much newer: v1.22.2; falling back to: stable-1.20 [init] Using Kubernetes version: v1.20.11 [preflight] Running pre-flight checks [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ [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' [certs] Using certificateDir folder "/etc/kubernetes/pki" [certs] Generating "ca" certificate and key [certs] Generating "apiserver" certificate and key [certs] apiserver serving cert is signed for DNS names [kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local m-k8s] and IPs [10.96.0.1 192.168.1.10] [certs] Generating "apiserver-kubelet-client" certificate and key [certs] Generating "front-proxy-ca" certificate and key [certs] Generating "front-proxy-client" certificate and key [certs] Generating "etcd/ca" certificate and key [certs] Generating "etcd/server" certificate and key [certs] etcd/server serving cert is signed for DNS names [localhost m-k8s] and IPs [192.168.1.10 127.0.0.1 ::1] [certs] Generating "etcd/peer" certificate and key [certs] etcd/peer serving cert is signed for DNS names [localhost m-k8s] and IPs [192.168.1.10 127.0.0.1 ::1] [certs] Generating "etcd/healthcheck-client" certificate and key [certs] Generating "apiserver-etcd-client" certificate and key [certs] Generating "sa" key and public key [kubeconfig] Using kubeconfig folder "/etc/kubernetes" [kubeconfig] Writing "admin.conf" kubeconfig file [kubeconfig] Writing "kubelet.conf" kubeconfig file [kubeconfig] Writing "controller-manager.conf" kubeconfig file [kubeconfig] Writing "scheduler.conf" kubeconfig file [kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env" [kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml" [kubelet-start] Starting the kubelet [control-plane] Using manifest folder "/etc/kubernetes/manifests" [control-plane] Creating static Pod manifest for "kube-apiserver" [control-plane] Creating static Pod manifest for "kube-controller-manager" [control-plane] Creating static Pod manifest for "kube-scheduler" [etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests" [wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s [kubelet-check] Initial timeout of 40s passed. Unfortunately, an error has occurred: timed out waiting for the condition This error is likely caused by: - The kubelet is not running - The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled) If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands: - 'systemctl status kubelet' - 'journalctl -xeu kubelet' Additionally, a control plane component may have crashed or exited when started by the container runtime. To troubleshoot, list all containers using your preferred container runtimes CLI. Here is one example how you may list all Kubernetes containers running in docker: - 'docker ps -a | grep kube | grep -v pause' Once you have found the failing container, you can inspect its logs with: - 'docker logs CONTAINERID' error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster To see the stack trace of this error execute with --v=5 or higher The connection to the server 192.168.1.10:6443 was refused - did you specify the right host or port? ----- 다음은 한 번 더 실행했을 때 오류입니다 ----- [root@m-k8s 1.6]# ./WO_master_node.sh I1013 17:36:26.417655 5928 version.go:251] remote version is much newer: v1.22.2; falling back to: stable-1.20 [init] Using Kubernetes version: v1.20.11 [preflight] Running pre-flight checks [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR Port-6443]: Port 6443 is in use [ERROR Port-10259]: Port 10259 is in use [ERROR Port-10257]: Port 10257 is in use [ERROR FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml]: /etc/kubernetes/manifests/kube-apiserver.yaml already exists [ERROR FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml]: /etc/kubernetes/manifests/kube-controller-manager.yaml already exists [ERROR FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml]: /etc/kubernetes/manifests/kube-scheduler.yaml already exists [ERROR FileAvailable--etc-kubernetes-manifests-etcd.yaml]: /etc/kubernetes/manifests/etcd.yaml already exists [ERROR Port-10250]: Port 10250 is in use [ERROR Port-2379]: Port 2379 is in use [ERROR Port-2380]: Port 2380 is in use [ERROR DirAvailable--var-lib-etcd]: /var/lib/etcd is not empty [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 cp: overwrite ‘/root/.kube/config’? configmap/calico-config created customresourcedefinition.apiextensions.k8s.io/bgpconfigurations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/bgppeers.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/blockaffinities.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/clusterinformations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/felixconfigurations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/globalnetworkpolicies.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/globalnetworksets.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/hostendpoints.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ipamblocks.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ipamconfigs.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ipamhandles.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ippools.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/kubecontrollersconfigurations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/networkpolicies.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/networksets.crd.projectcalico.org created clusterrole.rbac.authorization.k8s.io/calico-kube-controllers created clusterrolebinding.rbac.authorization.k8s.io/calico-kube-controllers created clusterrole.rbac.authorization.k8s.io/calico-node created clusterrolebinding.rbac.authorization.k8s.io/calico-node created daemonset.apps/calico-node created serviceaccount/calico-node created deployment.apps/calico-kube-controllers created serviceaccount/calico-kube-controllers created poddisruptionbudget.policy/calico-kube-controllers created ----- 도와주세요ㅜ
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
Vagrant up 에러 발생 문제 해결 도움 요청
1.5버전 실습환경 구축을 위해 Virtual box와 vagrant 설치 후 공유해 주신 1.5버전 설치 중 에러가 계속 발생하여 Virtualbox와 vagrant를 재설치 해 보았으나, 여전히 동일한 문제가 발생합니다. 혹시 문제 해결에 도움을 주실 수 있을지 문의 드립니다. 문제된 화면 캡쳐 올려 드립니다. Microsoft Windows [Version 10.0.18362.1256] (c) 2019 Microsoft Corporation. All rights reserved. C:\Users\Administrator>cd \ C:\>cd hashicorp C:\HashiCorp>dir/w C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 5A62-A4BD C:\HashiCorp 디렉터리 [.] [..] [Vagrant] [_Lecture_k8s_learning.kit-main] _Lecture_k8s_learning.kit-main.zip 1개 파일 438,711 바이트 4개 디렉터리 66,036,817,920 바이트 남음 C:\HashiCorp>cd _Lecture_k8s_learning.kit-main C:\HashiCorp\_Lecture_k8s_learning.kit-main>dir C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 5A62-A4BD C:\HashiCorp\_Lecture_k8s_learning.kit-main 디렉터리 2021-10-06 오후 01:48 <DIR> . 2021-10-06 오후 01:48 <DIR> .. 2021-10-05 오전 01:00 9 .gitignore 2021-10-06 오후 01:46 <DIR> A 2021-10-06 오후 01:46 <DIR> ch1 2021-10-06 오후 01:46 <DIR> ch2 2021-10-06 오후 01:46 <DIR> ch3 2021-10-06 오후 01:46 <DIR> ch4 2021-10-06 오후 01:46 <DIR> ch5 2021-10-06 오후 01:46 <DIR> ch6 2021-10-06 오후 01:46 <DIR> ch7 2021-10-06 오후 01:46 <DIR> ch8 2021-10-06 오후 01:46 <DIR> ch9 2021-10-05 오전 01:00 1,472 README.md 2개 파일 1,481 바이트 12개 디렉터리 66,036,817,920 바이트 남음 C:\HashiCorp\_Lecture_k8s_learning.kit-main>cd ch1 C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1>dir C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 5A62-A4BD C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1 디렉터리 2021-10-06 오후 01:46 <DIR> . 2021-10-06 오후 01:46 <DIR> .. 2021-10-06 오후 01:46 <DIR> 1.5 2021-10-06 오후 01:46 <DIR> 1.6 2021-10-05 오전 01:00 182 README.md 1개 파일 182 바이트 4개 디렉터리 66,036,817,920 바이트 남음 C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1>cd 1.5 C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1\1.5>dir/w C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 5A62-A4BD C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1\1.5 디렉터리 [.] [..] [k8s-min-5GiB-wo-add-nodes] Sessions(k8s_learning).XML 1개 파일 1,373 바이트 3개 디렉터리 66,036,822,016 바이트 남음 C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1\1.5>cd k8s-min-5GiB-wo-add-nodes C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1\1.5\k8s-min-5GiB-wo-add-nodes>dir C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 5A62-A4BD C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1\1.5\k8s-min-5GiB-wo-add-nodes 디렉터리 2021-10-06 오후 01:46 <DIR> . 2021-10-06 오후 01:46 <DIR> .. 2021-10-05 오전 01:00 1,395 k8s_env_build.sh 2021-10-05 오전 01:00 475 k8s_pkg_cfg.sh 2021-10-05 오전 01:00 524 k_cfg_n_git_clone.sh 2021-10-05 오전 01:00 2,275 Vagrantfile 4개 파일 4,669 바이트 2개 디렉터리 66,036,707,328 바이트 남음 C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1\1.5\k8s-min-5GiB-wo-add-nodes>dir/w C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 5A62-A4BD C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1\1.5\k8s-min-5GiB-wo-add-nodes 디렉터리 [.] [..] k8s_env_build.sh k8s_pkg_cfg.sh k_cfg_n_git_clone.sh Vagrantfile 4개 파일 4,669 바이트 2개 디렉터리 66,036,707,328 바이트 남음 C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1\1.5\k8s-min-5GiB-wo-add-nodes>vagrant up Bringing machine 'WO-m-k8s-1.20' up with 'virtualbox' provider... Bringing machine 'WO-w1-k8s-1.20' up with 'virtualbox' provider... Bringing machine 'WO-w2-k8s-1.20' up with 'virtualbox' provider... Bringing machine 'WO-w3-k8s-1.20' up with 'virtualbox' provider... ==> WO-m-k8s-1.20: Box 'sysnet4admin/CentOS-k8s' could not be found. Attempting to find and install... WO-m-k8s-1.20: Box Provider: virtualbox WO-m-k8s-1.20: Box Version: >= 0 ==> WO-m-k8s-1.20: Loading metadata for box 'sysnet4admin/CentOS-k8s' WO-m-k8s-1.20: URL: https://vagrantcloud.com/sysnet4admin/CentOS-k8s ==> WO-m-k8s-1.20: Adding box 'sysnet4admin/CentOS-k8s' (v0.7.4) for provider: virtualbox WO-m-k8s-1.20: Downloading: https://vagrantcloud.com/sysnet4admin/boxes/CentOS-k8s/versions/0.7.4/providers/virtualbox.box WO-m-k8s-1.20: ==> WO-m-k8s-1.20: Successfully added box 'sysnet4admin/CentOS-k8s' (v0.7.4) for 'virtualbox'! ==> WO-m-k8s-1.20: Importing base box 'sysnet4admin/CentOS-k8s'... ==> WO-m-k8s-1.20: Matching MAC address for NAT networking... ==> WO-m-k8s-1.20: Checking if box 'sysnet4admin/CentOS-k8s' version '0.7.4' is up to date... ==> WO-m-k8s-1.20: Setting the name of the VM: WO-m-k8s-1.20(github_SysNet4Admin) ==> WO-m-k8s-1.20: Clearing any previously set network interfaces... ==> WO-m-k8s-1.20: Preparing network interfaces based on configuration... WO-m-k8s-1.20: Adapter 1: nat WO-m-k8s-1.20: Adapter 2: hostonly ==> WO-m-k8s-1.20: Forwarding ports... WO-m-k8s-1.20: 22 (guest) => 60010 (host) (adapter 1) ==> WO-m-k8s-1.20: Running 'pre-boot' VM customizations... ==> WO-m-k8s-1.20: Booting VM... ==> WO-m-k8s-1.20: Waiting for machine to boot. This may take a few minutes... WO-m-k8s-1.20: SSH address: 127.0.0.1:60010 WO-m-k8s-1.20: SSH username: vagrant WO-m-k8s-1.20: SSH auth method: private key WO-m-k8s-1.20: Warning: Remote connection disconnect. Retrying... WO-m-k8s-1.20: Warning: Connection aborted. Retrying... WO-m-k8s-1.20: Warning: Remote connection disconnect. Retrying... WO-m-k8s-1.20: Warning: Remote connection disconnect. Retrying... WO-m-k8s-1.20: Warning: Connection aborted. Retrying... WO-m-k8s-1.20: WO-m-k8s-1.20: Vagrant insecure key detected. Vagrant will automatically replace WO-m-k8s-1.20: this with a newly generated keypair for better security. WO-m-k8s-1.20: WO-m-k8s-1.20: Inserting generated public key within guest... WO-m-k8s-1.20: Removing insecure key from the guest if it's present... WO-m-k8s-1.20: Key inserted! Disconnecting and reconnecting using new SSH key... ==> WO-m-k8s-1.20: Machine booted and ready! ==> WO-m-k8s-1.20: Checking for guest additions in VM... ==> WO-m-k8s-1.20: Setting hostname... ==> WO-m-k8s-1.20: Configuring and enabling network interfaces... ==> WO-m-k8s-1.20: Running provisioner: shell... WO-m-k8s-1.20: Running: C:/Users/ADMINI~1/AppData/Local/Temp/vagrant-shell20211006-15576-1w8qnwz.sh WO-m-k8s-1.20: Loaded plugins: fastestmirror WO-m-k8s-1.20: Determining fastest mirrors WO-m-k8s-1.20: * base: mirror.kakao.com WO-m-k8s-1.20: * extras: mirror.kakao.com WO-m-k8s-1.20: * updates: mirror.kakao.com WO-m-k8s-1.20: Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest version WO-m-k8s-1.20: Nothing to do WO-m-k8s-1.20: Loaded plugins: fastestmirror WO-m-k8s-1.20: adding repo from: https://download.docker.com/linux/centos/docker-ce.repo WO-m-k8s-1.20: grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo WO-m-k8s-1.20: repo saved to /etc/yum.repos.d/docker-ce.repo ==> WO-m-k8s-1.20: Running provisioner: shell... WO-m-k8s-1.20: Running: C:/Users/ADMINI~1/AppData/Local/Temp/vagrant-shell20211006-15576-e5eysz.sh WO-m-k8s-1.20: Loaded plugins: fastestmirror WO-m-k8s-1.20: Loading mirror speeds from cached hostfile WO-m-k8s-1.20: * base: mirror.kakao.com WO-m-k8s-1.20: * extras: mirror.kakao.com WO-m-k8s-1.20: * updates: mirror.kakao.com WO-m-k8s-1.20: Resolving Dependencies WO-m-k8s-1.20: --> Running transaction check WO-m-k8s-1.20: ---> Package epel-release.noarch 0:7-11 will be installed WO-m-k8s-1.20: --> Finished Dependency Resolution WO-m-k8s-1.20: WO-m-k8s-1.20: Dependencies Resolved WO-m-k8s-1.20: WO-m-k8s-1.20: ================================================================================ WO-m-k8s-1.20: Package Arch Version Repository Size WO-m-k8s-1.20: ================================================================================ WO-m-k8s-1.20: Installing: WO-m-k8s-1.20: epel-release noarch 7-11 extras 15 k WO-m-k8s-1.20: WO-m-k8s-1.20: Transaction Summary WO-m-k8s-1.20: ================================================================================ WO-m-k8s-1.20: Install 1 Package WO-m-k8s-1.20: WO-m-k8s-1.20: Total download size: 15 k WO-m-k8s-1.20: Installed size: 24 k WO-m-k8s-1.20: Downloading packages: WO-m-k8s-1.20: Running transaction check WO-m-k8s-1.20: Running transaction test WO-m-k8s-1.20: Transaction test succeeded WO-m-k8s-1.20: Running transaction WO-m-k8s-1.20: Installing : epel-release-7-11.noarch 1/1 WO-m-k8s-1.20: Verifying : epel-release-7-11.noarch 1/1 WO-m-k8s-1.20: WO-m-k8s-1.20: Installed: WO-m-k8s-1.20: epel-release.noarch 0:7-11 WO-m-k8s-1.20: WO-m-k8s-1.20: Complete! WO-m-k8s-1.20: Loaded plugins: fastestmirror WO-m-k8s-1.20: Loading mirror speeds from cached hostfile WO-m-k8s-1.20: WO-m-k8s-1.20: WO-m-k8s-1.20: One of the configured repositories failed (Unknown), WO-m-k8s-1.20: and yum doesn't have enough cached data to continue. At this point the only WO-m-k8s-1.20: safe thing yum can do is fail. There are a few ways to work "fix" this: WO-m-k8s-1.20: WO-m-k8s-1.20: 1. Contact the upstream for the repository and get them to fix the problem. WO-m-k8s-1.20: WO-m-k8s-1.20: 2. Reconfigure the baseurl/etc. for the repository, to point to a working WO-m-k8s-1.20: upstream. This is most often useful if you are using a newer WO-m-k8s-1.20: distribution release than is supported by the repository (and the WO-m-k8s-1.20: packages for the previous distribution release still work). WO-m-k8s-1.20: WO-m-k8s-1.20: 3. Run the command with the repository temporarily disabled WO-m-k8s-1.20: yum --disablerepo=<repoid> ... WO-m-k8s-1.20: WO-m-k8s-1.20: 4. Disable the repository permanently, so yum won't use it by default. Yum WO-m-k8s-1.20: will then just ignore the repository until you permanently enable it WO-m-k8s-1.20: again or use --enablerepo for temporary usage: WO-m-k8s-1.20: WO-m-k8s-1.20: yum-config-manager --disable <repoid> WO-m-k8s-1.20: or WO-m-k8s-1.20: subscription-manager repos --disable=<repoid> WO-m-k8s-1.20: WO-m-k8s-1.20: 5. Configure the failing repository to be skipped, if it is unavailable. WO-m-k8s-1.20: Note that yum will try to contact the repo. when it runs most commands, WO-m-k8s-1.20: so will have to try and fail each time (and thus. yum will be be much WO-m-k8s-1.20: slower). If it is a very temporary problem though, this is often a nice WO-m-k8s-1.20: compromise: WO-m-k8s-1.20: WO-m-k8s-1.20: yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true WO-m-k8s-1.20: WO-m-k8s-1.20: Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again WO-m-k8s-1.20: Loaded plugins: fastestmirror WO-m-k8s-1.20: Loading mirror speeds from cached hostfile WO-m-k8s-1.20: WO-m-k8s-1.20: WO-m-k8s-1.20: One of the configured repositories failed (Unknown), WO-m-k8s-1.20: and yum doesn't have enough cached data to continue. At this point the only WO-m-k8s-1.20: safe thing yum can do is fail. There are a few ways to work "fix" this: WO-m-k8s-1.20: WO-m-k8s-1.20: 1. Contact the upstream for the repository and get them to fix the problem. WO-m-k8s-1.20: WO-m-k8s-1.20: 2. Reconfigure the baseurl/etc. for the repository, to point to a working WO-m-k8s-1.20: upstream. This is most often useful if you are using a newer WO-m-k8s-1.20: distribution release than is supported by the repository (and the WO-m-k8s-1.20: packages for the previous distribution release still work). WO-m-k8s-1.20: WO-m-k8s-1.20: 3. Run the command with the repository temporarily disabled WO-m-k8s-1.20: yum --disablerepo=<repoid> ... WO-m-k8s-1.20: WO-m-k8s-1.20: 4. Disable the repository permanently, so yum won't use it by default. Yum WO-m-k8s-1.20: will then just ignore the repository until you permanently enable it WO-m-k8s-1.20: again or use --enablerepo for temporary usage: WO-m-k8s-1.20: WO-m-k8s-1.20: yum-config-manager --disable <repoid> WO-m-k8s-1.20: or WO-m-k8s-1.20: subscription-manager repos --disable=<repoid> WO-m-k8s-1.20: WO-m-k8s-1.20: 5. Configure the failing repository to be skipped, if it is unavailable. WO-m-k8s-1.20: Note that yum will try to contact the repo. when it runs most commands, WO-m-k8s-1.20: so will have to try and fail each time (and thus. yum will be be much WO-m-k8s-1.20: slower). If it is a very temporary problem though, this is often a nice WO-m-k8s-1.20: compromise: WO-m-k8s-1.20: WO-m-k8s-1.20: yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true WO-m-k8s-1.20: WO-m-k8s-1.20: Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again WO-m-k8s-1.20: Loaded plugins: fastestmirror WO-m-k8s-1.20: Loading mirror speeds from cached hostfile WO-m-k8s-1.20: WO-m-k8s-1.20: WO-m-k8s-1.20: One of the configured repositories failed (Unknown), WO-m-k8s-1.20: and yum doesn't have enough cached data to continue. At this point the only WO-m-k8s-1.20: safe thing yum can do is fail. There are a few ways to work "fix" this: WO-m-k8s-1.20: WO-m-k8s-1.20: 1. Contact the upstream for the repository and get them to fix the problem. WO-m-k8s-1.20: WO-m-k8s-1.20: 2. Reconfigure the baseurl/etc. for the repository, to point to a working WO-m-k8s-1.20: upstream. This is most often useful if you are using a newer WO-m-k8s-1.20: distribution release than is supported by the repository (and the WO-m-k8s-1.20: packages for the previous distribution release still work). WO-m-k8s-1.20: WO-m-k8s-1.20: 3. Run the command with the repository temporarily disabled WO-m-k8s-1.20: yum --disablerepo=<repoid> ... WO-m-k8s-1.20: WO-m-k8s-1.20: 4. Disable the repository permanently, so yum won't use it by default. Yum WO-m-k8s-1.20: will then just ignore the repository until you permanently enable it WO-m-k8s-1.20: again or use --enablerepo for temporary usage: WO-m-k8s-1.20: WO-m-k8s-1.20: yum-config-manager --disable <repoid> WO-m-k8s-1.20: or WO-m-k8s-1.20: subscription-manager repos --disable=<repoid> WO-m-k8s-1.20: WO-m-k8s-1.20: 5. Configure the failing repository to be skipped, if it is unavailable. WO-m-k8s-1.20: Note that yum will try to contact the repo. when it runs most commands, WO-m-k8s-1.20: so will have to try and fail each time (and thus. yum will be be much WO-m-k8s-1.20: slower). If it is a very temporary problem though, this is often a nice WO-m-k8s-1.20: compromise: WO-m-k8s-1.20: WO-m-k8s-1.20: yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true WO-m-k8s-1.20: WO-m-k8s-1.20: Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again WO-m-k8s-1.20: Loaded plugins: fastestmirror WO-m-k8s-1.20: Loading mirror speeds from cached hostfile WO-m-k8s-1.20: WO-m-k8s-1.20: WO-m-k8s-1.20: One of the configured repositories failed (Unknown), WO-m-k8s-1.20: and yum doesn't have enough cached data to continue. At this point the only WO-m-k8s-1.20: safe thing yum can do is fail. There are a few ways to work "fix" this: WO-m-k8s-1.20: WO-m-k8s-1.20: 1. Contact the upstream for the repository and get them to fix the problem. WO-m-k8s-1.20: WO-m-k8s-1.20: 2. Reconfigure the baseurl/etc. for the repository, to point to a working WO-m-k8s-1.20: upstream. This is most often useful if you are using a newer WO-m-k8s-1.20: distribution release than is supported by the repository (and the WO-m-k8s-1.20: packages for the previous distribution release still work). WO-m-k8s-1.20: WO-m-k8s-1.20: 3. Run the command with the repository temporarily disabled WO-m-k8s-1.20: yum --disablerepo=<repoid> ... WO-m-k8s-1.20: WO-m-k8s-1.20: 4. Disable the repository permanently, so yum won't use it by default. Yum WO-m-k8s-1.20: will then just ignore the repository until you permanently enable it WO-m-k8s-1.20: again or use --enablerepo for temporary usage: WO-m-k8s-1.20: WO-m-k8s-1.20: yum-config-manager --disable <repoid> WO-m-k8s-1.20: or WO-m-k8s-1.20: subscription-manager repos --disable=<repoid> WO-m-k8s-1.20: WO-m-k8s-1.20: 5. Configure the failing repository to be skipped, if it is unavailable. WO-m-k8s-1.20: Note that yum will try to contact the repo. when it runs most commands, WO-m-k8s-1.20: so will have to try and fail each time (and thus. yum will be be much WO-m-k8s-1.20: slower). If it is a very temporary problem though, this is often a nice WO-m-k8s-1.20: compromise: WO-m-k8s-1.20: WO-m-k8s-1.20: yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true WO-m-k8s-1.20: WO-m-k8s-1.20: Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again WO-m-k8s-1.20: Failed to execute operation: No such file or directory WO-m-k8s-1.20: Failed to execute operation: No such file or directory The SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed. The output for this command should be in the log above. Please read the output to determine what went wrong. C:\HashiCorp\_Lecture_k8s_learning.kit-main\ch1\1.5\k8s-min-5GiB-wo-add-nodes> * 참고 * 강의에서 다루지 않는 쿠버네티스 범위를 넘는 질문은 쿠버네티스 오픈 채팅 및 유저 그룹을 이용하는게 도움이 될 수 있습니다. (https://open.kakao.com/o/gxSooElb {암호: kubectl}- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
도커와 containerd를 함께 설치하는 이유가 있을까요?
Docker를 설치하면 컨테이너 런타임인 runC도 함께 제공되는게 아닌가요? 별도로 Containerd를 설치하는 이유가 있을까요? 컨테이너 런타임으로써 containerd가 가진 별도의 장점이 있는건가요?
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
Vagrant를 사용하시는 이유가 있을까요?
CentOS나 k8s 환경을 구축하려고할때 Vagrant가 아니더라도 다른 IaC 툴인 terraform이나 pulumi같은 선택지도 존재했을것 같은데, Vagrant를 사용하신 이유가 있을까요? 현업에서도 동일하게 Vagrant를 주로 사용해서 프로비저닝하나요? SE나 NE가 아니고, Ruby가 익숙하지 않은 개발자분들이 프로비저닝을 할때 pulumi가 강점이 있을것 같은데 어떻게 생각하시는지도 궁금합니다!
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
도커로 쿠버네티스 세팅
안녕하세요 강사님. 쿠버네티스를 처음 배움에도 불구하고 강사님의 강의 실력이 너무 출중하셔서 정말 잘 보고 있습니다. 다름이 아니라 docker에서도 쿠버네티스 세팅을 할 수 있는지 궁금해서 이렇게 질문남깁니다. 강사님의 수업을 보면 Virtual box로 강의가 구성되어져있는데 왠지 혼자 처음부터 k8s 설치 해서 마스터 노드와 워커노트를 연결하는거 까지 혼자힘으로 해보고 싶다는 생각이 들어서요 . 혹시 virtual box말고 도커 4개로(한개는 마스터 노드 나머지 3개는 워커노드) 쿠버네티스 환경을 구성할 수 있을까요?
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
CKA 질문
안녕하세요 강사님. 이렇게 좋은 강의를 올려주셔서 감사합니다. 다름이 아니라. 쉽게 배우는 쿠버네티스를 들으면서 CKA를 따고 싶다는 생각이 들어 그림으로배우는 쿠버네티스를 듣고있는데 그림으로 배우는 쿠버네티스를 들으면 굳이 udemy에 있는 강의를 듣지 않아도 CKA를 따는데 큰 무리가 없나요? 즉, udemy의 강의 내용을 해당 강의해서 어느정도 커버를 하고 있는ㄴ 것일까요? 답변 기다리겠습니다. 감사합니다.
- 해결됨그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
실무 관련 연습등 혼자 배운것을 연계해서 해볼 수 있는 자료가 있을까요?
안녕하세요 저는 현재 클라우드 엔지니어로 근무중에 있습니다 추후 쿠버네티스를 하기 위해 따로 공부를 하고 있는 중에 마침 좋은 강좌를 찾아 이 강좌를 구매하였습니다 너무 쉽게 잘 설명해 주셔서 이해가 되었지만 사실 이것을 실무에서는 어떻게 사용하는지 막연한 상태입니다. 뭐 예를 들어, '디플로이먼트로 파드3개를 보장하고 이것이 라운드로빈과 인그레스를 이용하여 통신 해라' 등 실제로 어떻게 연계되서 사용 되는지는 감이 잡히지 않습니다 혹시 이런 토이 프로젝트? 관련하여 개인이 공부 할 수 있는 사이트등이 있을까요? 혹시 이거에 관련하여 따로 강의를 열어주실 의향도 있으신가요 ㅠ 긴글 읽어주셔서 감사합니다
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
안녕하세요 configmap에 대해 질문이 있습니다
강의에서 변경 된 configmap 내용은 자동으로 변경되지 않아서 deployment 를 재배포한다고 하셨는데 1.configmap을 변경할 때 자동으로 재배포가 되게하는 방법은 없는 것인가요?? 2. configmap이 변경 되면 자동으로 롤링 업데이트를 한다거나 하는 방법이 없는 것일까요?
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
nfs마운트에 대해서 질문 드립니다.
강좌를 듣고 pv pvc를 작성하였습니다. 그런데 container에서 마운트를 하면 디렉토리 안에 lost+found만 있고 마운트가 안되있습니다. 무엇이 원인이 될수 있을까요. container:tomcat volumeMounts: - name: pvc-vol mountPath: /app-logs volumes: - name: pvc-vol persistentVolumeClaim: claimName: pvc-nfs 잘 부탁드리겠습니다.
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
rbac rules로 권한을 할당하는데, 어떤 항목들이 있는지 보는 방법이 있을까요?
rbac rules로 권한을 할당하는데, 어떤 항목들이 있는지 보는 방법이 있을까요?
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
책을 보다가 질문이 생겼습니다. Jenkins vs Jenkins X
안녕하세요. 책에서 k8s에서 jenkins를 올려서 CI/CD 환경을 구축하는 예제를 보고 질문을 드립니다. Jenkins X가 k8s환경에서 CI/CD 를 구축하기 위해서 나온걸로 알고 조금 공부를 해보았는데요. https://www.edureka.co/blog/jenkins-vs-jenkins-x/#differences 위 글을 보고 참고를 좀 해보았지만, 실무에서 두가지 모두 사용하고 있지 않다보니 좀이해가 잘 되지않았습니다. 강사님께서는 k8s on jenkins vs Jenkins X 차이점이나 장단점이 어떻게 생각하시는지 궁금합니다. 정답은 없겠지만 강사님은 어떻게 생각하시는지 궁금하여 질문을 남깁니다 :)
- 미해결그림으로 배우는 쿠버네티스("v1.22"-v1.24, v1.27~)
로드벨런서 생성하면, 자동으로 external ip가 할당 되는데, 수동 할당도 할 수 있나요?
로드벨런서 생성하면, 자동으로 external ip가 할당 되는데, 수동 할당도 할 수 있나요?