External ETCD (수정 중)

External etcd 구성은 쿠버네티스 클러스터에서 etcd 컴포넌트를 마스터 노드와 분리하여 외부에 배치하는 것을 의미한다.

etcd는 쿠버네티스 클러스터의 상태 정보를 안전하게 저장하기 위한 신뢰성 있는 분산형 키-값 저장소

이미 마스터 노드에 포함 되어 있는 컴포넌트를 따로 분리 하여 별도에 노드에 배치하여 제일 좋은 점은 보안이라고 볼 수 있다. 그 외에도 몇 가지 장점을 표현 한다면:


Etcd 컴포넌트를 마스터 노드에서 분리 하여 배치 하는 작업은 클러스터 생성시 설정을 하면 된다. 이미 Kubespray및 Kubeadm으로 클러스터를 생성 해 보았지만, etcd노드를 분리 하여 해 보지는 않았다. 그래서 이번에는 Kubespray를 통해 쿠버네티스 클러스터를 아래와 같은 구성으로 생성 해 보았다


Kubespray를 통해 클러스터 생성

Kubespray를 통해 쿠버네티스 클러스터 생성 하는 방법은 이미 여기에 정리 해 놓았다. 설정 방법과 진행은 다 동일 하지만 다른 점은 hosts.yml 파일 속 추가 된 내용이다.

vi inventory/mycluster/hosts.yml

all:
  hosts:
    node1:
      ansible_host: 192.168.1.150            # 작업을 실행하기 위해 대상 노드에 연결할 때 사용하는 IP 주소 또는 호스트 이름을 지정하는 필드
      ip: 192.168.1.150
      access_ip: 192.168.1.150
    node2:
      ansible_host: 192.168.1.160
      ip: 192.168.1.160
      access_ip: 192.168.1.160
    node3:
      ansible_host: 192.168.1.170
      ip: 192.168.1.170
      access_ip: 192.168.1.170
    node4:
      ansible_host: 192.168.1.180
      ip: 192.168.1.180
      access_ip: 192.168.1.180
    node5:
      ansible_host: 192.168.1.190
      ip: 192.168.1.190
      access_ip: 192.168.1.190
  children:
    kube_control_plane:						# 마스터 노드 지정 하는 곳
      hosts:
        node1:
        node2:
        node3:
    kube_node:								# 워커 노드 지정 하는 곳
      hosts:
        node4:
    etcd:									# etcd 노드 지정 하는 곳
      hosts:
        node5:
    k8s_cluster:
      children:
        kube_control_plane:
        kube_node:
    calico_rr:
      hosts: {}


이렇게 hosts.yml 파일 수정 후 Kubespray Ansible Playbook을 실행 한다. 아무 문제 없이 완료 되면 결과를 확인 할 수 있다.

image.png


이제 마스터 노드 쪽에서 클러스터 생성 결과를 확인 하기 위해:

 


it is normal that when you use the kubectl get nodes command from your master node, you will not see the etcd nodes included in the output. The kubectl get nodes command provides information about the worker nodes in your cluster, not the etcd nodes.

Etcd nodes are not considered as part of the worker node pool and are typically not included in the output of the kubectl get nodes command. Etcd operates as a separate distributed key-value store that stores the cluster's state and configuration information. It is responsible for providing data persistence and coordination among the control plane components.


Revision #5
Created 8 June 2023 05:40:40 by 와지
Updated 20 June 2023 12:51:32 by 와지