본문 바로가기

혼자하는 프로젝트/AWS_쿠버네티스_Docker

워커노드(worker node)를 추가해보자

728x90
반응형

- 지금까지 마스터 노드, 워커노드1 을 생성하여 클러스터링을 하였다.
이제 워커노드2를 구축하여 노드하나를 더 추가하는 작업을 해보자.

1. EC2 생성하기

- AWS CLI 를 통해서 워커노드 2번을 생성하자

export WORKER_INSTANCE_ID=$(aws ec2 run-instances \
    --associate-public-ip-address \
    --image-id ami-0ba5cd124d7a79612 \
    --count 1 \
    --key-name k8s \
    --security-group-ids sg-02e2492684d84f429 \
    --instance-type t2.micro \
    --private-ip-address 10.1.1.30 \
    --user-data "name=worker" \
    --subnet-id subnet-0c5635ea581e69129 \
    --output text --query 'Instances[].InstanceId')

- EC2의 Name 을 지정해주자

aws ec2 create-tags \
  --resources ${WORKER_INSTANCE_ID} \
  --tags "Key=Name,Value=k8s-worker02"

- worker02 라는 인스턴스가 생성된것을 확인 할 수 있다.

2. worker02 노드에 SSH로 접근하여 쿠버네티스와 도커를 설치

- worker02 노드에 SSH로 접근을 하자
- Mobaxterm 을 사용하였고, 퍼블릭 ip와 ubuntu, 그리고 pem 파일을 사용하여 SSH에 접근한다.

- 도커 및 쿠버네티스 설치

sudo apt update

# 도커 설치
apt install docker.io

sudo apt-get update && sudo apt-get install -y apt-transport-https curl

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl

# 패키지 버전 홀드 (업데이트에서 제외)
sudo apt-mark hold kubelet kubeadm kubectl

- Cgroup 을 확인 및 설정변경

docker info |grep Cgroup
vim /lib/systemd/system/docker.service

- --exec-opt native.cgroupdriver=systemd 을 추가하자

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd

- 데몬과 도커를 재시작 한다.

systemctl daemon-reload
systemctl restart docker

3. worker02 를 클러스터에 참여시키기

- join 명령어를 사용하여 클러스터에 참여가 가능하다.

kubeadm join 10.1.1.10:6443 --token fayty9.kazytyoiog1zlsb0 \
    --discovery-token-ca-cert-hash sha256:14c57145c22cd05b9c1e4c83efa7abd2f9adfdb3f056c9807a7d081946ad16f2

- worker02 노드가 참여한 모습을 확인 할 수 있다.

728x90
반응형