728x90
반응형
# EC2 인스턴스를 생성 (t3.samll - 2개)
1. Swap을 사용하지 않도록 설정한다. (모든 노드 공통)
swapoff -a
echo 0 > /proc/sys/vm/swappiness
sed -e '/swap/ s/^#*/#/' -i /etc/fstab
2. docker 설치 (모든 노드 공통)
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
3. docker 데몬 교체 (모든 노드 공통)
# Docker 데몬이 사용하는 드라이버를 cgroupfs 대신 systemd를 사용하도록 설정
cat << EOF | sudo tee –a /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
# 위 명령어를 실행 후 아래의 명령어 실행
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo systemctl daemon-reload
sudo systemctl restart docker
4. kubernetes 설치 (모든 노드 공통)
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
5. hostname 설정 (모든 노드 공통)
# 마스터 노드나 워커노드 추가 시 설정을 변경 해줘야 한다.
sudo vi /etc/hosts
172.16.0.86 master1
172.16.0.189 master2
172.16.0.142 master3
172.16.0.117 worker1
172.16.0.83 worker2
# 각 노드 서버에서 실행
# master1
hostnamectl set-hostname master1
# master2
hostnamectl set-hostname master2
# master3
hostnamectl set-hostname master3
# worker1
hostnamectl set-hostname worker1
# worker2
hostnamectl set-hostname worker2
6. CNI 설치 (모든 노드 공통)
택 1
1. fannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
2. weave
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')&env.IPALLOC_RANGE=10.244.0.0/16"
#나는 3번 설치함
3. calico
kubectl apply -f https://docs.projectcalico.org/v3.19/manifests/calico.yaml
7. Worker Node를 Master Node에 Join
- 마스터 노드 실행 시 생성되는 Join 코드에서 워커 노드에서 실행하는 코드를 복사하여 워커 노드 에서 실행
...
Then you can join any number of worker nodes by running the following on each as root:
#워커 노드에서 실행해야 하는 코드(아래의 값은 임의의 값으로 변경 함)
kubeadm join 172.16.0.86:26443 --token 28wiw3.xo************fiek33u \
--discovery-token-ca-cert-hash sha256:f2ff******************09c7c3c3e4fadd5a120d592a8fd067f
- 실행 명령어 (예시)
sudo kubeadm join 172.16.0.86:26443 --token 28wiw3.xo************fiek33u \
--discovery-token-ca-cert-hash sha256:f2ff******************09c7c3c3e4fadd5a120d592a8fd067f
8. 결과 (마스터 노드 3, 워커 노드 2)
root@master1:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-172-16-0-117 Ready <none> 3m50s v1.23.4
ip-172-16-0-83 Ready <none> 15s v1.23.4
master1 Ready control-plane,master 53m v1.23.4
master2 Ready control-plane,master 52m v1.23.4
master3 Ready control-plane,master 52m v1.23.4
- 끝 -
728x90
반응형
'혼자하는 프로젝트 > AWS_쿠버네티스_Docker' 카테고리의 다른 글
K8S Master Node HA 구성 (MasterNode:3) (1) | 2022.02.24 |
---|---|
워커노드(worker node)를 추가해보자 (0) | 2021.09.30 |
AWS 에서 쿠버네티스 클러스터링 구현 (0) | 2021.09.28 |
AWS 에서 쿠버네티스 마스터 노드와 Worker 노드 생성 및 연결 (0) | 2021.09.28 |
2. 워드프레스 Docker 이미지 생성 및 쿠버네티스 설치 (0) | 2021.09.27 |