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/