https://kubernetes.io/ko/docs/setup/
공식 문서에 한글 버젼으로도 잘 설명되있다.
Node | OS | CPU | Memory | IP Address |
---|---|---|---|---|
Master | Centos | 4 Core | 4096MB | 192.168.56.11 |
Node1 | Centos | 2 Core | 2048MB | 192.168.56.101 |
Node2 | Centos | 2 Core | 2048MB | 192.168.56.102 |
Proxmox를 VM 환경으로 사용해 구성하였습니다.
sudo firewall-cmd --add-port 6443/tcp --permanent
sudo firewall-cmd --add-port 2379-2380/tcp --permanent
sudo firewall-cmd --add-port 10250-10252/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --add-port 10250/tcp --permanent
sudo firewall-cmd --add-port 30000-32767/tcp --permanent
sudo firewall-cmd --reload
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
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
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
쿠버네티스에서 Swap Memory 사용 시 속도가 저하된다. 따라서 스왑을 꺼주자.
sudo swapoff -a
sudo sed -i
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install containerd.io
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
# 필요한 sysctl 파라미터를 설정하면 재부팅 후에도 유지된다.
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
# 재부팅하지 않고 sysctl 파라미터 적용
sudo sysctl --system
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
kubesphere를 같이 사용하기 위해서 지원 latest 버젼인 1.22.1을 설치했다.
yum install -y kubelet-1.22.1 kubectl-1.22.1 kubeadm-1.22.1
cluster 관리를 위한 kubeadm initialize 및 kubectl 사용을 위한 config
kubeadm init
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
이 과정까지 완료되면 마스터노드가 컨트롤플레인으로 설정된다.