← 블로그

Kubernetes 클러스터 구성

#devops

Kubernetes 클러스터 노드 설치 및 설정

오픈 되어야 하는 포트

마스터 노드

  • 6443 포트 : Kubernetes API Server / Used By All
  • 2379~2380 포트 : etcd server client API / Used By kube-apiserver, etcd
  • 10250 포트 : Kubelet API / Used By Self, Control plane
  • 10251 포트 : kube-scheduler / Used By Self
  • 10252 포트 : kube-controller-manager / Used By Self

워커 노드

  • 10250 포트 : Kubelet API / Used By Self, Control plane
  • 30000~32767 포트 : NodePort Services / Used By All

인스턴스 호스트 네임 설정

hostnamectl set-hostname hostname

Docker 설치

sudo -s
yum update -y
amazon-linux-extras install docker
service docker start

firewalld 비활성화 (또는 특정 포트 오픈)

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

iptable 설정

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

SELinux 설정

setenforce 0

sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

스왑 끄기

swapoff -a

vi /etc/fstab
### 아래 부분을 찾아서 주석처리 해줍니다.
# LABEL=SWAP-xvdb1 swap swap defaults    0 0

# 재시작
reboot

Kubernetes Repo 추가

cat <<EOF > /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>](<https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg>)
EOF

쿠버네티스 설치

# 마스터노드
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet && systemctl start kubelet

# 워커노드
yum install -y kubelet kubeadm --disableexcludes=kubernetes
systemctl enable kubelet && systemctl start kubelet

# 설치 완료 버전 확인
kubeadm version
kubelet --version
kubectl version

워커 노드 설정 (Join)

#(master 노드에서)
kubeadm token create --print-join-command

# 이후 출력되는 결과물 command를 워커노드에서 실행

쿠버네티스 환경변수 설정

# 권한 오류가 발생할 경우
# 영구 설정시 .bashrc에 해당 명령어 저장
export KUBECONFIG=/etc/kubernetes/admin.conf

대시보드 로그인용 토큰 생성

# master 노드에서
kubectl create token admin-user -n kube-system

Containerd 설정 파일

/etc/containerd/