Accordion Install Ⅱ
<<Accordion Install Ⅰ>>에서 이어지는 글입니다.
이전 글 바로가기: Accordion Install Ⅰ – NEOCLOVA Tech Blog (네오클로바 기술블로그)
Step 9. accordion 설치 확인
각 노드들의 status 및 pod 상태를 확인합니다.
아래와 같이 node들의 상태가 Ready이며, pod들이 이상 없이 Running으로 되어 있는 것을 확인합니다.


브라우저에서 https://master_ip:30000 으로 접속합니다. (초기 ID/PASSWORD는 admin/Pa$$word 입니다.)

Step 10. Pod error/ContainerStatusUnknown/CrashLoopBackOff
Accordion 설치가 fail 없이 완료가 되었음에도 파드의 상태가 error / ContainerStatusUnknown/CrashLoopBackOff 일 수 있습니다.
이상이 있는 pod들은 각 describe, log 를 확인하여 문제를 진단 후 해결 해야 합니다.
특정 노드에 문제가 있는 경우
kubectl get pods -n acc-global –field-selector spec.nodeName=acc-211-worker02 명령어를 이용해 worker02 노드에 뜬 pod들만이 이상이 있는지를 확인하고, 전체 워커노드를 재부팅 하는 것도 도움이 될 수 있습니다.
Step 11. Accordion master node 추가
# 쿠버네티스는 마스터 노드와 워커 노드의 개수를 유연하게 구성할 수 있습니다. 다만 고가용성 구성을 위해 마스터 노드는 3대 이상 구성하는 것이 권장됩니다.
accordion-installer/hosts 파일에서 Master 서버를 추가합니다.
$ vi hosts
install-server ansible_host=127.0.0.1 ansible_connection=local node_role=infra
#########################################################################################
# host-cluster List
#########################################################################################
acc-host-master ansible_host=192.168.82.101 ansible_connection=ssh node_role=infra
acc-host-master2 ansible_host=192.168.82.102 ansible_connection=ssh node_role=infra # master 2번 서버의 정보 기입
acc-host-master3 ansible_host=192.168.82.103 ansible_connection=ssh node_role=infra # master 2번 서버의 정보 기입
acc-host-node1 ansible_host=192.168.82.104 ansible_connection=ssh node_role=infra # worker 서버의 ip Address
acc-host-node2 ansible_host=192.168.82.105 ansible_connection=ssh node_role=infra # worker 서버의 ip Address
#########################################################################################
# member-cluster List
#########################################################################################
#acc-member-master ansible_host=10.140.1.2 ansible_connection=ssh node_role=infra
#acc-member-node1 ansible_host=10.140.1.3 ansible_connection=ssh node_role=infra
#acc-member-node2 ansible_host=10.140.1.4 ansible_connection=ssh node_role=infra
#acc-member-master2 ansible_host=10.140.1.5 ansible_connection=ssh node_role=infra
#acc-member-master3 ansible_host=10.140.1.6 ansible_connection=ssh node_role=infra
#########################################################################################
# Group List
#########################################################################################
[local]
install-server
#########################################################################################
# Manager Group
[host-master]
acc-host-master
[host-master-cluster]
acc-host-master2 # 주석 해제
acc-host-master3 # 주석 해제
[host-minions]
acc-host-node1
acc-host-node2
[host-infra]
[host-etcd]
#########################################################################################
# Member Group
[member-master]
#acc-member-master
[member-master-cluster]
#acc-member-master2
#acc-member-master3
[member-minions]
#acc-member-node1
#acc-member-node2
[member-infra]
[member-etcd]
#########################################################################################… 중략
accordion-installergroup_vars/host.yml 파일에서 Master 서버를 추가합니다.
$ vi host.yml
#- setup variable for cluster installation
########################################################
## Master configuation
########################################################
# cluster_name
cluster_name: "host-cluster"
# master isolation ( yes / no )
master_isolation: "yes" # 마스터 노드의 역할을 워커 노드로부터 격리
master_host_name: "acc-211-master01"
master_ip: 192.168.82.101
acc_interface: ens3
########################################################
# 3master mode( yes / no )
########################################################
master_mode: "yes” # 3중화 구성이므로 yes로 수정
master2_ip: 192.168.82.102 # master 2번 서버의 정보 기입
master3_ip: 192.168.82.103 # master 3번 서버의 정보 기입
master2_hostname: "acc-211-master02" # master 2번 서버의 정보 기입
master3_hostname: "acc-211-master03" # # master 3번 서버의 정보 기입
# LB_mode ( L4 / haproxy )
LB_mode: "haproxy"
LB_port: 8443
LB_vip: 192.168.82.100 # 3중화 구성이므로 vip를 이용
# LB_domain_option ( yes / no )
LB_domain_option: "no"
LB_domain_address: "l4.domain.accordions.co.kr"
# Set it up if you want to add the master server later
# If master_mode is "no", it will not work.
# single_option( yes / no )
single_option: "no"
########################################################
## container_name (containerd & cri-o)
########################################################
container_option: "containerd"
# container_option (containerd)
selinux_enable: "no"
# container_option (cri-o)
pid_limit: "4096"
########################################################
# storage setting
########################################################
# storage_option ( nfs / ceph / local )
storage_option: "nfs"
# accordion_storage_path
accordion_storage_path: "/nfs/data2" # 사용하는 nfs 경로로 수정
# nfs_setup ( internal / external )
nfs_setup: "internal" # 별도의 nfs 서버를 두지 않고 master node를 이용
nfs_server_ip: 192.168.82.101 # master node의 ip add 입력
# nfs_version ( v3 / v4 / v4.1 / v4.2 )
nfs_version: "v3"
# ceph_option ( cephfs / rbd )
ceph_option: "cephfs"
#ceph health, ceph fsid, ceph auth get-key client.admin, ceph status
ceph_server_ip: "10.20.200.107"
ceph_server_port: "6789"
ceph_id: "admin"
ceph_key: "AQCKoqVh0eR5MxAAL4WziV7oyVsdtHC6Wz0RcQ=="
#ceph_id: "kubernetes"
#ceph_key: "AQBDpKVhFhPCIRAAf1xqSLgi558DIH+FvcCyMQ=="
ceph_fsid: "84ab6f51-d13e-4a83-9ccc-fd3b9228e728"
ceph_fsname: "cephfs"
#ceph_fsname: "cephrbd_pool"
basic_storageclass_name: "accordion-storage"
#######################################################
# sub storage setting
#################################################
# user_storage_option ( yes / no )
user_storage_enabled: "no"
user_storageclass_name: "user-storage"
# storage_option ( nfs / local )
user_storage_option: "nfs"
# user_storage_path
user_storage_path: "/nfs/user"
# user_nfs_setup ( internal / external )
user_nfs_setup: "internal"
user_nfs_server_ip: 10.140.0.2
# user_nfs_version ( v3 / v4 / v4.1 / v4.2 )
user_nfs_version: "v3"
########################################################
# etcd external option
########################################################
etcd_external: "no"
########################################################
# base registry
########################################################
# accordion_registry_option ( local / external )
base_registry_option: "local"
base_registry_addr: 192.168.82.101 # master node의 ip add 입력
base_registry_port: 5000
base_registry_id: acc-registry
base_registry_passwd: accordionadmin
… 중략
위 환경 구성이 다 되었다면 accordion-installer/container-start.sh를 실행하여 ansible 컨테이너를 실행합니다.
$ sh container-start.sh
컨테이내 내부 기본 경로는 /mantech이며 /mantech/accordion-installer로 이동하여 설치를 진행합니다.
이제 마스터 노드 추가를 진행합니다.
$ sh addmaster.sh host
BECOME password:
[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details
PLAY [node check(300s)] ***********************************************************************************************************************************************************************
TASK [wait connection] *************************************************************************************************************************************************************************
Tuesday 28 May 2024 14:56:57 +0900 (0:00:00.017) 0:00:00.017 ***********
ok: [acc-host-master]
ok: [acc-host-master2]
ok: [acc-host-master3]
ok: [acc-host-node1]
ok: [acc-host-node2]
…
PLAY RECAP ************************************************************************************************************************************************************************************
acc-host-master : ok=98 changed=63 unreachable=0 failed=0 skipped=49 rescued=0 ignored=1
acc-host-master2 : ok=181 changed=97 unreachable=0 failed=0 skipped=113 rescued=0 ignored=6
acc-host-master3 : ok=181 changed=97 unreachable=0 failed=0 skipped=113 rescued=0 ignored=6
acc-host-node1 : ok=3 changed=0 unreachable=0 failed=0 skipped=34 rescued=0 ignored=0
acc-host-node2 : ok=3 changed=0 unreachable=0 failed=0 skipped=34 rescued=0 ignored=0
추가가 완료 되었다면 각 노드들의 status 및 pod 상태를 확인합니다.
Accordion 2.0 노드 추가/제거 -v2.11
Step 1. Accordion worker node 제거
# 테스트 시연을 위해 이미 구성 된 worker node 2번 서버(192.168.10.35 / acc-w2)를 제거거 후 다시 구성하는 것을 시연합니다.
[현재 node 구성]

먼저 제거 할 node를 확인합니다.
$ vi accordion-installer/hosts
install-server ansible_host=127.0.0.1 ansible_connection=local node_role=infra
#########################################################################################
# host-cluster List
#########################################################################################
acc-host-master ansible_host=192.168.10.31 ansible_connection=ssh node_role=infra
acc-host-master2 ansible_host=192.168.10.32 ansible_connection=ssh node_role=infra
acc-host-master3 ansible_host=192.168.10.33 ansible_connection=ssh node_role=infra
acc-host-node1 ansible_host=192.168.10.34 ansible_connection=ssh node_role=infra
acc-host-node2 ansible_host=192.168.10.35 ansible_connection=ssh node_role=infra # 제거 할 노드 확인
#########################################################################################
# member-cluster List
#########################################################################################
#acc-member-master ansible_host=10.140.1.2 ansible_connection=ssh node_role=infra
#acc-member-node1 ansible_host=10.140.1.3 ansible_connection=ssh node_role=infra
#acc-member-node2 ansible_host=10.140.1.4 ansible_connection=ssh node_role=infra
#acc-member-master2 ansible_host=10.140.1.5 ansible_connection=ssh node_role=infra
#acc-member-master3 ansible_host=10.140.1.6 ansible_connection=ssh node_role=infra
#########################################################################################
# Group List
accordion-installer/container-start.sh를 실행하여 ansible 컨테이너를 실행합니다.
$ sh container-start.sh
이 후 아래 명령어를 통해 worker node 2번 서버를 제거합니다.
$ sh removenode.sh acc-host-node2
스크립트가 완료 되었다면 현재 노드를 확인하여 worker node 2번 서버가 제거되었는지 확인합니다.

Step 2. Accordion worker node 추가
[현재 node 구성]

추가 할 node 정보를 추가합니다. (worker node 2번 서버(192.168.10.35 / acc-w2)
$ vi accordion-installer/hosts
install-server ansible_host=127.0.0.1 ansible_connection=local node_role=infra
#########################################################################################
# host-cluster List
#########################################################################################
acc-host-master ansible_host=192.168.10.31 ansible_connection=ssh node_role=infra
acc-host-master2 ansible_host=192.168.10.32 ansible_connection=ssh node_role=infra
acc-host-master3 ansible_host=192.168.10.33 ansible_connection=ssh node_role=infra
acc-host-node1 ansible_host=192.168.10.34 ansible_connection=ssh node_role=infra
acc-host-node2 ansible_host=192.168.10.35 ansible_connection=ssh node_role=infra # 추가 할 노드 정보 기입
#########################################################################################
# member-cluster List
#########################################################################################
#acc-member-master ansible_host=10.140.1.2 ansible_connection=ssh node_role=infra
#acc-member-node1 ansible_host=10.140.1.3 ansible_connection=ssh node_role=infra
#acc-member-node2 ansible_host=10.140.1.4 ansible_connection=ssh node_role=infra
#acc-member-master2 ansible_host=10.140.1.5 ansible_connection=ssh node_role=infra
#acc-member-master3 ansible_host=10.140.1.6 ansible_connection=ssh node_role=infra
#########################################################################################
# Group List
#########################################################################################
[local]
install-server
#########################################################################################
# Manager Group
[host-master]
acc-host-master
[host-master-cluster]
acc-host-master2
acc-host-master3
[host-minions]
acc-host-node1
acc-host-node2 # 추가 할 노드 주석 해제
accordion-installer/container-start.sh를 실행하여 ansible 컨테이너를 실행합니다.
$ sh container-start.sh
이 후 아래 명령어를 통해 worker node 2번 서버를 추가합니다.
$ sh addnode.sh acc-host-node2
스크립트가 완료 되었다면 현재 노드를 확인하여 worker node 2번 서버가 추가되었는지 확인합니다.

자유롭게 댓글을 달아주세요! 언제나 환영합니다.
기타 문의: info@neoclova.co.kr
네오클로바 기술블로그 홈 바로가기: https://neoclova.net
네오클로바 홈페이지: http://neoclova.co.kr
