[K8s] 2. 쿠버네티스 설치 및 구성

히태하태·2022년 3월 3일
0

K8s 쿠버네티스

목록 보기
2/3

2.1 설치없이 쿠버네티스 사용

- 카타코다에서 지원하는 playground (Master/node1 로 구성되어있어 바로 사용가능)
https://www.katacoda.com/courses/kubernetes/playground

2023년 현재는 서비스 종료됨

2.2 설치

  • CNI (Container Network Interface)
    Container 간 통신을 지원하는 VxLAN. POD Network이라고도 부름
    필수적으로 하나는 설치 되어있어야 Container 간 통신 가능
    다양한 종류의 플러그인 존재 [ 플라넬(flannel), 칼리코(calico), 위브넷(weavenet) ]

  • Control plane(Master node)
    woker node 상태 관리 및 제어
    single master
    multi master

  • Worker node
    도커 플랫폼을 통해 컨테이너 동작하며 실제 서비스 제공

2.2.1 환경 구성

  • windows에 VMware 가상 머신을 설치 후, master 1개와 node 2개를 설치 Ubuntu 20.04 LTS 버전으로 설치.


2.2.2 docker 설치

  • Set up the repository
 $ sudo apt-get update
 $ sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  • Repository 등록
    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
  • Install Docker Engine
-- Repository Cache update
$ sudo apt-get update 
-- docker ce, docker cli, continerd io 설치
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  • Docker 설치 확인
    sudo systemctl enable docker
    sudo systemctl start docker
    sudo docker version

2.2.3 kubernetes 설치

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

  • 설치전 환경설정
    kubeadmin 으로 설치 시 , 모든 노드들은 swap off 되어 있어야 한다.
    swapoff -a && sed -i 'swap/s/^/#/' /etc/fstab
  • Letting iptables see bridged traffic (bridge 네트워크를 바라 볼 수 있도록 세팅)
    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
  • port 설정 (방화벽은 disabled 하고 실습. 실제로 앞단에서 방화벽을 다루므로)
    -- 방화벽 사용 시, 활성 포트 목록
    https://kubernetes.io/docs/reference/ports-and-protocols/
    -- 방화벽 disabled 명령어
    systemctl stop firewalld
    systemctl disable firewalld

kubeadm, kubelet, kubectl 설치
kubeadm : the command to bootstrap the cluster.
kubelet : the component that runs on all of the machines in your cluster and does things like starting pods and containers.
kubectl : the command line util to talk to your cluster.

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

  • kubectl 명령어 자동완성
    BASH
    source <(kubectl completion bash)
    source <(kubeadm completion bash)
    echo "source <(kubectl completion bash)" >> ~/.bashrc
    echo "source <(kubeadm completion bash)" >> ~/.bashrc

systemctl start kubelet
systemctl enable kubelet

2.3 구성

kubeadm init : master 에서만 실행. API, controller, schduler, etcd, CoreDNS 구성

2.3.1 Control plane

namespace

profile
시작이 반이다. 일단 시작해보자.

0개의 댓글