inflearn logo
Course

Course

Instructor

boanproject's Posts

boanproject boanproject

@boanproject

Students
106,391
Reviews
3,565
Course Rating
4.7

Posts 449

Q&A

kubeinstall.sh 오류 확인 요청드립니다.

버전이 좀 오래되어서 아래와 같이 변경을 했습니다. 제가 설치해보니 잘 되는데, 한번 교체를 해서 해보시기 바랍니다. #!/usr/bin/env bash # ===================================================================== # Kubernetes 단일 노드(Control-plane + Worker) 설치 스크립트 # 대상 OS : Ubuntu 18.04 / 20.04 / 22.04 (cgroup v1/v2 모두 지원) # 구성 : containerd + kubeadm/kubelet/kubectl v1.30 + Flannel CNI # 사용법 : sudo bash install-k8s.sh # ===================================================================== set -euo pipefail # ---------------------------- 설정값 --------------------------------- K8S_VERSION="${K8S_VERSION:-v1.30}" # Kubernetes 마이너 버전 POD_CIDR="${POD_CIDR:-10.244.0.0/16}" # Flannel 기본 Pod 대역 NODE_IP="${NODE_IP:-$(hostname -I | awk '{print $1}')}" # API 서버 광고 IP KUBE_USER="${SUDO_USER:-$(whoami)}" # kubectl을 사용할 일반 사용자 FLANNEL_URL="https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml" export DEBIAN_FRONTEND=noninteractive log() { echo -e "\n\033[1;32m[$(date +%H:%M:%S)] ==> $*\033[0m"; } if [ "$(id -u)" -ne 0 ]; then echo "root 권한이 필요합니다: sudo bash $0" >&2; exit 1 fi # ------------------------------------------------------------------ log "STEP 1. Swap 비활성화" # ------------------------------------------------------------------ swapoff -a sed -i.bak -E '/\sswap\s/ s/^([^#])/#\1/' /etc/fstab free -h # ------------------------------------------------------------------ log "STEP 2. 커널 모듈(overlay, br_netfilter) 및 sysctl 설정" # ------------------------------------------------------------------ cat /etc/modules-load.d/k8s.conf overlay br_netfilter EOF modprobe overlay modprobe br_netfilter cat /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 EOF sysctl --system >/dev/null sysctl net.bridge.bridge-nf-call-iptables net.ipv4.ip_forward # ------------------------------------------------------------------ log "STEP 3. 방화벽(ufw) 쿠버네티스 필수 포트 허용" # ------------------------------------------------------------------ if command -v ufw >/dev/null 2>&1 && ufw status | grep -q "Status: active"; then ufw allow 22/tcp # SSH ufw allow 6443/tcp # kube-apiserver ufw allow 2379:2380/tcp # etcd ufw allow 10250/tcp # kubelet API ufw allow 10257/tcp # kube-controller-manager ufw allow 10259/tcp # kube-scheduler ufw allow 30000:32767/tcp # NodePort 서비스 ufw allow 8472/udp # Flannel VXLAN ufw allow from "${POD_CIDR}" # Pod 네트워크 내부 통신 ufw allow from 10.96.0.0/12 # Service 네트워크 내부 통신 ufw status numbered fi # ------------------------------------------------------------------ log "STEP 4. 필수 패키지 설치" # ------------------------------------------------------------------ apt-get update -y || true apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release mkdir -p -m 755 /etc/apt/keyrings # ------------------------------------------------------------------ log "STEP 5. containerd 설치 (Docker 공식 저장소)" # ------------------------------------------------------------------ curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \ > /etc/apt/sources.list.d/docker.list apt-get update -y || true apt-get install -y containerd.io # containerd 기본 설정 생성 + SystemdCgroup 활성화 + pause 이미지 지정 mkdir -p /etc/containerd containerd config default > /etc/containerd/config.toml sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml sed -i -E 's#sandbox_image = ".*"#sandbox_image = "registry.k8s.io/pause:3.9"#' /etc/containerd/config.toml systemctl restart containerd systemctl enable containerd containerd --version # ------------------------------------------------------------------ log "STEP 6. kubeadm / kubelet / kubectl 설치 (${K8S_VERSION})" # ------------------------------------------------------------------ curl -fsSL "https://pkgs.k8s.io/core:/stable:/${K8S_VERSION}/deb/Release.key" \ | gpg --dearmor --yes -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] \ https://pkgs.k8s.io/core:/stable:/${K8S_VERSION}/deb/ /" \ > /etc/apt/sources.list.d/kubernetes.list apt-get update -y || true apt-get install -y kubelet kubeadm kubectl apt-mark hold kubelet kubeadm kubectl systemctl enable --now kubelet kubeadm version -o short # ------------------------------------------------------------------ log "STEP 7. kubeadm init (클러스터 초기화)" # ------------------------------------------------------------------ if [ ! -f /etc/kubernetes/admin.conf ]; then kubeadm config images pull kubeadm init \ --pod-network-cidr="${POD_CIDR}" \ --apiserver-advertise-address="${NODE_IP}" \ | tee /root/kubeadm-init.log else echo "이미 초기화된 클러스터입니다 (/etc/kubernetes/admin.conf 존재) - 건너뜀" fi # ------------------------------------------------------------------ log "STEP 8. kubectl 설정 (root, ${KUBE_USER})" # ------------------------------------------------------------------ mkdir -p /root/.kube cp -f /etc/kubernetes/admin.conf /root/.kube/config USER_HOME=$(getent passwd "${KUBE_USER}" | cut -d: -f6) mkdir -p "${USER_HOME}/.kube" cp -f /etc/kubernetes/admin.conf "${USER_HOME}/.kube/config" chown -R "$(id -u "${KUBE_USER}")":"$(id -g "${KUBE_USER}")" "${USER_HOME}/.kube" export KUBECONFIG=/etc/kubernetes/admin.conf # ------------------------------------------------------------------ log "STEP 9. Flannel CNI 설치" # ------------------------------------------------------------------ kubectl apply -f "${FLANNEL_URL}" # ------------------------------------------------------------------ log "STEP 10. 단일 노드에서 Pod 스케줄링 허용 (control-plane taint 제거)" # ------------------------------------------------------------------ kubectl taint nodes --all node-role.kubernetes.io/control-plane- || true # ------------------------------------------------------------------ log "STEP 11. 노드 Ready 대기" # ------------------------------------------------------------------ kubectl wait --for=condition=Ready node --all --timeout=300s kubectl get nodes -o wide kubectl get pods -A # ------------------------------------------------------------------ log "STEP 12. 동작 테스트 (nginx 배포 + NodePort 노출)" # ------------------------------------------------------------------ kubectl create deployment nginx-test --image=nginx --dry-run=client -o yaml | kubectl apply -f - kubectl expose deployment nginx-test --port=80 --type=NodePort --dry-run=client -o yaml | kubectl apply -f - kubectl rollout status deployment/nginx-test --timeout=300s NODE_PORT=$(kubectl get svc nginx-test -o jsonpath='{.spec.ports[0].nodePort}') kubectl get deploy,svc,pods -o wide echo "--- curl http://${NODE_IP}:${NODE_PORT} ---" curl -s "http://${NODE_IP}:${NODE_PORT}" | grep -i " " || true log "설치 완료! 일반 사용자(${KUBE_USER})로 'kubectl get nodes' 를 실행해 보세요." echo "워커 노드 추가 명령: $(kubeadm token create --print-join-command)"

Likes
0
Comments
1
Viewcount
23

Q&A

ubuntu 18.04 다운로드 링크 삭제

https://drive.google.com/file/d/1PR9_k1Uk9xWX5WlpZWqdHGEOTbadls5Q/view?usp=sharing 경로가 옮겨졌습니다. 강의 페이지는 후에 수정하겠습니다.!

Likes
0
Comments
2
Viewcount
66

Q&A

shell.jsp 어디 있나요

공유했던 노션 페이지에 있습니다. https://boanproject.notion.site/Tomcat-2208fabd169f80adbc3ff7b7982730d0

Likes
0
Comments
1
Viewcount
73

Q&A

ESXi 무료 라이센스

우선 강의와 버전을 맞춰 시청하시면 좋기 때문에 구글 드라브에 제공된 이미지로 설치하시고요. 라이센스가 없어도 학습하는 몇개월동안 충분합니다. 그 후에 업데이트 된 버전으로 설치해보시고 학습하시면 좋을거 같습니다.

Likes
0
Comments
2
Viewcount
221

Q&A

다운로드 설치 불가

다운로드 받으신 것은 버추얼박스용이고 vmware용으로 다운로드 받아 압축을 해제하시면 됩니다.

Likes
0
Comments
3
Viewcount
186

Q&A

MSF모듈 사용하기2관련 connection timeout질문입니다

흐음.. 우선 제가 연휴중이라 후에 사무실 가면 테스트 다시 하고 안내드릴게요. 뒤쪽에 2025년 신규로 만든 것부터 하시면 좀 수월한 실습들이 됩니다.

Likes
0
Comments
2
Viewcount
203

Q&A

Google cloud에서 클러스터를 만드는 중에 다음과 같은 오류가 발생합니다.

검색한 내용 두번째 사례 https://lazytechlog.tistory.com/5 7. Machine 타입이 default로 E2로 되어 있는데 강의대로 N1으로 변경하여 진행한다. 이 옵션을 변경하면 vCPU와 Memory 옵션이 바뀐다. GKE Machine configuration 8. 아래쪽으로 내려가면 Boot disk size가 default로 100GB로 되어 있다. 이 상태로 그대로 Create 버튼을 클릭하여 Cluster를 생성한다. 9. 클러스터 생성이 정상적으로 된다면 약 5분 정도의 시간이 걸린다. 그런데 처음 8번 단계까지 진행하고 생성 버튼을 클릭했을 때 SSD 용량이 충분치 않다고 에러 메시지가 뜨면서 정상적으로 처리되지 않았다. 이 region에 디스크 용량이 250GB까지만 가능한 것으로 보여 다른 zone이나 region으로 변경을 시도해봤으나, 다 실패해서 아래의 10번 단계처럼 디스크 사이즈를 줄여서 시도했다. Insufficient regional quota to satisfy request: resource "SSD_TOTAL_GB": request requires '300.0' and is short '50.0'. project has a quota of '250.0' with '250.0' available. View and manage quotas at https://console.cloud.google.com/iam-admin/quotas?usage=USED&project=XXXX 10. Boot disk size를 80GB로 조정했다. 노드가 3개이므로 총 250GB 내로 되게 하려면 가능한 최대 숫자라고 생각했다. 이 값으로 조정 후 정상적으로 Cluster 생성이 되었다. 약 5분 정도 걸린다. GKE Boot disk size

Likes
0
Comments
2
Viewcount
210

Q&A

Google cloud에서 클러스터를 만드는 중에 다음과 같은 오류가 발생합니다.

제가 지금은 PC로 테스트가 힘들어서 검색한 것을 아래와 같이 우선 안내합니다. 300GB초과가 되어서 발생하는 부분이고. "요청을 충족할 지역 할당량이 부족합니다. 리소스 "SSD_TOTAL_GB": 요청에는 '300.0'**이 필요하지만 '50.0'이 부족합니다. 프로젝트의 할당량은 '250.0'이며, '250.0'을 사용할 수 있습니다. " 왼쪽 대시보드 메뉴에서 클러스터 기본 사항 아래에 있는 노드 풀로 이동합니다. 드롭다운 옵션 default-pool에서 노드를 선택하세요. 이제 "노드 설정 구성"에서 부팅 디스크 크기를 기본값인 100GB에서 75GB 정도로 설정하여 총 75*3이 여유 할당량 내에서 줄어들도록 합니다. 따라서 이 경우 225GB는 클러스터 모드가 "표준" 인 250GB 할당량보다 작습니다. 클러스터 만들기를 클릭했더니 다른 문제 없이 클러스터가 생성되었습니다. 아니면 아래와 같이 unlimit 인 지역을 선택하셔서 사용하셔도 됩니다.

Likes
0
Comments
2
Viewcount
210

Q&A

vyos-router

윈도우 서비스에서 vmware 과 관련된 것을 확인해서 아래와 같이 DHCP Service도 제대로 동작되는지 확인해보세요. 만약 수동으로 실행을 했는데, 바로 또 멈추면.. vmware workstation을 다시 설치를 권고합니다.

Likes
0
Comments
3
Viewcount
218

Q&A

vyos-router

DHCP가 안잡혔다는 것은 WAN쪽에 vmware networks 잘 설정이 되어 있는지 확인해보시기 바랍니다. vmware 워크스테이션의 NAT나 Bridge가 제대로 네트워크가 된다면, vmware networks 가 DHCP로 된다면 무조건 할당이 될 것인데요.. 흐음..

Likes
0
Comments
3
Viewcount
218