Docker Edge 컨테이너 배포Deploy the Docker Edge Container
다음 단계에 따라 컨테이너 환경을 설정하고 로컬 이미지를 사용하여 Edge 컨테이너를 설치합니다.
이 설정 프로세스에서는 주니퍼 Apstra Edge 배포 버전 0.0.36_1을 사용합니다. 다운로드한 버전이 최신 버전일 수 있습니다. 주니퍼 Apstra Edge와 Docker 버전 호환성에 대한 자세한 내용은 주니퍼 Apstra와 Docker 간의 호환성 을 참조하십시오.
- 다운로드한 tar.gz 파일의 압축을 풉니다.
이렇게 하면 다음 디렉토리
apstra-edge-0.0.36
가 생성됩니다.root@user:~# tar -xvzf apstra-cloud-services-edge_4.2.1_0.0.36_1.tar.gz apstra-edge-0.0.36/ apstra-edge-0.0.36/ssl-keys/ apstra-edge-0.0.36/ssl-keys/ep-term.ai.juniper.net.cer apstra-edge-0.0.36/docker-compose-0.0.36.yml apstra-edge-0.0.36/apstra-edge-container-0.0.36.tgz
- 파일에 필요한 최소 환경 변수를
docker-compose.yml
추가합니다.root@user:~# cd apstra-edge-0.0.36/ root@user:~# vi docker-compose-0.0.36.yml - REGISTRATION_KEY=<registration-code> - CLOUD_TERM=ep-term.ai.juniper.net
이 등록 코드는 에지를 채택 한 후 주니퍼 Apstra 클라우드 서비스 에지 채택 섹션의 3단계에서 가져옵니다. 등록 코드는 Apstra Edge를 주니퍼 Apstra 클라우드 서비스에 등록합니다. Apstra Edge를 처음 설정하는 경우 계정을 생성해야 할 수 있습니다. 자세한 내용은 사용자 활성화 및 로그인을 참조하십시오.메모:주니퍼 Apstra Edge는 등록 코드를 사용하여 Edge를 설치하는 동안 고유한 조직 ID, 비밀 및 디바이스 ID를 검색합니다. 이러한 ID는 초기 설정이 완료된 후에는 검색할 수 없으므로 안전하게 저장해야 합니다.
CLOUD_TERM
는 클라우드에서 실행되는 서비스로, 클라우드와 통신하기 위한 에지 구성 요소에 대한 모든 연결의 진입점입니다.내부 구성 변수 및 해당 기능 목록은 주니퍼 Apstra 에지 클라우드 서비스 구성을 위한 내부 변수를 참조하십시오.
메모:이러한 변수는 내부용이며 Edge 구성 요소를 설정하는 데 필요하지 않습니다. 프로덕션에서는 이러한 변수를 재정의하지 않는 것이 좋습니다.
- Edge 컨테이너를 설치하기 위한 디렉터리를 만들고 tar.gz에서 파일을 복사합니다
docker-compose.yml
.root@user:~# mkdir apstra_edge root@user:~# cp apstra-edge-0.0.36/docker-compose-0.0.36.yml apstra_edge/docker-compose.yml
- 컨테이너 파일을
apstra_edge
디렉터리에 복사합니다.root@user:~# cp apstra-edge-0.0.36/apstra-edge-container-0.0.36.tgz apstra_edge/ root@user:~/home/apstra-edge-0.0.36$ cd apstra_edge/ root@user:~/home/apstra-edge-0.0.36/apstra_edge$ ls apstra-edge-container-0.0.36.tgz docker-compose.yml
- Docker 이미지를 로드합니다.
root@user:~# cd apstra_edge
root@user:/apstra_edge# docker load < apstra-edge-container-0.0.36.tgz 7429ea606615: Loading layer [==================================================>] 2.56kB/2.56kB 10997ab1dcf0: Loading layer [==================================================>] 19.75MB/19.75MB 8f08153193c2: Loading layer [==================================================>] 3.072kB/3.072kB 447895a64213: Loading layer [==================================================>] 4.608kB/4.608kB 4603e347f9f2: Loading layer [==================================================>] 9.875MB/9.875MB ab9f29f8f678: Loading layer [==================================================>] 9.876MB/9.876MB 545cccdbd988: Loading layer [==================================================>] 3.072kB/3.072kB 33c503d165ee: Loading layer [==================================================>] 6.144kB/6.144kB ecaeb0222eb9: Loading layer [==================================================>] 3.256MB/3.256MB 7c87e1361384: Loading layer [==================================================>] 9.878MB/9.878MB f9979c7efaff: Loading layer [==================================================>] 2.56kB/2.56kB Loaded image: apstra-edge:0.0.36
메모:docker load < apstra-edge-container-0.0.36.tgz
작동하지 않으면 옵션을docker load -i apstra-edge-container-0.0.36.tgz
추가할-i
수 있습니다. - 이미지가 로드되었는지
apstra-edge
확인합니다.root@user:/apstra_edge# docker images |grep edge apstra-edge 0.0.36 f0fb5593860a 2 weeks ago 242MB
- 주니퍼 Apstra 자체 서명 인증서를 공개 서명 인증서로 교체하는 것이 좋습니다. 공개적으로 서명된 인증서로 계속 진행하려면 주니퍼 Apstra Nginx 컨트롤러의 SSL 인증서 교체의 지침을 따르십시오.
주니퍼 Apstra Edge는 주니퍼 Apstra 클라우드 서비스 인타이틀먼트 프로세스에 제공된 관리 URL을 사용하여 주니퍼 Apstra 컨트롤러에 연결합니다. 이 관리 URL은 IP 주소로 구성됩니다. Apstra 컨트롤러에는 이 IP가 포함된 주체 대체 이름의 SSL 인증서가 필요합니다.
- (선택 사항) Apstra 컨트롤러에서 공개적으로 서명된 인증서 대신 자체 서명된 인증서를 계속 진행하려면 이전에 입력한 두 환경 변수(, ) 뒤에 다음 줄(
- AOS_INSECURE_SKIP_VERIFY=true
)docker-compose.yml
CLOUD_TERM=ep-term.ai.juniper.net
을 추가해야 합니다.REGISTRATION_KEY=<registration-code>
root@user:~# vi docker-compose.yml - REGISTRATION_KEY=<registration-code> - CLOUD_TERM=ep-term.ai.juniper.net - AOS_INSECURE_SKIP_VERIFY=true
메모:Apstra 컨트롤러에 대해 자체 서명 인증서를 사용하는지 또는 공개적으로 서명 한 인증서를 사용하는지에 관계없이 9단계와 10단계를 수행해야 합니다.
- 복사
EP-Term
SSL 인증서를 올바른 디렉터리에 복사하고 읽기/쓰기 권한을 추가합니다. 이를 통해 주니퍼 Apstra Cloud Services Edge는 서버 인증을 위한 SSL 인증서를 검증할 수 있습니다.root@user:~# cd /etc/ssl/certs root@user:/etc/ssl/certs# sudo cp ~/apstra-edge-0.0.36/ssl-keys/ep-term.ai.juniper.net.cer . root@user:/etc/ssl/certs# sudo chmod 644 ep-term.ai.juniper.net.cer
- 인증서를 업데이트합니다.
root@user:/etc/ssl/certs# sudo update-ca-certificates Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done.
- 디렉터리에서 Docker Edge 컨테이너를 스핀업합니다
apstra_edge
.이docker compose up -d
명령은 파일에 나열된docker-compose.yml
서비스를 초기화합니다. .yml 파일을 적용하면 라는apstra_edge_apstra_edge_store/
볼륨도 만들어집니다. 이 볼륨은 에 마운트됩니다/var/lib/docker/volumes/apstra_edge_apstra_edge_store/_data/
.메모:이(가) 위치한 동일한 디렉토리
docker-compose.yml
내에서 명령을 실행해야docker compose up -d
합니다. 파일 이름docker-compose.yml
도 지정해야 하며 그렇지 않으면 명령이 의도한 대로 작동하지 않습니다.메모:백업
/var/lib/docker/volumes/apstra_edge_apstra_edge_store/_data/
해야 합니다. Edge 인스턴스는 시스템 충돌 시 이 마운트를 사용하여 연결을 다시 시작합니다.root@user:~/home/apstra-edge-0.0.36/apstra_edge$ docker compose up -d [+] Running 2/2 ⠿ Volume "apstra_edge_apstra_edge_store" Created 0.0s ⠿ Container apstra-edge Started 0.3s root@user:~/home/apstra-edge-0.0.36/apstra_edge$
메모:중요: 주니퍼 Apstra Cloud Services Edge 컨테이너는 처음 부팅할 때 제공된 등록 코드를 사용하여 일회성 등록 프로세스를 수행합니다. 이 프로세스는 Edge 인스턴스와 CLOUD_TERM 서비스 간의 인증에 필요한 고유한
secret
항목을 생성합니다.이 초기 등록 프로세스 후에는 등록 코드가 유효하지 않습니다. 이후에 주니퍼 Apstra 클라우드 서비스 에지 인스턴스를 시작하거나 다시 시작할 때는 을
secret
(를) 사용하여 CLOUD_TERM 서비스에 연결합니다. - 주니퍼 Apstra Edge가 주니퍼 Apstra 클라우드 서비스에 연결되어 있는지 확인합니다.
메모:
이 명령은 다음 세 개의 클라이언트를 확인합니다.
AOSHTTPClient - CreationInfo
status는 .AuthInfo
여야CreateSuccess
합니다Authenticated
. UI에 제공된 관리 URL을 통해 Apstra 클라우드 서비스에 연결하는 클라이언트입니다. 생성 상태가 성공적이지 않은 경우 내부 문제가 있는 것이며, 이는 대부분 잘못된 자격 증명 또는 Edge 온보딩 중에 잘못된 URL을 제공했기 때문일 수 있습니다. Edge에 대한 UI의 인벤토리(Inventory) 탭에 올바른 정보를 입력합니다.WebSocketForwarder
status는Connected
및 이어야Authenticated
합니다. Edge 인스턴스를 Cloud Term 서비스에 연결하는 클라이언트입니다. 상태가 올바르지 않은 경우, 에 제공된docker-compose.yml
잘못된 epterm 주소, 로컬 호스트에 설치되지 않은 SSL 키 또는 SSL 키의 epterm에 대한 호스트 이름 불일치가 문제일 수 있습니다.StreamsForwarder
status는Init
또는Connected
이어야 합니다. 이 클라이언트는 Apstra 컨트롤러에 구성된 의 스트림 메시지를streaming-config-object
수신합니다.
root@user:~/home/apstra-edge-0.0.36/apstra_edge$ curl http://localhost:8081/api/status | jq % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1412 100 1412 0 0 792k 0 --:--:-- --:--:-- --:--:-- 1378k { "AOSHTTPClient": { "CreationInfo": { "status": "CreateSuccess", "err_message": "" }, "AuthInfo": { "status": "Authenticated", "err_message": "" }, "MessageCounters": { "get_requested_count": 5, "get_response_received_count": 5, "post_requested_count": 1, "post_response_received_count": 1, "client_recreated_count": 3163 } }, "AnomaliesForwarder": { "blueprint_received_count": 0, "anomalies_received_count": 0, "anomalies_forwarded_count": 0 }, "BlueprintsForwarder": { "blueprint_received_count": 0, "blueprint_forwarded_count": 0 }, "CloudStatusForwarder": { "messages_received_count": 9497, "messages_sent_count": 9497 }, "ProbesForwarder": { "blueprints_received_count": 0, "probe_received_count": 0, "probe_forwarded_count": 0 }, "ProxyRequestProcessor": { "aos_request_sent_count": 0, "aos_response_received_count": 0, "proxy_request_received_count": 0, "proxy_request_responded_count": 0 }, "StreamsForwarder": { "ConnectionInfo": { "status": "Connected", "err_message": "" }, "MessageCounters": { "messages_received_count": 0, "messages_sent_count": 0 } }, "TransactionManager": { "TransactionAddedCount": 22162, "TransactionsProcessedCount": 22162, "TransactionsRegisteredCount": 22162, "TransactionsUnregisteredCount": 22162, "TransactionNotFoundCount": 0, "TransactionNotAckedCount": 0 }, "WebSocketForwarder": { "ConnectionInfo": { "status": "Connected", "err_message": "" }, "AuthInfo": { "status": "Authenticated", "err_message": "" }, "MessageCounters": { "messages_received_count": 22160, "messages_sent_count": 22162 } } }
- (선택 사항) Docker 볼륨이 성공적으로 생성되었는지 확인합니다.
root@user:~/apstra_edge# docker volume ls | grep apstra_edge local apstra_edge_apstra_edge_store
- (선택 사항) 이벤트 로그를 봅니다.
root@user:~/apstra_edge# docker logs --tail 10 -f apstra-edge
- 인벤토리(Inventory) 탭 아래의 UI에서 다음 상태를 확인합니다.
메모:
이러한 상태 중 하나라도 연결 끊김으로 표시되면 상태 텍스트 위로 마우스를 가져가면 오류 메시지가 나타납니다.
- 클라우드 연결 상태: 주니퍼 Apstra 클라우드 서비스 에지 컨테이너와 주니퍼 Apstra 클라우드 서비스 간의 연결 상태입니다.
- Apstra Connectivity is Connected: 주니퍼 Apstra Cloud Services Edge 컨테이너와 주니퍼 Apstra Edge 인스턴스의 연결 상태입니다.
- 컨테이너를 중지하려면 다음 명령을 사용합니다.
root@user:~/apstra_edge# docker compose down Stopping apstra-edge ... done Removing apstra-edge ... done
- 중지된 Edge 컨테이너를 다시 시작하려면 다음 명령을 실행합니다.
root@user:~/apstra_edge# docker compose up -d Creating apstra-edge ... done
설정 후 확인, 조치 및 문제 해결에 대한 자세한 내용은 주니퍼 Apstra 클라우드 서비스 에지 사후 설정: 구성 변경 및 문제 해결을 참조하십시오.