- Transport: WebSocket 다이얼링 실패 오류
- ValidationError(Deployment.metadata)
- WebSocket 다이얼링 중 오류: 핸드셰이크 요청 전송 실패
- grpc-encoding에 대한 압축 해제기가 설치되지 않았습니다.
- 알 수 없는 인증 기관에 의해 서명된 인증서
- 프로젝트를 찾을 수 없음
- 작업 부하에 대한 취약점 검사를 수행하지 못했습니다: jobs.batch가 이미 있음
- 인벤토리 정책이 구동을 막음 (전략: 적용, 상태: 비어 있음, 정책: 일치해야 함)
- 설치 중 구문 분석 오류
- 대시보드에 나타난
GitLab Agent Server: Unauthorized
오류 - 에이전트 버전 불일치
Kubernetes용 GitLab 에이전트 문제 해결
GitLab Kubernetes용 에이전트를 사용할 때 문제를 겪을 수 있습니다. 이 문제를 해결해야 합니다.
먼저 서비스 로그를 보고 시작할 수 있습니다:
kubectl logs -f -l=app.kubernetes.io/name=gitlab-agent -n gitlab-agent
GitLab 관리자인 경우 GitLab 에이전트 서버 로그도 볼 수 있습니다.
Transport: WebSocket 다이얼링 실패 오류
{
"level": "warn",
"time": "2020-11-04T10:14:39.368Z",
"msg": "GetConfiguration failed",
"error": "rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing failed to WebSocket dial: failed to send handshake request: Get \\\"https://gitlab-kas:443/-/kubernetes-agent\\\": dial tcp: lookup gitlab-kas on 10.60.0.10:53: no such host\""
}
이 오류는 kas-address
와 에이전트 pod 간의 연결 문제가 있을 때 발생합니다. 이 문제를 해결하려면 kas-address
가 정확한지 확인하세요.
{
"level": "error",
"time": "2021-06-25T21:15:45.335Z",
"msg": "Reverse tunnel",
"mod_name": "reverse_tunnel",
"error": "Connect(): rpc error: code = Unavailable desc = connection error: desc= \"transport: Error while dialing failed to WebSocket dial: expected handshake response status code 101 but got 301\""
}
이 오류는 kas-address
에 슬래시가 포함되지 않았을 때 발생합니다. 이 문제를 해결하려면 wss
또는 ws
URL이 슬래시로 끝나도록 확인하세요. 예를 들어 wss://GitLab.host.tld:443/-/kubernetes-agent/
또는 ws://GitLab.host.tld:80/-/kubernetes-agent/
와 같이 말입니다.
ValidationError(Deployment.metadata)
{
"level": "info",
"time": "2020-10-30T08:56:54.329Z",
"msg": "Synced",
"project_id": "root/kas-manifest001",
"resource_key": "apps/Deployment/kas-test001/nginx-deployment",
"sync_result": "error validating data: [ValidationError(Deployment.metadata): unknown field \"replicas\" in io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta, ValidationError(Deployment.metadata): unknown field \"selector\" in io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta, ValidationError(Deployment.metadata): unknown field \"template\" in io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta]"
}
이 오류는 매니페스트 파일이 잘못되었고 Kubernetes가 지정된 객체를 생성할 수 없을 때 발생합니다. 매니페스트 파일이 유효한지 확인하세요.
추가적인 문제 해결을 위해 매니페스트 파일을 사용하여 Kubernetes에서 직접 객체를 생성해 보세요.
WebSocket 다이얼링 중 오류: 핸드셰이크 요청 전송 실패
{
"level": "warn",
"time": "2020-10-30T09:50:51.173Z",
"msg": "GetConfiguration failed",
"error": "rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing failed to WebSocket dial: failed to send handshake request: Get \\\"https://GitLabhost.tld:443/-/kubernetes-agent\\\": net/http: HTTP/1.x transport connection broken: malformed HTTP response \\\"\\\\x00\\\\x00\\\\x06\\\\x04\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x05\\\\x00\\\\x00@\\\\x00\\\"\""
}
이 오류는 에이전트 측에서 wss
를 kas-address
로 구성했지만 에이전트 서버가 wss
에서 사용할 수 없을 때 발생합니다. 이 문제를 해결하려면 동일한 스키마가 양쪽에 구성되어 있는지 확인하세요.
grpc-encoding에 대한 압축 해제기가 설치되지 않았습니다.
{
"level": "warn",
"time": "2020-11-05T05:25:46.916Z",
"msg": "GetConfiguration.Recv failed",
"error": "rpc error: code = Unimplemented desc = grpc: Decompressor is not installed for grpc-encoding \"gzip\""
}
이 오류는 에이전트 버전이 에이전트 서버(KAS) 버전보다 최신인 경우 발생합니다. 해결하려면 agentk
와 에이전트 서버의 버전이 동일한지 확인하세요.
알 수 없는 인증 기관에 의해 서명된 인증서
{
"level": "error",
"time": "2021-02-25T07:22:37.158Z",
"msg": "Reverse tunnel",
"mod_name": "reverse_tunnel",
"error": "Connect(): rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing failed to WebSocket dial: failed to send handshake request: Get \\\"https://GitLabhost.tld:443/-/kubernetes-agent/\\\": x509: certificate signed by unknown authority\""
}
이 오류는 GitLab 인스턴스가 에이전트에서 알 수 없는 내부 인증 기관에 의해 서명된 인증서를 사용하는 경우 발생합니다.
이 문제를 해결하려면 /etc/gitlab/trusted-certs
디렉터리에 내부 CA의 공개 인증서를 설치하세요.
또는 에이전트 서버(KAS)가 사용자 지정 디렉터리에서 인증서를 읽도록 구성할 수 있습니다. /etc/gitlab/gitlab.rb
에 다음 구성을 추가하세요:
gitlab_kas['env'] = {
'SSL_CERT_DIR' => "/opt/gitlab/embedded/ssl/certs/"
}
변경 사항을 적용하려면:
-
GitLab을 다시 구성하세요.
sudo gitlab-ctl reconfigure
-
gitlab-kas
를 다시 시작하세요.gitlab-ctl restart gitlab-kas
프로젝트를 찾을 수 없음
{
"level ": "error",
"time ": "2022-01-05T15:18:11.331Z",
"msg ": "GetObjectsToSynchronize.Recv failed",
"mod_name ": "gitops",
"error ": "rpc error: code = NotFound desc = project not found",
}
이 오류는 매니페스트를 유지하는 프로젝트가 공개되지 않은 경우 발생합니다. 이를 해결하려면 프로젝트가 공개되어 있는지 또는 매니페스트 파일이 에이전트가 구성된 리포지터리에 저장되어 있는지 확인하세요.
작업 부하에 대한 취약점 검사를 수행하지 못했습니다: jobs.batch가 이미 있음
{
"level": "error",
"time": "2022-06-22T21:03:04.769Z",
"msg": "작업 부하에 대한 취약점 검사를 수행하지 못했습니다",
"mod_name": "starboard_vulnerability",
"error": "스캔 작업 실행 중: 작업.batch \"scan-vulnerabilityreport-b8d497769\"이(가) 이미 존재합니다"
}
GitLab 에이전트는 각 작업 부하를 스캔하기 위해 작업을 생성하여 취약점을 검사합니다. 스캔이 중단된 경우 이러한 작업이 남을 수 있으며 더 많은 작업이 실행되기 전에 정리해야 합니다. 다음 명령을 실행하여 이러한 작업을 정리할 수 있습니다:
kubectl delete jobs -l app.kubernetes.io/managed-by=starboard -n gitlab-agent
우리는 이러한 작업을 보다 견고하게 정리하도록 노력하고 있습니다.
인벤토리 정책이 구동을 막음 (전략: 적용, 상태: 비어 있음, 정책: 일치해야 함)
{
"error": "인벤토리 정책이 구동을 막음 (전략: 적용, 상태: 비어 있음, 정책: 일치해야 함)",
"group": "networking.k8s.io",
"kind": "Deployment",
"name": "리소스-이름",
"namespace": "네임스페이스",
"status": "스킵됨",
"timestamp": "2022-10-29T15:34:21Z",
"type": "적용"
}
이 오류는 GitLab 에이전트가 객체를 업데이트하려고 시도하고 해당 객체에 필요한 주석이 없는 경우 발생합니다. 이 오류를 해결하려면 다음을 수행할 수 있습니다:
- 필요한 주석을 매뉴얼으로 추가합니다.
- 객체를 삭제하고 에이전트가 다시 생성하도록 합니다.
-
inventory_policy
설정을 변경합니다.
설치 중 구문 분석 오류
에이전트를 설치하는 중에 다음과 같은 오류가 발생할 수 있습니다:
오류: parse error at (gitlab-agent/templates/observability-secret.yaml:1): unclosed action
이 오류는 일반적으로 호환되지 않는 Helm 버전으로 인해 발생합니다. 문제를 해결하려면 Kubernetes 버전과 호환되는 Helm 버전을 사용하는지 확인하세요.
대시보드에 나타난 GitLab Agent Server: Unauthorized
오류
대시보드 for Kubernetes 페이지에서 GitLab Agent Server: Unauthorized. Trace ID: <...>
와 같은 오류가 나타날 수 있습니다. 이는 다음 중 하나로 인해 발생할 수 있습니다:
- 에이전트 구성 파일의
user_access
항목이 존재하지 않거나 잘못된 경우. 해결 방법은 사용자에게 Kubernetes 액세스 권한 부여을 참조하세요. - 브라우저에 여러
_gitlab_kas
쿠키가 존재하며 KAS에 전송되는 경우. 가장 가능성이 높은 원인은 동일 사이트에서 호스팅되는 여러 GitLab 인스턴스인데, 예를 들어gitlab.com
이kas.gitlab.com
을 대상으로 하는_gitlab_kas
쿠키를 설정하고 있지만 해당 쿠키가staging.gitlab.com
에서도 발견되어staging.gitlab.com
에서 오류가 발생하는 경우입니다. 임시로 해결하려면 브라우저 쿠키 리포지터리에서gitlab.com
의_gitlab_kas
쿠키를 삭제하세요. 이미 알려진 이 문제에 대한 수정안은 Issue 418998에서 제안되었습니다. - GitLab 및 KAS가 다른 사이트에서 실행되는 경우, 예를 들어 GitLab이
gitlab.example.com
에 있고 KAS가kas.example.com
에 있는 경우. GitLab은 이러한 사용 사례를 지원하지 않습니다. 자세한 내용은 이슈 416436를 참조하세요.
에이전트 버전 불일치
GitLab의 쿠버네티스 클러스터 페이지 에이전트 탭에서 클러스터의 각 파드에서 에이전트 버전 불일치: 클러스터의 파드 간에 에이전트 버전이 일치하지 않습니다.
라는 경고가 나타날 수 있습니다.
이 경고는 에이전트 서버 for Kubernetes (kas
)가 캐시한 이전 버전의 에이전트로 인한 것일 수 있습니다. kas
는 주기적으로 오래된 에이전트 버전을 삭제하므로, 적어도 20분을 기다려야 에이전트와 GitLab이 조정될 수 있습니다.
경고가 지속되면 클러스터에 설치된 에이전트를 업데이트하세요.