네트워크설정
apt install net-tools
vi /etc/netplan/00-installer-config.yaml
network:
ethernets:
enp0s3:
dhcp4: no
dhcp6: false
addresses:
- 192.168.48.20/16
nameservers:
addresses: [8.8.8.8]
routes:
- to: default
via: 192.168.0.1
version: 2
netplan apply
호스트네임 변경
hostnamectl set-hostname master
hostname
vi /etc/hosts
192.168.48.25 master
192.168.48.26 worker1
192.168.48.27 worker2
192.168.48.28 worker3
ping master
ping worker
타임존설정
timedatectl
timedatectl set-timezone Asia/Seoul
timedatectl
스왑메모리 비활성화
sudo swapoff -a && sudo sed -i 's/\/swap.img/#\/swap.img/g' /etc/fstab
CA인증키 저장 패키지, curl, 인증키 관리 도구 설치
sudo apt-get install ca-certificates curl gnupg
키 저장할 디렉토리 생성, 소유자는 다 사용자는 읽기랑 실행 권한 부여
sudo install -m 0755 -d /etc/apt/keyring
도커 키 다운로드
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gnupg
읽기 권한 부여
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Docker 패키지 저장소를 APT 소스 리스트에 추가 ( apt install로 Docker를 설치할 수 있게 됨)
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu\"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
도커설치
apt list -a docker-ce
apt-get install -y docker-ce=5:23.0.3-1~ubuntu.22.04~jammy docker-ce-cli=5:23.0.3-1~ubuntu.22.04~jammy containerd.io=1.6.21-1
docker version
systemctl status containerd
Kubernetes 클러스터 네트워크 설정, 적용
cat << EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sudo sysctl --system
apt-get update
apt-get upgrade
외부저장소에서 패키지 가져오는거, http사용할때 CA 인증서, curl 다운로드
apt-get install -y apt-transport-https ca-certificates curl
키 다운로드 서명 키 저장
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.26/deb/Release.key | sudo gpg --dearmor -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:/v1.26/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt-get update
kubelet, kubeadm, kubectl 패키지 설치
apt-get install -y kubelet=1.26.9-1.1 kubeadm=1.26.9-1.1 kubectl=1.26.9-1.
mkdir -p -m 755 /etc/apt/keyrings
cd kubernetes/
ll
컨테이너 런타임 동작 방식 설정, 재시작해서 적용
vi containerd/config.toml
#root와 state는 containerd의 데이터를 저장하고 관리하는 주요 경로
#cri 플러그인 설정은 Kubernetes와의 통합을 위한 설정으로, 네트워킹(CNI)과 샌드박스 이미지, 스트리밍 관련 설정
#registry 설정은 이미지를 가져올 때 사용하는 인증과 보안 설정
systemctl status containerd
systemctl restart containerd
쿠버네티스 초기화
kubeadm init --upload-certs --ignore-preflight-errors=all
Kubernetes의 kubectl 명령어가 사용할 클러스터 설정 파일(config)을 저장하는 디렉토리 생성
mkdir -p $HOME/.kube
dmin.conf 파일은 Kubernetes 클러스터의 관리자 인증 정보 및 설정을 포함하고 있으며, 이를 복사하여 사용자가 kubectl을 통해 클러스터와 상호작용할 수 있게 설정
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
복사한 설정 파일의 소유권을 현재 사용자에게 부여하여, 사용자가 해당 파일을 수정하거나 읽을 수 있도록함
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl 명령어가 클러스터와 통신할 때 어떤 설정 파일을 사용할지 지정하는 환경 변수
export KUBECONFIG=/etc/kubernetes/admin.conf
워커에 tocken으로 join하기
확인
kubectl get nodes -A
cd kubernetes/
ll
로그 모니터링
journalctl -u kubelet -f
칼리코 다운로드 후 적용
kubectl apply -f calico.yaml
kubectl get nodes
Ready됐나 확인
nginx 서비스로띄우기
cd ~
vi nginx-pod.yaml
kubectl apply -f ~/nginx-pod.yaml
kubectl get pod
vi nginx-service.yaml
kubectl apply -f ~/nginx-service.yaml
kubectl get services
kubectl get nodes -o wide
웹에 접속해서 확인
정리해서 올릴거니까,, 좀 기다려주세요
반응형
'Chapter01 > Kubernetes' 카테고리의 다른 글
[ Kubernetes ] 자주 쓰는 명령어 (0) | 2025.02.25 |
---|---|
[ Kubernetes ]MetalLB와 Ingress 사용해 배포하기 (2) | 2024.09.30 |
[ Kubernetes ] MetalLB와 Ingress를 사용해 외부에서 접근 가능한 인프라 구축 (0) | 2024.09.30 |
[ Kubernetes ] .yaml로 Nginx Pod을 K8S cluster에 배포하기 (0) | 2024.09.03 |
에러모음_혼자기록한거 (0) | 2024.09.03 |