일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- deep learning
- regression
- 티스토리챌린지
- 회귀
- 딥러닝
- 오블완
- LG Aimers
- Machine Learning
- ChatGPT
- 머신러닝
- GPT-4
- 지도학습
- OpenAI
- gpt
- 분류
- LG
- LLM
- Classification
- 해커톤
- supervised learning
- PCA
- LG Aimers 4th
- AI
Archives
- Today
- Total
SYDev
[Docker & Kubernetes] 4주차 정리 (2) - Chapter 8. 쿠버네티스 실습 환경 구축 본문
8.1. 사전 준비 사항
8.1.1. 가상머신 복제
8.1.2-4. Ubuntu 가상머신 네트워크 설정
8.1.5. UFW 방화벽 설정
-> inacitve 상태이므로, 해당 과정은 생략
8.1.6. 네트워크 설정
- sudo -i: 루트 권한 획득
- tee: 명시한 파일로 출력(저장)되고, stdout으로도 출력되는 명령어
- overlay: 리눅스 커널의 네트워크 드라이버 -> 서로 다른 host에 존재하는 pod 간의 네트워크 연결을 가능하게 함 -> 여러 개의 독립적인 네트워크 레이어를 겹쳐서 하나로 연결된 네트워크 생성
- overlay를 활용하면 서로 다른 호스트에 존재하는 pod가 동일한 네트워크에 존재하는 것처럼 통신 가능
- br_netfilter: 네트워크 패킷 처리 관련 모듈 -> iptables/netfilter 규칙 적용 -> 컨테이너와 호스트 간의 interface 등에서 발생하는 트래픽에 대해 규칙을 적용하여 트래픽 관리
- EOF: 문서의 마지막
- modeprobe: 리눅스 커널 모듈 관리 도구 -> 특정 모듈을 로드하거나 제거
- sysctl 매개변수를 설정하면, 재부팅 후에도 값 유지
- 브릿지 네트워크 인터페이스에 대한 ipv4 트래픽이 iptables 규칙에 의해 처리되도록 설정
- ipv6에 대해 iptables 처리
- 커널이 처리하는 패킷에 대해 외부로 ip4 포워딩 가능하게 설정
- sysctl: 재부팅 없이 매개변수 적용
-> 모든 가상머신에 똑같이 적용
8.1.7. containerd 설정
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo vim /etc/containerd/config.toml
-> containerd를 쿠버네티스에서 컨테이너 런타임으로 사용할 수 있도록 설정 변경
sudo systemctl restart containerd
sudo systemctl enable containerd
sudo systemctl status containerd
8.1.8. swap 메모리 비활성화
- 쿠버네티스는 수많은 컨테이너를 동시 관리 -> 원할하게 컨테이너를 관리하려면 swap 메모리 영역을 비활성화 해야 함
-> free -h: 메모리 공간 확인
-> swap 메모리 할당 확인
-> swapoff --all: swap 메모리 비활성화
-> /etc/fstab의 해당 내용을 주석처리 -> 재부팅했을 때 swap 메모리가 다시 활성화 X
-> 모든 노드에 동일하게 작업
8.2. 쿠버네티스 설치
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo mkdir -p /etc/apt/keyrings
echo "deb [signed-by=/etc/apt/keyrings/kubernetes.gpg] https://apt.kubernetes.io/kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes.gpg
sudo apt-get update
sudo apt-get install -y kubelet=1.26.5-00 kubeadm=1.26.5-00 kubectl=1.26.5-00
sudo apt-mark hold kubelet kubeadm kubectl
-> 오류 발생
해결법
https://littlemobs.com/blog/kubernetes-package-repository-deprecation/
-> 모든 노드에 설치
8.2.2. 마스터 노드 설정
-> 인증이 하나도 안 된 상태
-> kubeadm이 사용할 수 있는 이미지 리스트
-> 쿠버네티스 설치에 필요한 이미지 다운로드
sudo kubeadm config images pull --cri-socket /run/containerd/containerd.sock
-> CRI를 containerd로 설정
kubeadm init --apiserver-advertise-address=10.0.2.4 --pod-network-cidr=192.168.0.0/16 --cri-socket /run/containerd/containerd.sock
- kubeadm init: 초기화
- --apiserver-advertise-address: 쿠버네티스 마스터 노드 ip 주소 입력
- --pod-network-cidr: 네트워크 대역 설정
- calico를 사용하는 경우 192.168.0.0/16
-> 워커 노드와 마스터 노드를 연결할 때 사용할 구문 -> 따로 저장해놓자$
- 쿠버네티스 설정을 저장할 새 디렉토리 생성
- 기존 설정 파일을 새 디렉토리로 복사
- 설정 디렉토리 소유자와 그룹을 변경 -> 현재 사용자가 사용할 수 있도록 변경
-> calico 설치를 위해 URL에 존재하는 yaml 파일 실행
curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.3/manifests/custom-resources.yaml -O
kubectl create -f custom-resources.yaml
-> calico 설치를 위한 커스텀 리소스 설치
-> yaml을 활용해 calico 설치
+ calico-system 확인 과정에서 오류 발생 -> 해결중
참고자료
- "한 권으로 배우는 도커 & 쿠버네티스", 장철원, 한빛미디어, 2024.04.29
'KHUDA 6th > Study' 카테고리의 다른 글
[Docker & Kubernetes] 5주차 정리 (1) - Chapter 9. 쿠버네티스 기초 (0) | 2024.08.20 |
---|---|
[핸즈온 AWS] Chapter 6. AWS 데이터베이스 서비스 (1) | 2024.08.14 |
[Docker & Kubernetes] 4주차 정리 (1) - Chapter 7. 쿠버네티스의 기본 구조 (0) | 2024.08.10 |
[핸즈온 AWS] Chapter 5. AWS 스토리지 서비스 (0) | 2024.08.07 |
[핸즈온 AWS] Chapter 4. AWS 부하분산 서비스 (0) | 2024.08.07 |