콘텐츠로 이동

Customer Edge 진단

Customer Edge(CE)는 이 리포지토리가 Azure에 프로비저닝하는 F5 Distributed Cloud 노드입니다 — terraform/modules/ce-node, volterraedgeservices/volterra-node 마켓플레이스 이미지로 빌드됩니다.

이 노드는 데이터 플레인(Argo), 컨트롤 플레인(Vega), Envoy 프록시, Kubernetes 스택, 그리고 노드를 등록하고 그 위의 다른 모든 것을 관리하는 에이전트인 vpm을 실행합니다.

CE에 문제가 발생하면 Site CLI가 진단 수단입니다. 첫 번째 결정은 어떤 접근 경로가 해당되는지이며, 이를 잘못 선택하면 노드가 고장 난 것처럼 보이는 방식으로 시간을 낭비하게 됩니다.

네 가지 접근 경로, 서로 대체할 수 없습니다

섹션 제목: “네 가지 접근 경로, 서로 대체할 수 없습니다”

디버그 API는 F5 Distributed Cloud 컨트롤 플레인을 통해 노드에 도달합니다. 이것이 바로 이 구분이 중요한 이유입니다. API는 노드가 등록을 완료하고 ONLINE을 보고한 이후에만 응답할 수 있습니다.

등록에 실패한 노드 — 잘못된 cloud-init, 만료된 토큰, register.ves.volterra.io로의 경로 없음 — 는 바로 진단이 필요한 경우이면서, 바로 API가 처리할 수 없는 경우입니다.

Site Console은 특정 명령이 아니라 F5 자체의 트러블슈팅 UI를 원할 때 가장 먼저 시도해볼 경로입니다. 요구 사항이 가장 적습니다 — 키도, 점프 호스트도, 노드의 공용 IP도 필요 없습니다 — 누가 연결할 수 있는지가 Azure RBAC 결정이 되기 때문이며, 사이트가 등록되었는지 여부와 관계없이 응답합니다. Azure Bastion이 필요하며, 이 배포에서는 enable_bastion으로 게이트되어 있고 기본적으로 배포되지 않습니다.

SSH는 어플라이언스의 전체 명령 영역에 도달하는 유일한 경로입니다 — 디버그 API는 34개 명령을 노출하지만 노드 자체는 훨씬 더 많은 명령을 제공합니다. 두 가지가 이를 제약합니다. sshd는 노드의 내부(SLI) 주소에서만 응답하므로 VNet 내부의 호스트가 필요합니다. 그리고 키는 첫 부팅 시 cloud-init에 의해 기록되는데, 사이트 객체의 ssh_key 필드는 작동하지 않기 때문입니다 — vpmadmin 사용자를 건너뛰고 이를 적용하지 않습니다. 따라서 실행 중인 노드에서 이를 활성화하려면 노드를 교체해야 합니다.

정리하면: 사이트가 ONLINE이고 34개 명령으로 충분하다면 디버그 API를 사용하십시오. UI가 필요하거나, 등록되지 않았지만 네트워크 경로는 있는 노드라면 Site Console을 사용하십시오. 나머지 명령 영역이 필요하고 VNet에 도달할 수 있다면 SSH를 사용하십시오. 노드에 작동하는 네트워크 경로가 전혀 없다면 시리얼 콘솔이 유일한 진입 방법입니다.

아래 모든 페이지의 모든 명령에 적용됩니다.

  • 확신이 없다면 읽기 전용으로만. 명령 영역은 두 가지 권한 계층으로 나뉘며, Exec 계층은 노드를 변경하거나 상태 마커를 읽습니다. 이 페이지들의 어떤 것도 Exec 명령을 실행하지 않으며, 캡처 하니스도 실행하지 않습니다.
  • 명령 이름만 보고 안전하다고 가정하지 마십시오. ip-link-set은 조회처럼 읽히지만 인터페이스를 다운시킵니다. systemctl-restart-crio는 라이브 데이터 플레인 아래에서 컨테이너 런타임을 재시작합니다.
  • 질문에 답하는 가장 좁은 범위의 명령을 선택하십시오. healthdiagnosis는 노드를 저렴하게 요약합니다. flow-l은 모든 라이브 플로우를 덤프하고, flow-l-match는 하나의 연결에 대해 동일한 질문에 답합니다.
  • CE는 라이브 트래픽을 처리합니다. 이들은 공유 데모 환경입니다. 디버깅 중인 사이트에서 누군가 발표하고 있다고 가정하십시오.

이 테넌트가 실행하는 소프트웨어 빌드에서 디버그 API를 통해 접근할 수 있는 모든 명령이며, 각각의 출력은 다른 곳에서 전사한 것이 아니라 라이브 노드에서 캡처한 것입니다.

명령 참조는 모든 명령을 카테고리, 권한 계층 및 전송 방식과 함께 나열합니다. 워크플로는 문제가 발생했을 때 실제로 사용하는 순서로 이들을 연결합니다.

Site CLI의 온박스 전용 부분 — configure, configure-network, factory-reset, upgrade 및 약 60여 개의 추가 ExecCLI 명령 — 은 다루지 않습니다. 아래 모든 페이지와 달리 그 출력이 라이브 노드에서 캡처되지 않았기 때문입니다.

그러나 더 이상 손에 닿지 않는 것은 아닙니다. scripts/sitecli_ssh_harvest.pySSH를 통해 어플라이언스 자체의 자동 완성 메뉴를 구동하고 어플라이언스가 각 명령에 대해 제공하는 설명을 기록하므로, 그 영역을 추측하는 대신 측정할 수 있습니다. 실행은 기본적으로 거부됩니다 — 모든 것을 열거하되 허용 목록에 있는 것만 실행합니다 — 검증되지 않은 명령 구문과 검증되지 않은 명령 효과가 바로 이 문서가 반복을 피하기 위해 존재하는 결함이기 때문입니다.