55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결대세는 쿠버네티스 [초급~중급]
파드 외부통신 질문입니다.
만약 같은 일을 하는 pod가 6개 올라가있고 서비스를 통하여 통신한다치면 (pod1, 2, 3, 4, 5, 6) pod1번만 딱 찝에서 외부에서 통신할 수 있는 방법이 있나요? 공식문서를 보니 저걸 사용하는 경우에는 pod 1번의 xx.xx.xx.xx:8080/api~~ (xx.xx.xx.xx 클러스터 ip)에 클러스터 외부에서 접근이 가능하다는 말인가요?
- 미해결대세는 쿠버네티스 [초급~중급]
뭔가 잘하고 있나 의문이 들어 문의드립니다.
안녕하세요 쿠버네티스 공부한지 거진 2달이 되어가는데이런식으로 계속 공부 하고 있습니다helm으로 받아 설치하고 에러 고치고 로드밸런서로 서비스도 열고 pvc pv도 만들고 하면서 하고 있긴 한데받았을때 어떤걸 고쳐야 하는지 내 환경에 맞추려면 어떻게 해야하는지 같은서로 연동시키는 방법이라던지 이런게 진짜 잘하고 있는지 말해 줄 수 있는 사람이 없어서..뭐랄까 이게 진짜 잘 하고 있는건가? 이런 생각이 듭니다막막하기만 해서 쿠버네티스를 다룬다 라는게 정확히 뭔지 모르겠습니다..
- 미해결대세는 쿠버네티스 [초급~중급]
좀전에 질문드린 vagrant up은 해결
download관련한 문제는 해결이 되었습니다. 하지만 모두 install후에 jon.sh파일에 아무것도 생성되지 않고 있네요 수동으로 설정을 해보았는데 [root@k8s-master ~]# kubeadm token create --print-join-command > ~/join.sh failed to load admin kubeconfig: open /root/.kube/config: no such file or directory To see the stack trace of this error execute with --v=5 or higher 이런 메세지만 보이네요 좋은 방법이 없을까요?
- 미해결대세는 쿠버네티스 [초급~중급]
vagrant up 오류
설치중에 아래의 메세지에서 계속해서 멈춰있는 상황입니다. 어떤 문제가 있을지 궁금합니다. 해당 url의 download는 정상적으로 보여집니다. 확인 부탁드립니다 -C:\Users\myoun\k8s>vagrant up Bringing machine 'k8s-master' up with 'virtualbox' provider... Bringing machine 'k8s-node1' up with 'virtualbox' provider... Bringing machine 'k8s-node2' up with 'virtualbox' provider... ==> k8s-master: Box 'centos/7' could not be found. Attempting to find and install... k8s-master: Box Provider: virtualbox k8s-master: Box Version: >= 0 ==> k8s-master: Loading metadata for box 'centos/7' k8s-master: URL: https://vagrantcloud.com/centos/7 ==> k8s-master: Adding box 'centos/7' (v2004.01) for provider: virtualbox k8s-master: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box ==> k8s-master: Box download is resuming from prior download progress
- 미해결대세는 쿠버네티스 [초급~중급]
1.22 버전 쿠버네티스 설치시
안녕하세요 강의를 다시 들으면서 1.22 버전 쉽게 설치하는 것으로 진행했습니다. 문제가 있는데요 Agro 관련해서 helm 차트 이용하여 설치하려고 합니다. 다만 문제는 현재 외부와 통신이 안되네요 network-script 수정도 해보고 hosts 파일도 수정을 했는데요 외부와 통신이 안됩니다.. ping 8.8.8.8 안되는 것도 당연하구요 network-sciprt에 DNS 를 8.8.8.8 로도 추가해보고 했는데 통신이 안됩니다.. 혹시 제가 실수한게 있을까요? 감사합니다.
- 미해결대세는 쿠버네티스 [초급~중급]
docker limit 으로 이미지를 못 받아올 때는 어떻게 하는 게 좋나요?
이미지를 받아올 때 docker limit 제한이 걸릴 때가 있습니다. 이를 해결하기 위한 방법이 있을까요?
- 미해결대세는 쿠버네티스 [초급~중급]
자원 수정 python client
yaml파일에서 말고 python client api를 이용해서 할당된 자원 양 (cpu/memory)을 바꿀 수 있는 방법이 있나요? 직접 스케쥴링 알고리즘을 구현해보고 싶어서요. 감사합니다.
- 미해결대세는 쿠버네티스 [초급~중급]
1.22버전으로 강의를 진행하고 있어서 StorageOS를 설치하지 못했습니다.
Volume 실습 이후에도 StorageOS를 사용하는 실습이 있어서 강의 진행에 어려움이 있습니다. 설치할 방법이 없을까요? 아니면 StorageOS 대신 쓸 수 있는 프로그램이 있나요?
- 미해결대세는 쿠버네티스 [초급~중급]
도커지원을 하지 않는 쿠버네티스
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md Docker runtime support using dockshim in the kubelet is now completely removed in 1.24. 도커런이랑 도커심 지원 안한다는데 그냥 강의 보고 배워도 되나요?
- 해결됨대세는 쿠버네티스 [초급~중급]
calico init, nodes unready
안녕하세요, 강사님! 저는 강사님의 쿠버네티스 최신설치 버전(vagrant file)으로 master, node1,node2를 설치한 상태에서 vagrant file을 수정해 node3, node4를 추가해 설치 진행하고 있습니다. 설치 후, 아래와 같은 상황을 맞닥뜨려 문의드립니다. <문제 상황> 새로 추가한 node3, node4 가 unready 상태입니다..! kubectl get pods --all-namespaces를 했을 때, node3, 4에 대응하는 calico node 2개만 init 상태이고, describe node를 해보았더니 status가 unknown이라고 뜹니다. 왜 이런지 알 수 있을까요?
- 미해결대세는 쿠버네티스 [초급~중급]
vagrant up 오류
다음과 같은 오류가 발생합니다 ㅠ무엇이 문제일까요
- 해결됨대세는 쿠버네티스 [초급~중급]
쿠버네티스 최신 버전 설치(vagrant file)가 완료된 상태에서 노드 개수를 늘릴 수는 없나요?
강사님, 유익한 강의 잘 듣고 있습니다. 혹시 이미 vagrant file로 설치된 상태에서, vm 개수를 늘릴 수 있을까요? vagrant file 코드를 진행중인 상태에서 변경하면 오류가 날까요? 세개의 노드를 더 설치하고 싶어서 여쭙니다! (최신버전_vagrant file로 환경 구축을 완료하고 여러 실습을 진행한 상태입니다.)
- 미해결대세는 쿠버네티스 [초급~중급]
kubernetes HA 문의드립니다
안녕하세요 kubernetes master 를 두대를 만들어서 고가용성 HA 로 구성하면 Active-Active 방식인지 아니면 Active-StandBy 방식인지 문의드립니다 도큐먼트를 검색했는데 알수가 없어서 질문드립니다 미리 감사드립니다. 참조: https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/ha-topology/
- 미해결대세는 쿠버네티스 [초급~중급]
Vagrant k8s 설치오류
C:\Users\kb660\k8s> vagrant up 'vagrant'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다 밑에 부분 진행 후 위의 vagrant up 진행시에 메세지가 이렇게 뜨곤하는데 해결방법이 어떻게될까요? :\Users\사용자>mkdir k8s C:\Users\사용자>cd k8s C:\Users\사용자\k8s> curl -O https://kubetm.github.io/yamls/k8s-install/Vagrantfile
- 미해결대세는 쿠버네티스 [초급~중급]
물리서버 자체에 쿠버네티스 설치 관련 문의 드립니다.
안녕하세요, 강사님. 수업 잘 듣고 있습니다. 제가 남는 sever 한 대 자체를 리눅스 서버로(centos7) 구성하는 중에 있습니다. (강사님 강의자료 설치 Case 1) [1] ip 관련 질문 제 server은 lan선으로 연결되며, 128 대역을 사용하고 있습니다. (할당 해줄 IP(해당 대역 내 사용할 ip)는 128. 134.233.250 입니다.) 그렇다면 VM 설치 시 해당 부분을 128.134.233.250, 128.134.233.1 로 바꿔주고 1. Test this media & install CentOS 7 2. Language : 한국어 3. Disk 설정 [시스템 > 설치 대상] - [기타 저장소 옵션 > 파티션 설정] 파티션을 설정합니다. [체크] 후 [완료] - 기존에 파티션이 설정되어 있으면 하나씩 선택해서 [-] 버튼으로 삭제 - 새로운 CentOS 설치 > 여기를 클릭하여 자동으로 생성합니다. [클릭] - /home [클릭] 후 용량 30 GiB로 변경 [설정 업데이트 클릭] - / [클릭] 후 /home에서 뺀 GiB 만큼 추가해서 GiB 수정 후 [설정 업데이트 클릭] - [완료], [변경 사항 적용] 4. 네트워크 설정 [시스템 > 네트워크 및 호스트명 설정] - 호스트 이름: physical-host [적용] - 이더넷 [켬], [설정], [IPv4 설정] 탭 - 방식: 수동으로 선택, - [Add] -> 주소: 128.134.233.250, 넷마스크 : 255.255.255.0, 게이트웨이: 128.134.233.1, DNS 서버 : 8.8.8.8 [저장][완료] 5. 설치시작 6. [설정 > 사용자 설정] ROOT 암호 설정 7. 설치 완료 후 [재부팅] (재부팅 시에는 USB 빼는거 잊지 마세요) VM 설치 시에도 1. Test this media & install CentOS 7 2. Language : 한국어 3. Disk 설정 [시스템 > 설치 대상] - [기타 저장소 옵션 > 파티션 설정] 파티션을 설정합니다. [체크] 후 [완료] - 새로운 CentOS 설치 > 여기를 클릭하여 자동으로 생성합니다. [클릭] - /home [클릭] 후 용량 5.12 GiB로 변경 [설정 업데이트 클릭] - / [클릭] 후 140 GiB 변경 후 [설정 업데이트 클릭] - [완료], [변경 사항 적용] 4. 네트워크 설정 [시스템 > 네트워크 및 호스트명 설정] - 호스트 이름: k8s-master [적용] - 이더넷 [켬], [설정], [IPv4 설정] 탭 - 방식: 수동으로 선택, - [Add] -> 주소: 128.134.233.x, 넷마스크 : 255.255.255.0, 게이트웨이: 128.134.233.1, DNS 서버 : 8.8.8.8 [저장][완료]5. 설치시작 6. [설정 > 사용자 설정] ROOT 암호 설정 7. 설치 완료 후 [재부팅] 로 바꾸면 될까요..? 아니면 vm은 상관 없을까요? 만약 해당 대역(128.134.233.x)로 할당 받는다면, it팀 쪽에 문의를 넣어야 하는 상황이라 여쭤봅니다. [2] centOS 설치 관련 질문 (+ 설치 과정 상에서 black screen 오류가 계속 나오고 있습니다. 이건 더 구글링 해 볼게요!) 설치 시 이더넷 연결 버튼이 잡히지(뜨지) 않습니다. 혹시 제가 브리지 모드를 추가한 다음 ipv4 설정 탭에 가서 주소, 넷마스크, 게이트웨이, dns를 입력해도 될까요?
- 미해결대세는 쿠버네티스 [초급~중급]
ingress의 트래픽 룰도 설정할수 있을까요?
worker1, 2번에 echo용 nginx를 8080포트로 구동했습니다. ingress는 nodeport로 구성해서 worker1번으로 요청했는데 worker2번의 echo용 nginx로 밸런싱 되더라구요 확인해보니까 echo용 nginx의 서비스에 설정된 endpoint(실제 pod ip)를 ingress가 차용하는것 같습니다. 혹시 externalTrafficPolicy: Local 정책처럼 해당 노드에서 전부 처리되게 ingress 룰을 바꿀 수 있을까요? ex) worker 1의 ingress nodePort -> worker 1의 echo용 nginx pod 검색해도 안나와서 여쭤봅니다 ㅠㅠ
- 미해결대세는 쿠버네티스 [초급~중급]
Mac유저 XShell 설치여부
안녕하세요 ~ 이제 막 XShell부터 최신판 올려주신 거 보고있습니다. 지금 설치 강의가 k8s v1.15 와 k8s v1.22 버전 두개가 있는데 1.15버전 건너뛰고 최신버전 강의를 들으면 되는건가요? XShell 부분에서 설치가 어려운데, 이게 맥에서 터미널 역할을 하는건가요~? XShell은 안깔고 2.VirutalBox 부터 시작하면 되는건지 묻고싶습니다. 강의 두번째 VirtualBox 설치하고 난 후에도 이렇게 뜨고요. OS는 지원안해주는거 같은데 어떻게해야하죠..? You can’t open the application “VirtualBox-6.1.26-145957-Win.exe” because Microsoft Windows applications are not supported on macOS.
- 미해결대세는 쿠버네티스 [초급~중급]
쿠버네티스 설치용 vagrant file
안녕하세요, 강사님! 수업 잘 듣고 있습니다. 블로그에 올려주신 '쿠버네티스 설치_최신버전'에 있는 vagrant file에 관한 질문인데요. Node 개수를 늘리고 싶다면 (예: 4개) 상단에 있는 NodeCnt를 4로 바꾸기만 하면 될까요? (NodeCnt = 2 -> NodeCnt = 4) -------아래 코드를 입력하면 될까요?------------------------------------------------------------------------ NodeCnt = 4 Vagrant.configure("2") do |config| # config.vbguest.installer_options = { allow_kernel_upgrade: true } config.vm.box = "centos/7" config.vm.provider :virtualbox do |vb| vb.memory = 3072 vb.cpus = 4 end config.vm.provision :shell, privileged: true, inline: $install_common_tools config.vm.define "k8s-master" do |master| master.vm.hostname = "k8s-master" master.vm.network "private_network", ip: "192.168.56.30" master.vm.provision :shell, privileged: true, inline: $provision_master_node end (1..NodeCnt).each do |i| config.vm.define "k8s-node#{i}" do |node| node.vm.hostname = "k8s-node#{i}" node.vm.network "private_network", ip: "192.168.56.#{i + 30}" end end end $install_common_tools = <<-SHELL # ssh password 접속 활성화 sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config; systemctl restart sshd.service # 방화벽 해제 systemctl stop firewalld && systemctl disable firewalld systemctl stop NetworkManager && systemctl disable NetworkManager # Swap 비활성화 swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab # br_netfilter 모듈 로드 cat <<EOF | tee /etc/modules-load.d/k8s.conf br_netfilter EOF # Iptables 커널 옵션 활성화 cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system # permissive 모드로 SELinux 설정(효과적으로 비활성화) setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config # 쿠버네티스 YUM Repository 설정 cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg exclude=kubelet kubeadm kubectl EOF # Centos Update yum -y update # Hosts 등록 cat << EOF >> /etc/hosts 192.168.56.30 k8s-master 192.168.56.31 k8s-node1 192.168.56.32 k8s-node2 EOF # 도커 설치 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y containerd.io-1.4.9-3.1.el7 docker-ce-3:20.10.8-3.el7.x86_64 docker-ce-cli-1:20.10.8-3.el7.x86_64 mkdir /etc/docker cat > /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] } EOF mkdir -p /etc/systemd/system/docker.service.d # 도커 재시작 systemctl daemon-reload systemctl enable --now docker # 쿠버네티스 설치 yum install -y kubelet-1.22.0-0.x86_64 kubeadm-1.22.0-0.x86_64 kubectl-1.22.0-0.x86_64 --disableexcludes=kubernetes systemctl enable --now kubelet SHELL $provision_master_node = <<-SHELL # 쿠버네티스 초기화 명령 실행 kubeadm init --apiserver-advertise-address 192.168.56.30 --pod-network-cidr=20.96.0.0/12 kubeadm token create --print-join-command > ~/join.sh # 환경변수 설정 mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config # Kubectl 자동완성 기능 설치 yum install bash-completion -y source <(kubectl completion bash) echo "source <(kubectl completion bash)" >> ~/.bashrc # Calico 설치 curl https://docs.projectcalico.org/manifests/calico.yaml -O kubectl apply -f calico.yaml # Dashboard 설치 kubectl apply -f https://kubetm.github.io/yamls/k8s-install/dashboard-2.3.0.yaml nohup kubectl proxy --port=8001 --address=192.168.56.30 --accept-hosts='^*$' >/dev/null 2>&1 & SHELL ------------------------------------------------------------------------------------------------------------
- 미해결대세는 쿠버네티스 [초급~중급]
PV RWO 할당 기준 - node vs pod
안녕하세요 강사님. 강의 중간에 5:19 정도에 replicaset으로 pod 5개 생성시에 PVC로 dynamic PV를 생성하는데요 PV가 RWO여서 node1에 먼저 생긴 Pod들은 생성되지만 node2에 생성되는 Pod들은 생성이 실패되는데요. PV RWO를 할당하는 기준은 node인것이죠, Pod가 먼저 생긴 노드. RWM, ROM 은 여러 node가 PV를 동시에 할당할수 있는것이라고 생각하면 될까요
- 미해결대세는 쿠버네티스 [초급~중급]
pod 생성시 cluster IP로 노출
- 교육과정을 죽 학습하다가 이전의 과정이 궁금해지는 점이 있어서 문의 올립니다. - Pod실습에서 pod 생상하고 나면 Cluster IP가 할당이 되었어요, containerPort를 사용했어요 - 이후 과정에서는 모두 Service controller를 사용해서 Service에 TargetPort를 사용해서 10.x.x.x대역 IP로 접근을 했구요 여기서 궁금한것이. Pod실습에서처럼, containerPort를 할당하면 모든 Pod들은 pod IP가 아닌 cluster IP 만 가지게 되는것인지요? pod내의 container는 localhost IP로만 통신을 하게 되는것인지요 ? container별로 다른 IP 는 할당되는것이 없는지 궁금합니다.