부록 B. Kubernetes 환경에서 MAC 주소 설정#
Kubernetes 환경에서는 Pod가 특정 Host 서버에 고정되지 않고 클러스터 내 다른 Host에서 재생성될 수 있다.
따라서 Altibase의 MAC 주소 기반 라이선스 검증을 위해서는 Kubernetes 클러스터를 구성하는 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 파일에 다음과 같이 설정한다. hostPath의 path에는 라이선스 검증에 사용할 MAC 주소가 저장된 파일 또는 해당 파일을 가리키는 심볼릭 링크의 경로를 지정한다.
기본 설정#
일반적으로 Host 서버마다 네트워크 인터페이스 이름이 다를 수 있으므로, 심볼릭 링크 경로를 사용하는 것을 권장한다.
아래의 예제는 심볼릭 링크를 사용하는 경우이다.
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:
containers:
- name: altibase
volumeMounts:
- name: host-volume
mountPath: /macaddress
volumes:
- name: host-volume
hostPath:
path: /sys/class/net/ens1f0/address
type: File
주의사항#
- Kubernetes 클러스터에서 Pod가 배치될 수 있는 모든 Host 서버에서 라이선스 검증이 가능하도록 Pod YAML을 설정해야 한다.
- Altibase는 컨테이너 내부의
/macaddress경로를 사용하여 라이선스를 검증하므로 해당 경로는 변경하지 않아야 한다.