Kubernetes/실습

[kubernetes] control-plane(master) node 설치 과정(cri-o)

아무일도없었다 2024. 3. 13. 16:26

설치 환경 및 버전

  • Rocky Linux 9.3
  • Linux 5.14 el9 x86_64
  • kubernetes v1.29.2
  • cri-o 1.30.0

 

아래 모든 과정은 root 계정으로 진행했습니다.

 

설치 과정

1. SELINUX 해제

  • /etc/sysconfig/selinux 에서 SELINUX=disabled로 설정
    selinux disabled
  • selinux 해제
setenforce 0

 

 

 

2. 방화벽 해제 (선택)

systemctl stop firewalld
systemctl disable firewalld

 

방화벽을 해제하지 않는 경우 필수 Port들을 허용해야 한다.
(ex: 6443, 10250 ... )

 

3. Swap 해제

  • /etc/fstab 에서 swap 부분 삭제 또는 주석처리

swap 해제

 

  • swap disable
swapoff -a

 

 

4. Kubernetes 설치 (CRI-O)

sudo cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
EOF

 

  • cri-o yum repo 등록
cat <<EOF | tee /etc/yum.repos.d/cri-o.repo
[cri-o]
name=CRI-O
baseurl=https://pkgs.k8s.io/addons:/cri-o:/prerelease:/main/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/addons:/cri-o:/prerelease:/main/rpm/repodata/repomd.xml.key
EOF

 

  • package 종속성 설치
dnf install -y container-selinux

 

  • package 설치 (kubernetes & cri-o)
dnf install -y cri-o kubelet kubeadm kubectl

 

 

5. Container Runtime Engine 실행 (cri-o)

systemctl start crio.service

 

 

6. Cluster bootstrap

  • br_netfilter 모듈 load
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# sysctl params required by setup, params persist across reboots
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# Apply sysctl params without reboot
sudo sysctl --system

 

  • kubernetes control-plane 설치
kubeadm init

 

정상적으로 설치 완료되었다면 kubeadm join ~~~ 명령어가 나오는데 이를 worker node 설치 후 실행하면 방금 설치한 control plain node에 join 할 수 있다.

 

 

7. Cluster 설치 확인

  • kubectl 사용을 위한 kubernetes config 파일 복사
mkdir ~/.kube
cp /etc/kubernetes/admin.conf .kube/config

 

  • kubernetes 설치 확인
kubectl get nodes

 

node 확인 (NAME은 hostname이다)

 

 

 

참고 사이트

반응형