clicklink라는 단일 바이너리로 제공되며, 실행할 명령어는 clicklink clctl 아래에 있습니다. 이 페이지에서는 설치 및 일상적인 운영에 사용하는 명령어를 다룹니다. 각 명령어에 --help를 지정하면 전체 도움말을 확인할 수 있습니다.
troubleshoot, scraper, preflight, executor, instances create, platform 하위 트리의 플래그와 전역 --endpoint 및 --cluster는 CLCTL_* 환경 변수(각 플래그의 도움말 출력에 이름이 표시됨) 또는 ~/.clicklink/clctl.yaml로도 지정할 수 있습니다. 전역 -v는 명령어가 수행하는 관리자 API 요청을 기록하며, -vv는 요청 본문까지 함께 기록합니다.
instances 및 commands 명령어와 executor teardown은 실행기의 로컬 API를 읽습니다. 두 개의 전역 플래그로 이를 선택합니다: --endpoint <url>(기본값 http://127.0.0.1:9999, 환경 변수 CLCTL_ENDPOINT)와 --cluster <name>(환경 변수 CLCTL_CLUSTER)이며, 후자는 명령어가 필요로 할 때 관리형 클러스터를 지정합니다. Kubernetes에서는 먼저 실행기 배포에 kubectl port-forward를 여십시오. 관리형 서비스를 참조하세요.
clicklink clctl init
등록 토큰, 저장된 등록 번들 또는 대역 외에서 서명된 인증서를 사용하여 커넥터를 초기 설정합니다. 한 번의 호출로 구성을 준비하고, ClickHouse 액세스를 프로비저닝하며, mTLS 클라이언트 인증서를 가져오고, 배포(Helm 차트 또는 systemd unit)한 후 상태를 확인합니다.--managed를 사용하면 감지된 EKS 클러스터에 대해 실행기를 활성화하고 실행기의 클러스터 전체 액세스 권한을 부여합니다. 다시 실행해도 안전합니다. init은 구성과 클러스터 UUID를 유지하며, 자격 증명은 원자적으로 덮어쓰고, --force를 전달하지 않는 한 기존 클라이언트 키를 재사용합니다. 전체 흐름은 onboarding을, 실행기의 역할은 managed services를 참조하십시오.
진입점
진입점은 정확히 하나만 지정해야 합니다.공통 플래그
서명 플래그(1단계에만 해당)
Kubernetes 전용 플래그
--target helm에서만 유효합니다.
VM 전용 플래그
--target systemd와 함께 사용할 때만 유효합니다.
플래그 충돌
--handoff,--enroll,--signed-cert는 상호 배타적이며, 정확히 하나를 지정해야 합니다.- Kubernetes 전용 플래그는
--target helm을 지정한 경우에만 사용할 수 있습니다.--target helm에서는--server,--ca-data,--cluster-name,--no-instance가 거부됩니다(Helm 흐름은 워크스테이션의 kubeconfig를 읽고 클러스터 내 인스턴스를 감지합니다). --no-instance와--instance는 상호 배타적입니다.--managed와--no-managed는 상호 배타적이며,--cluster-name은--no-managed와 함께 사용하면 거부됩니다.--target helm에서는--instance와--instance-namespace를--managed와 함께 사용하면 거부됩니다.--no-auto-sign과--sign-endpoint는 서로 함께 사용할 수 없으며, 둘 다(--api-private-ca,--managed,--no-managed,--cluster-name포함)--signed-cert와 함께 사용하면 거부됩니다.--platform-bundle을 사용하려면--target helm,--managed,--from-terraform이 필요하며,--no-managed또는--signed-cert와 함께 사용하면 거부됩니다. 4개의 풀 플래그는--platform-bundle없이 사용하면 거부되며, NodePool이 이미 존재하는 경우에도 거부됩니다.--operators와--no-gateway는 서로 함께 사용할 수 없습니다.--skip-provision을 지정하면--ch-pod,--ch-user-suffix,--server,--ca-data,--ch-admin-password-stdin이 거부됩니다(프로비저닝이 수행되지 않음).
clicklink clctl preflight
구성, 파일, 네트워크, clickhouse, systemd, 액세스, 디스크, 민감 정보 마스킹 범주별로 그룹화된 커넥터 검사 모음을 실행합니다. 각 검사는 통과, 경고, 실패 또는 건너뜀 상태를 보고합니다. 종료 코드 0은 모든 검사가 통과했음을 의미하며(경고는 non-blocking), 종료 코드 2는 하나 이상이 실패했음을 의미합니다. 이 명령은 기본적으로 로컬에서 실행됩니다.--k8s-namespace를 지정하면 kubectl exec를 통해 커넥터 파드의 바이너리를 실행하고, 보고서는 로컬에서 렌더링합니다(systemd 검사는 파드에서 항상 건너뜁니다). 원격 채널 플래그를 사용하면 원격 VM에 설치된 바이너리를 대신 실행합니다.
--k8s-* 플래그와 원격 채널 플래그는 함께 사용할 수 없습니다. 대상 하나만 선택하십시오.
clicklink clctl troubleshoot session
지원 세션을 활성화, 비활성화하고 상태를 확인합니다. 지원 세션은 Troubleshooter가 명령어를 수락하는 시간 제한 창입니다. 활성화된 세션이 없으면 WebSocket이 연결되어 있더라도 데몬은 모든 명령어를 거부합니다. 지원 세션을 참조하십시오. 명령어는 다음 두 가지 모드 중 하나로 실행됩니다.- 로컬 파일(기본값): Troubleshooter가 실행되는 호스트에서 세션 상태 파일을 읽고 씁니다(기본값:
/var/lib/clicklink/session.json). - 게이트웨이:
--gateway-url을 사용하면 워크스테이션에서 OIDC ID 토큰을 획득한 후 Troubleshooter의 세션 게이트웨이를 호출합니다.
공통 플래그
세션 활성화
이미 활성 상태인 세션이 있으면 활성화할 수 없습니다. 먼저 비활성화하거나 만료될 때까지 기다리십시오.
session 비활성화
session을 즉시 비활성화합니다. 활성 session이 없으면 아무 작업도 수행하지 않습니다.세션 상태
세션의 활성 여부, 활성화한 사용자 및 만료 시점을 표시합니다.--output(-o)으로 table(기본값) 또는 json을 선택합니다.
Kubernetes에서는 포트 포워딩을 통해 게이트웨이에 연결합니다.
clicklink clctl troubleshoot gateway trust
VM에서 세션 게이트웨이는 self-signed TLS 인증서를 제공합니다. 이 명령어는 인증서의 SHA-256 fingerprint를~/.clicklink/clctl.yaml에 기록하여 session 명령어가 이를 검증할 수 있도록 합니다. 고정된 fingerprint가 더 이상 일치하지 않으면 연결이 안전하게 실패합니다. 신뢰는 다음 두 가지 방법 중 하나로 대역 외에서 설정됩니다.
- 원격 채널 flags를 사용하면 명령어가 이미 인증된 channel을 통해 VM에서 인증서를 읽어 고정합니다.
- channel을 사용하지 않는 경우, 커넥터가 인증서를 생성할 때 log에 기록한 SHA-256 값을
--gateway-fingerprint로 전달합니다. 명령어는 가져온 인증서가 일치하는 경우에만 고정합니다. flag를 생략하면 아무것도 고정하지 않고 제시된 fingerprint를 출력합니다.
clicklink clctl troubleshoot audit tail
Troubleshooter 감사 로그의 마지막 항목을 출력합니다. 각 줄에 하나의 JSON 객체가 포함되는 형식이며, 데몬이 허용하거나 차단한 명령마다 항목이 하나씩 기록됩니다. 로그를 읽기 전용으로 엽니다.
커넥터 런타임 image에는 셸이 없으므로 Kubernetes에서는 이 명령이 지원되는 reader입니다:
액세스 프로비저닝
clicklink clctl scraper access provision 및 clicklink clctl troubleshoot access provision은 구성 요소별 인스턴스 액세스 번들, 즉 읽기 전용 ClickHouse 사용자와 해당 권한 부여, 그리고 구성 요소가 사용하는 Kubernetes ServiceAccount, RBAC, 토큰을 생성합니다. --force를 사용하면 이를 교체합니다. init는 설치 과정에서 이를 인라인으로 실행하며, 독립 실행형 명령어는 재실행 및 자격 증명 교체에 사용합니다.
인스턴스에 대한 구성 요소 하나의 자격 증명을 교체합니다:
clicklink clctl executor access
init --managed는 사용자의 자격 증명으로 실행기의 클러스터 전체 권한 부여를 적용합니다. 적용에 실패하면 init이 클러스터 관리자 권한을 가진 kubeconfig에서 실행해야 할 명령어를 출력합니다. VM에서는 access apply만 실행하면 되며(bundle이 이미 준비되어 있음), Kubernetes에서는 access grant를 실행한 뒤 access apply를 실행합니다. onboarding을 참조하십시오.
executor access grant
실행기의 클러스터 전역 액세스 번들을<output-dir>/_cluster/ 아래에 렌더링합니다. ServiceAccount 1개, 클러스터 역할과 ClusterRoleBinding, 그리고 해당 ServiceAccount를 실행기의 네임스페이스 접두사 하위 네임스페이스로 제한하는 ValidatingAdmissionPolicy가 포함됩니다. 적용하기 전에 렌더링된 RBAC를 검토하십시오.
executor access apply
렌더링된 클러스터 전역grant bundle을 적용합니다. 여기에는 ServiceAccount의 홈 네임스페이스, ServiceAccount, 클러스터 역할 및 ClusterRoleBinding, admission 정책이 포함되며, 이어서 ServiceAccount 토큰을 발급해 bundle에 포함시킵니다. 서비스는 등록하지 않습니다.
clicklink clctl executor prepare
managed 서비스 생성에 필요한 사용자 측의 모든 준비 작업을, 첫 번째 실패 지점에서 중단되는 멱등한 단일 실행으로 수행합니다. 서비스 이름을 선택하거나 검사하고, 데이터 및 백업 버킷과 IAM role을 생성합니다(또는 직접 제공한 role을 검증). VM에서는 서비스 네임스페이스에 대한 실행기의 액세스 bundle도 렌더링하고 적용합니다. Kubernetes에서는 실행기가 자신의 파드 ServiceAccount로 실행되기 때문에 bundle 단계를 건너뜁니다. 그런 다음default USER의 password를 발급하고(한 번만 표시됨) instances create에 사용할 생성 본문을 기록합니다. managed services를 참조하십시오.
VM에서는 커넥터 호스트에서 실행됩니다. Kubernetes 설치 환경이라면 AWS 자격 증명와 managed 클러스터용 kube context를 갖춘 workstation에서 실행됩니다. 해당 workstation에는 커넥터 구성 사본(--config), 실행기의 로컬 API로 연결되는 포트 포워딩, 그리고 쓰기 가능한 --output-dir도 필요합니다.
clicklink clctl executor teardown
ClickHouse Cloud에서 삭제한 서비스에 대해prepare가 생성한 항목을 제거합니다. 여기에는 IAM role, 기록된 이름, 해당 서비스에 대한 실행기의 레코드가 포함되며, VM에서는 서비스의 클러스터 역할과 ClusterRoleBinding, 로컬 액세스 bundle, registry entry도 함께 제거됩니다. 실행기가 실행 중이어야 하고 서비스는 terminated(또는 stale) 상태여야 하며, 서비스 네임스페이스에 ClickHouse 클러스터가 아직 남아 있으면 실행이 거부됩니다. prepare가 생성한 버킷과 그 안의 데이터 및 백업은 삭제를 명시적으로 요청하지 않는 한 유지되며, 유지된 버킷에는 clicklink:retained-from=<name> 태그가 다시 지정됩니다. 이 명령은 어떤 것을 삭제하기 전에 모든 항목을 먼저 읽습니다. 서비스 삭제를 참조하십시오.
clicklink clctl instances
instances create
준비된 create를 커넥터 자체의 자격 증명을 사용해 엔드포인트를 통해 ClickHouse Cloud로 제출합니다. 생성 기능은 환경별로 활성화됩니다. 서비스 생성을 참조하십시오. ClickHouse Cloud가 할당한 표시 이름, state, 그리고 서비스 name을 사용하는watch: 힌트를 출력합니다. create body는 prepare가 작성한 파일에서 가져오거나, --deployed-name, --data-bucket, --backup-bucket, --irsa-role-arn 네 가지 flag를 함께 지정해 구성합니다. 동일한 입력으로 다시 시도하면 최초의 create가 반환됩니다.
instances list
실행기가 알고 있는 모든 서비스를 JSON 형식으로 출력합니다.--cluster <name>을 지정하면 관리형 클러스터 기준으로 필터링합니다.
instances get
서비스 하나를 생성 당시 지정된 저장소 정보와 함께 JSON으로 출력합니다.--name <name>은 필수이며 클러스터 지정도 필수입니다. --cluster를 전달하거나, CLCTL_CLUSTER를 설정하거나, ~/.clicklink/clctl.yaml에 지정하십시오.
아래 세 가지 하위 명령어는 ClickHouse Cloud를 거치지 않고 실행기의 로컬 API로 명령어를 직접 전송합니다. 계정 담당 팀의 요청이 있을 때만 실행하십시오. 각 명령어에는 --name <name>과 클러스터 지정(--cluster, CLCTL_CLUSTER, 또는 ~/.clicklink/clctl.yaml)이 필요하며, 실행하면 해당 명령어가 JSON으로 출력됩니다. 출력된 id를 commands get에 전달하면 진행 상황을 추적할 수 있습니다. 실패한 명령어의 경우 result에 오류 내용이 담깁니다.
instances scale
ScalingOverride를 사용해 특정 서비스의 서버 레플리카 수를 설정합니다. --server-replicas <n>는 필수이며 0보다 커야 합니다. 실행기는 재정의를 적용하는 동안 해당 명령을 running으로 보고하고, 레플리카가 준비되면 completed로 보고합니다.
instances patch
서비스 하나를 그 자리에서 변경합니다. 사용할 수 있는 패치는--create-nlb 하나뿐이며, 이 옵션 없이 실행하면 명령이 nothing to patch를 반환하며 실행을 거부합니다. 이 옵션은 내부 NLB를 Kubernetes Service로 프로비저닝하여 클러스터 외부의 스크레이퍼가 서버에 접근할 수 있도록 하며, AWS에서만 지원됩니다. 실행기는 다음 동기화 시점에 로드 밸런서로부터 스크레이퍼의 호스트를 백필합니다.
instances delete
클러스터에서 서비스 하나를 제거합니다. 서비스를 중지한 뒤 오퍼레이터가 순서대로 종료(shutdown)를 완료할 때까지 대기합니다. 이후 워크로드를 제거하고,ns-<name> 네임스페이스와 scraper가 생성한 아티팩트를 삭제한 다음, 네임스페이스가 완전히 사라질 때까지 기다렸다가 서비스를 terminated로 표시합니다. 서비스의 버킷과 IAM role은 그대로 남으며, executor teardown이 사용자의 자격 증명으로 이를 제거합니다. 이미 완료된 삭제를 다시 실행해도 아무 작업도 수행되지 않습니다. 일반적으로는 ClickHouse Cloud에서 서비스를 삭제하며, 자세한 내용은 서비스 삭제를 참조하십시오.
clicklink clctl 명령어
commands list
실행기가 기록한 명령어를 JSON 형식으로, 최신 항목부터 출력합니다. 실패한 명령어의result에는 해당 오류가 담기며, 승인 대기 중인 플랫폼 동기화라면 실행해야 할 정확한 platform approve 명령어가 여기에 표시됩니다.
commands get
clicklink clctl commands get <id>는 명령어 하나를 해당 stage 및 결과와 함께 출력합니다.
clicklink clctl platform approve
사용자 본인의 클러스터 자격 증명으로 플랫폼 변경 하나를 승인합니다. 실행기가 스테이징한 bundle을 읽어 해시를 계산한 후, 그 안의 모든 차트를 실행기와 완전히 동일한 방식으로 렌더링합니다. 선택한 kube context로 권한 부분을 적용하고, 필요한 경우 실행기의pcm-platform 아이덴티티를 생성한 뒤 해당 토큰을 발급합니다. 커넥터 엔드포인트로는 어떠한 요청도 보내지 않습니다. 권한 부분은 네임스페이스, CustomResourceDefinitions, ServiceAccounts, 클러스터 역할 및 바인딩, 역할 및 바인딩, 웹훅 및 admission 구성, PriorityClasses, StorageClass입니다. 실행기는 그다음 워크로드 부분만, 그것도 해당 토큰이 유효한 동안에만 적용합니다. 플랫폼 업데이트를 참조하십시오.
ClickHouse의 레지스트리에 직접 액세스하려면 커넥터 EC2 VM에서 승인을 실행하십시오. CLI는 kubeconfig 자격 증명과 무관하게 해당 인스턴스 프로필을 사용하여 읽기 전용 풀 역할을 수임합니다. 다른 ECR 차트 레지스트리는 주변 환경의 AWS 자격 증명을 사용합니다. 레지스트리 자격 증명을 참조하십시오.
clicklink clctl platform reset
service가 없는 테스트 클러스터용: 플랫폼 release를 의존성 역순으로 제거하고 실행기의 플랫폼 토큰 bundle을 삭제하여 최초 설치를 다시 수행해볼 수 있도록 합니다. 변경을 시작하기 전에 이 커넥터가 소유한 네임스페이스의 ClickHouse 클러스터 목록을 조회하고, 하나라도 존재하면 작업을 거부합니다. CustomResourceDefinition, RBAC, StorageClass는 그대로 유지됩니다. 다음 플랫폼 동기화 전에platform approve를 다시 실행하십시오.
원격 채널 플래그
preflight, gateway trust, access provision은 VM 대상에 연결하는 방식을 선택하는 공통 플래그 세트를 공유합니다.