Chapter01/Kubernetes

[ Kubernetes ] 설치하기

EmmaDev_v 2024. 8. 26. 09:04
 
    네트워크설정
    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

   웹에 접속해서 확인

 

정리해서 올릴거니까,, 좀 기다려주세요

반응형