Nomad의 IPv6 지원

Nomad의 IPv6 지원 (IPv6 Support in Nomad)

Nomad가 지원하는 IPv6 설정 방법과 다양한 연결 맥락에 필요한 구성 값을 알아봐요.

출처: 문서

본문

Nomad는 기반 네트워크, 호스트 머신, 실행 중인 운영 체제가 IPv6를 지원하는 한 IPv6를 지원해요.

이 가이드는 다양한 연결 맥락에 필요한 서로 다른 구성 설정을 보여줘요.

Advertise Nomad 서버와 클라이언트 주소는 다른 서버, 클라이언트, 외부 시스템이 에이전트로 다시 연결할 때 사용해야 할 주소를 지정해요.

go-sockaddr 템플릿팅을 사용해 공용 IPv6 주소를 동적으로 선택할 수 있어요. 이 예시에서는 각 프로토콜에 대해 공용 인터페이스에서 IPv6 주소 하나를 가져와 프로토콜의 주소로 할당해요.

advertise {
  http = "{{ GetPublicInterfaces | include `type` `IPv6` | limit 1 | attr `address` }}"
  rpc  = "{{ GetPublicInterfaces | include `type` `IPv6` | limit 1 | attr `address` }}"
  serf = "{{ GetPublicInterfaces | include `type` `IPv6` | limit 1 | attr `address` }}"
}

Nomad에서 Nomad로

Nomad 에이전트 프로세스는 클러스터 작업을 위한 RPC 호출을 하기 위해 서로 연결해요.

클라우드 자동 조인을 사용하거나 IPv6로 해석되는 DNS와 함께 Nomad에서 IPv6를 사용하는 것을 권장해요. 다음 서버-서버 및 클라이언트-서버 예시는 IPv6 주소를 명시적으로 사용해요.

서버에서 서버로

server_join 블록을 사용해 서버를 연결해요.

server {
  enabled = true
  server_join {
    retry_join = ["[2001:db8::1]", "[2001:db8::2]"]
  }
}

클라이언트에서 서버로

servers 파라미터 또는 server_join 파라미터를 사용해 클라이언트를 연결해요.

client {
  enabled = true
  servers = ["[2001:db8::1]", "[2001:db8::2]", "[2001:db8::3]"]
}
client {
  enabled = true
  server_join {
    retry_join = ["[2001:db8::1]", "[2001:db8::2]", "[2001:db8::3]"]
  }
}

Nomad에서 외부 시스템으로

Nomad와 다른 외부 시스템 사이의 대부분의 연결은 HTTP를 통해 발생해요.

예를 들어 이렇게 NOMAD_ADDR 환경 변수를 설정하면:

export NOMAD_ADDR='http://[2001:db8::1]:4646'

다음을 할 수 있어요.

  • Nomad API 호출을 수행하는 Nomad CLI 사용하기
  • nomad ui 명령으로 브라우저에서 Nomad 웹 UI 열기
  • Workload identity 사용하기

Nomad는 수신 대기 중이면 IPv6 주소의 Consul과 Vault에 도달해 서비스를 등록하거나 시크릿을 가져올 수 있어요.

nomad setup consul 명령으로 Consul을 구성해요.

nomad setup consul -y -jwks-url="$NOMAD_ADDR/.well-known/jwks.json"

nomad setup vault 명령으로 Vault를 구성해요.

nomad setup vault -y -jwks-url="$NOMAD_ADDR/.well-known/jwks.json"

OIDC 연결을 지원하는 다양한 기타 타사 서비스도 타사 서비스가 IPv6를 지원하는 한 IPv6 주소에서 Nomad에 도달할 수 있어야 해요.

워크로드

Nomad는 클라이언트 노드의 태스크와 주고받는 임의의 IPv6 네트워크 호출을 지원해요.

호스트 네트워킹을 사용하면 태스크는 호스트 머신과 같은 네트워크를 사용해요.

CNI 플러그인도 IPv6와 함께 동작할 수 있어요. Nomad의 브리지 네트워크가 이를 수행해요.

일부 태스크 드라이버는 자체 IPv6 구성 옵션을 가져요. Docker 드라이버에서 IPv6 지원을 활성화했다면 작업 명세에서 IPv6를 구성할 수 있어요. 자세한 내용은 IPv6 Docker containers를 참고해요.

더 알아보기 (Learn more)