콘텐츠로 이동

부록 B. Kubernetes 환경에서 MAC 주소 설정#

Kubernetes 환경에서는 Pod가 특정 Host 서버에 고정되지 않고 클러스터 내 다른 Host에서 재생성될 수 있다. 따라서 Altibase의 MAC 주소 기반 라이선스 검증을 위해서는 Kubernetes 클러스터를 구성하는 모든 Host 서버의 물리 NIC(Network Interface Card)의 네트워크 인터페이스 이름과 MAC 주소 정보가 필요하다. 고객은 각 Host 서버에서 라이선스 검증에 사용할 물리 네트워크 인터페이스 이름과 MAC 주소를 확인하여 라이선스 발급 요청 시 제공해야 한다.

설정은 다음 절차에 따라 진행한다.

1. MAC 주소 확인#

각 Host 서버에서 라이선스 검증에 사용할 네트워크 인터페이스의 이름과 MAC 주소를 확인한다. <interface_name>에는 라이선스 발급 시 제공한 MAC 주소가 할당된 실제 Host 서버의 네트워크 인터페이스 이름을 입력해야 한다.

확인 명령어

cat /sys/class/net/<interface_name>/address

예시

$ cat /sys/class/net/eth0/address
a0:36:9f:18:da:ec

2. 심볼릭 링크 생성#

일반적으로 Host 서버마다 네트워크 인터페이스 이름이 다를 수 있으므로, 라이선스 검증에 사용할 MAC 주소가 저장된 파일을 고정된 경로(예:/etc/altibase/macaddress)에 심볼릭 링크로 생성하여 사용한다.

각 Host 서버에 다음 명령으로 심볼릭 링크를 생성한다.

ln -s /sys/class/net/<interface_name>/address /etc/altibase/macaddress

예시

$ ln -s /sys/class/net/eth0/address /etc/altibase/macaddress

모든 Host 서버에서 동일한 네트워크 인터페이스 이름을 사용하는 경우에는 심볼릭 링크를 생성하지 않고, Pod YAML의 hostPath에 MAC 주소 정보가 있는 파일 경로를 직접 지정할 수 있다. 자세한 설정 예제는 네트워크 인터페이스 이름이 동일한 경우의 설정을 참고한다.

3. Pod YAML 설정#

Pod 생성용 YAML 파일에 다음과 같이 설정한다. hostPathpath에는 라이선스 검증에 사용할 MAC 주소가 저장된 파일 또는 해당 파일을 가리키는 심볼릭 링크의 경로를 지정한다.

Important

Altibase의 MAC 주소 기반 라이선스 검증 방식을 Kubernetes 환경에 적용하려면 Altibase Pod를 스테이트풀셋(StatefulSet)으로 배포해야 하며, 스테이트풀셋의 파드 관리 정책(podManagementPolicy)은 기본 정책인 OrderedReady를 사용해야 한다.

기본 설정#

일반적으로 Host 서버마다 네트워크 인터페이스 이름이 다를 수 있으므로, 심볼릭 링크 경로를 사용하는 것을 권장한다.

아래의 예제는 심볼릭 링크를 사용하는 경우이다.

spec:
  podManagementPolicy: OrderedReady # 스테이트풀셋의 기본 파드 관리 정책
  template:
    spec:
      containers:
      - name: altibase
        volumeMounts:
        - name: host-volume
          mountPath: /macaddress
      volumes:
      - name: host-volume
        hostPath:
          path: /etc/altibase/macaddress # 라이선스 검증에 사용할 MAC 주소 파일의 심볼릭 링크 경로
          type: File

위 설정을 통해 Host 서버의 MAC 주소 파일이 컨테이너 내부의 /macaddress 경로로 마운트된다.

Altibase는 컨테이너 내부의 /macaddress 경로를 기준으로 라이선스를 검증하므로, mountPath: /macaddress 값은 변경하지 않아야 한다.

네트워크 인터페이스 이름이 동일한 경우의 설정#

만약, 모든 Host의 네트워크 인터페이스 이름이 동일하다면 심볼릭 링크를 사용하지 않고, 다음과 같이 인터페이스 이름을 직접 사용할 수 있다.

예: ens1f0 인터페이스를 사용하는 경우

spec:
  podManagementPolicy: OrderedReady # 스테이트풀셋의 기본 파드 관리 정책
  template:
    spec:
      containers:
      - name: altibase
        volumeMounts:
        - name: host-volume
          mountPath: /macaddress
      volumes:
      - name: host-volume
        hostPath:
          path: /sys/class/net/ens1f0/address  # 라이선스 검증에 사용할 MAC 주소 파일의 경로
          type: File

주의사항#

  • Kubernetes 클러스터에서 Pod가 배치될 수 있는 모든 Host 서버에서 라이선스 검증이 가능하도록 Pod YAML을 설정해야 한다.
  • Altibase는 컨테이너 내부의 /macaddress 경로를 사용하여 라이선스를 검증하므로 해당 경로는 변경하지 않아야 한다.