본문 바로가기

IT

Kubernetes(쿠버네티스) 1 설치 및 활성화

728x90

https://sh970901.tistory.com/40

 

Linux(centOS9) 설정 1(CentOS, Virtural BOX, PuTTy 원격 접속)

Virtural BOX 설치 https://www.virtualbox.org/ Virtural BOX 확장팩 설치 https://www.virtualbox.org/wiki/Downloads CentOS9.iso 설치 https://www.centos.org/download/ PuTTY 설치 https://www.putty.org/..

sh970901.tistory.com

실습 환경은 위에서 포스팅한 CentOS9, VB를 이용하였다.

가상머신 필수사항

  • 프로세서 : 2개 이상
  • 메모리 : 4GB 이상
  • 저장소 : 32GB 이상
  • 네트워크 : 브릿지 네트워크

브리지 추가

브릿지 네트워크가 잘 구성되어 있는지 확인

  • GUEST OS로 ping
    • ping [게스트OS의 브릿지 네크눠크 랜카드 IP]
    • 컴퓨터안에서 VB를 깔고 그 안에서 서버를 설치하면 다른 네트워크에 서버에서 봤을때는 존재하는지 모른다. 
    • 브리지는 랜카드를 추가하면  같은 네트워크에 편입이 된다. 체감상 내 컴퓨터에서 내 옆 컴퓨터한테 요청을 하듯이 접근을 할 수 있다. 보통 카프카는 같은 네트워크를 기반으로 사용하기 때문에 이를 설정 
    • ip addr로 확인하고 ping을 던져볼 수 있다.

랜카드 추가

master 도메인과 호스트네임 설정 => master 서버의 호스트 네임, 도메인을 master로 변경

  • su root
  • root 계정으로 작업
  • 호스트네임 변경
    • vim /etc/hostname
    • master

master 도메인 작업

  • vim /etc/hosts   (내 컴퓨터 안쪽에서만 인식할 수 있는 /etc/hosts 도메인 변경 작업)
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

ip추가 ex) 192.168.0.21    master # 추가
  • ping master

재부팅

  • reboot now

hostname 변경완료

 

firewalld 끄기 및 비활성화

  • systemctl status firewalld
  • systemctl stop firewalld
  • systemctl disable firewalld
  • 쿠버네티스도 여러가지 포트(기본 6443)를 사용하는데 원활한 실습진행을 위해 뚫어놓는다.

selinux 끄기 

  • CentOS에서 보안을 제공하고 있어 접근에 실패하기 때문에 selinux를 끄는 작업
  • sudo setenforce 0

selinux 비활성화

  • sudo sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
  • 재부팅 후에도 안켜짐

 

 

**쿠버네티스 기반: 컨테이너 가상화 기술(docker, containerd, cri-o 등) 

**containerd를 사용할 것이며 이미지 생성을 위한 도커 설치

도커설치 준비

yum install -y yum-utils
yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo

도커, containerd 설치

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

도커, containerd 시작 및 활성화

systemctl start docker
systemctl enable docker
systemctl start containerd
systemctl enable containerd

 

 

containerd 가 CRI를 지원하도록 설정하여, 쿠버네티스가 containerd를 이용할 수 있도록

  • containerd 기본 설정파일 생성 (따로 빼내는 작업)
containerd config default > /etc/containerd/config.toml
  • 설정파일 수정
  • vi /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
  BinaryName = ""
  ...
  SystemdCgroup = true # false 에서 true로 변경
  • containerd 재시작
systemctl restart containerd

 

 

 

 

쿠버네티스 설치 DOCS => https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

개념

  • kubeadm : 클러스터를 부트스트랩하는 명령이다.
  • kubelet : 클러스터의 모든 머신에서 실행되는 파드와 컨테이너 시작과 같은 작업을 수행하는 컴포넌트이다.
  • kubectl : 클러스터와 통신하기 위한 커맨드 라인 유틸리티이다.

kubeadm, kubelet, kubectl 설치 준비

//파일을 생성하고 값을 넣음
cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF

kubeadm, kubelet, kubectl 설치 및 활성화

  • yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
  • sudo systemctl enable --now kubelet