2-2. 쿠버네티스 설치 / PC에 직접 설치하기.

2024. 5. 30. 17:53·쿠버네티스
  1. 쿠버네티스 클러스터를 직접 구성하는 도구
    1.  kubeadm
      • 쿠버네티스에서 공식 제공하는 클러스터 생성/관리 도구
    2. kubespray
      • 쿠버네티스 클러스터를 배포하는 오픈소스 프로젝트
      • 멀티마스터 구현에 적합하도록 구성되어 있음.
      • 다양한 형식으로 쿠버네티스 클러스터 구성 가능
      • 온프레미스 상용 서비스 클러스터 운영시 유용함.
      • 다양한 CNI 제공
      1. CNI이란? (container network interface)
        • container 간의 통신을 지원하는 소프트웨어. VxLAN, Pod Network 라고도 부름.
          • 쿠버네티스 사용을 위해서 바니드시 Container Network Interface설치 필요.
          • 다양한 종류의 플러그인이 존재함 (플라넬, 칼리코, 위브넷 등)
        • 쿠버네티스 클러스터 구성
          • control plane 
            1. 오케스트라에서 지휘자의 역할을 하는 마스터 장비.
            2. 워커노드들의 상태를 관리하고 제어
            3. single master
            4. multi master (3,5개의 마스터 노드들)
          • worker node
            1. 도커 플랫폼을 통해 컨테이너를 동작하며 실제 서비스를 제공
    1. 쿠버네티스 가상머신 구성
      1. 쿠버네티스 가상머신 스펙
      2. 가상머신 목록
        • 클러스터 마스터 노드
          • k8s-master : 10.100.0.104 로 포워딩
        • 워커노드
          • k8s-node1 : 10.100.0.101로 포워딩
          • k8s-node2 : 10.100.0.102로 포워딩
    2. 도커 설치
      1. 도커 설치 명령어
        sudp apt-get update
        sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
        sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
        sudo apt-get update
        sudo apt-get install -y docker-ce docker-ce-cli containerd.io


      2. 도커 활성화 및 설치확인
        systemctl enable docker
        systemctl start docker
        docker version

    3. 쿠버네티스 설치
      1. 참고한 링크
        • https://www.skyer9.pe.kr/wordpress/?p=8209
        • https://macaronics.net/index.php/m02/linux/view/2204 
      2. 설치 명령어 ( 아직 완벽히 설치 못했음)
        master node에서 kubectl get nodes를 입력하면 node1,2가 노출되지 않음
        • master / 워커노드 1,2 모두 입력
          sudo apt update
          sudo sed -i "/#\$nrconf{restart} = 'i';/s/.*/\$nrconf{restart} = 'a';/" /etc/needrestart/needrestart.conf
          sudo apt -y upgrade
          --
          sudo swapoff -a && sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
          --
          sudo ufw disable
          --
          sudo tee /etc/modules-load.d/containerd.conf <<EOF
          overlay
          br_netfilter
          EOF
          --
          sudo modprobe overlay
          sudo modprobe br_netfilter
          --
          sudo tee /etc/sysctl.d/kubernetes.conf <<EOF
          net.bridge.bridge-nf-call-ip6tables = 1
          net.bridge.bridge-nf-call-iptables = 1
          net.ipv4.ip_forward = 1
          EOF
          --
          sudo sysctl --system
          --
          sudo apt-get update
          --
          sudo apt-get install -y \
              ca-certificates \
              curl \
              gnupg \
              lsb-release
          --
          curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
          --
          echo \
            "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
            $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
          --
          sudo apt-get update
          sudo apt-get install -y docker-ce docker-ce-cli containerd.io
          --
          sudo docker version
          --
          sudo systemctl enable docker
          sudo systemctl start docker
          --
          sudo systemctl enable containerd
          sudo systemctl start containerd
          --
          sudo mkdir -p /etc/docker
          cat <<EOF | sudo tee /etc/docker/daemon.json
          {
            "exec-opts": ["native.cgroupdriver=systemd"],
            "log-driver": "json-file",
            "log-opts": {
              "max-size": "100m"
            },
            "storage-driver": "overlay2"
          }
          EOF
          --
          sudo systemctl daemon-reload
          sudo systemctl restart docker
          --
          VER=$(curl -s https://api.github.com/repos/Mirantis/cri-dockerd/releases/latest|grep tag_name | cut -d '"' -f 4|sed 's/v//g')
          echo $VER
          wget https://github.com/Mirantis/cri-dockerd/releases/download/v${VER}/cri-dockerd-${VER}.amd64.tgz
          tar xvf cri-dockerd-${VER}.amd64.tgz
          sudo mv cri-dockerd/cri-dockerd /usr/local/bin/
          --
          cri-dockerd --version
          --
          wget https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.service
          wget https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.socket
          sudo mv cri-docker.socket cri-docker.service /etc/systemd/system/
          sudo sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' /etc/systemd/system/cri-docker.service
          --
          sudo systemctl daemon-reload
          sudo systemctl enable cri-docker.service
          sudo systemctl enable --now cri-docker.socket
          --
          sudo systemctl restart docker && sudo systemctl restart cri-docker
          sudo systemctl status cri-docker.socket --no-pager
          sudo docker info | grep Cgroup
          --
          sudo apt-get update
          sudo apt-get install -y apt-transport-https ca-certificates curl
          --
          curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg
          --
          echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
          --
          curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
          --
          sudo apt-get update
          sudo apt-get install -y kubelet kubeadm kubectl
          sudo apt-mark hold kubelet kubeadm kubectl
          
          --
        • master 에서만 실행
          sudo kubeadm init --cri-socket unix:///var/run/cri-dockerd.sock
          
          아래와 비슷한 메시지가 표시되면 메모장에 복사하기
          kubeadm join 10.100.0.104:6443 --token e7krl6.k5bze1t2xgv8i9vc \
          --discovery-token-ca-cert-hash sha256:188c3a58f5a518fc030c625472dae7fe5ed48de3550b4563d751f7be631f5aac
          --
          mkdir -p $HOME/.kube
          sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
          sudo chown $(id -u):$(id -g) $HOME/.kube/config
          --
          kubectl version
          --
          kubectl get nodes
          --
          kubectl get pods -n kube-system
          --

        • node 1,2 에서 실행
          위에서 복사한 내용 \
                  --cri-socket unix:///var/run/cri-dockerd.sock
        • master에서 실행
          kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml
          --
          kubectl get nodes
          kubectl get pods -n kube-system

설치는 되었는데, 연결이 되지 않고있습니다.

워커노드에서는 연결되었다고 뜨는데 왜 연결이 안된걸까요?? 흠...

혹시 해결하신분 댓글 부탁드립니다.(며칠을 끙끙앓았는데 해결못함)

'쿠버네티스' 카테고리의 다른 글

2-1. 쿠버네티스 설치 / 설치 없이 웹에서 실습하기.  (0) 2024.05.14
쿠버네티스를 배우기 전에.....  (0) 2024.03.29
'쿠버네티스' 카테고리의 다른 글
  • 2-1. 쿠버네티스 설치 / 설치 없이 웹에서 실습하기.
  • 쿠버네티스를 배우기 전에.....
몽자비루
몽자비루
코딩공부 정리용 블로그입니다.
  • 몽자비루
    공부하는 블로그
    몽자비루
  • 전체
    오늘
    어제
    • 분류 전체보기 (170)
      • python (30)
        • python_selenium (16)
        • python_pygame (3)
      • appium (0)
      • 쿠버네티스 (60)
        • linux (8)
        • shell programming (8)
        • docker (18)
        • cka (23)
      • postman&API (16)
      • QA성장하기 (30)
        • 개발자에서 아키텍트로 스터디 (6)
        • 소프트웨어 공학 이해도 높이기 (6)
        • 테스팅 전문 지식 쌓기 (18)
      • 에러일기 (1)
      • Server&load (32)
        • AWS (27)
        • load test (5)
        • CI CD (0)
        • Jmeter (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    개발자에서아키텍트로
    API
    쿠버네티스
    로스트아크api
    공존성테스트
    테스트스크립트
    vi에디터
    애플리케이션로그
    테스트 결과보고서
    테스트 계획서 만들어보기
    LOSTARK
    qa
    k8s
    스터디
    QAKOREA
    리눅스
    application log
    .cpu
    사드웨어리소스
    포스트맨
    네트워크 테스트
    linux
    cka
    로스트아크
    e2c
    앱공존성
    postman
    도커
    python
    테스트 계획서
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
몽자비루
2-2. 쿠버네티스 설치 / PC에 직접 설치하기.
상단으로

티스토리툴바