• Русский
  • Устранение неполадок статуса коннектора

    Это руководство содержит подробную информацию, которая поможет вам диагностировать и решать распространённые проблемы с коннекторами на основе их условий статуса.

    Проверка статуса коннектора

    Чтобы просмотреть полную информацию о статусе коннектора, включая все условия, выполните:

    kubectl describe connector <connector-name> -n <namespace>

    Для более подробной информации, включая полный объект статуса и условия:

    kubectl get connector <connector-name> -n <namespace> -o yaml

    Эти команды отобразят все состояния условий, что позволит легко определить, какие именно условия не выполняются.

    Устранение неполадок конкретных условий

    Ready = False

    Это сводное условие, которое истинно только тогда, когда все остальные условия истинны.

    Шаги по устранению неполадок:

    1. Проверьте все остальные условия, чтобы определить, какое конкретно условие имеет значение False
    2. Сосредоточьтесь на решении конкретных проблемных условий согласно приведённым ниже рекомендациям
    3. Убедитесь, что спецификация коннектора настроена правильно

    ConnectorClassReady = False

    Указывает, что класс коннектора не существует или является недействительным.

    Шаги по устранению неполадок:

    1. Подтвердите, что ConnectorClass существует:
      kubectl get connectorclass <class-name>
    2. Проверьте правильность конфигурации коннектора:
      kubectl get connector <connector-name> -n <namespace> -o jsonpath='{.spec.connectorClassName}'
    3. Проверьте определения connectorclass:
      kubectl get connectorclass <class-name> -o yaml

    Распространённые причины:

    • Ошибка в написании имени ConnectorClass
    • ConnectorClass не установлен
    • Использование ConnectorClass из другого namespace (ConnectorClasses имеют область действия кластера)

    Пример ошибки:

    conditions:
      - lastTransitionTime: "2023-05-15T10:25:30Z"
        message: "connectorclass.connectors.alauda.io \"git\" not found"
        reason: ConnectorClassNotFound
        status: "False"
        type: ConnectorClassReady

    Решение: Установите отсутствующий ConnectorClass или исправьте имя класса в конфигурации коннектора.

    SecretReady = False

    Указывает на проблемы с секретом аутентификации.

    Шаги по устранению неполадок:

    1. Подтвердите, что Secret существует:
      kubectl get secret <secret-name> -n <namespace>
    2. Проверьте, что у Secret правильный тип для метода аутентификации:
      kubectl get secret <secret-name> -n <namespace> -o jsonpath='{.type}'
    3. Проверьте, что данные Secret содержат необходимые поля:
      kubectl get secret <secret-name> -n <namespace> -o yaml

    Распространённые причины:

    • Секрет не существует
    • Секрет находится в неправильном namespace
    • Неправильный тип секрета
    • Отсутствуют необходимые поля в секрете
    • RBAC ограничивает доступ к секрету

    Пример ошибки:

    conditions:
      - lastTransitionTime: "2023-05-15T10:27:15Z"
        message: "secrets \"my-git-creds\" not found"
        reason: SecretNotFound
        status: "False"
        type: SecretReady

    Решение: Создайте отсутствующий секрет или исправьте ссылку на секрет в конфигурации коннектора.

    LivenessReady = False

    Указывает, что целевой сервис недоступен.

    Шаги по устранению неполадок:

    1. Проверьте правильность адреса коннектора:
      kubectl get connector <connector-name> -n <namespace> -o jsonpath='{.spec.address}'
    2. Проверьте подключение к целевому сервису:
      kubectl run -it --rm --restart=Never curl --image=curlimages/curl -n <namespace> -- curl -v <address>
    3. Проверьте сетевые политики:
      kubectl get networkpolicies -n connectors-system

    Распространённые причины:

    • Неправильный адрес цели
    • Целевой сервис не работает
    • Сетевые политики блокируют доступ
    • Проблемы с разрешением DNS
    • Брандмауэр блокирует соединения

    Пример ошибки:

    conditions:
      - lastTransitionTime: "2023-05-15T10:29:00Z"
        message: "Get \"https://github.invalid.com\": dial tcp: lookup github.invalid.com: no such host"
        reason: ConnectionFailed
        status: "False"
        type: LivenessReady

    Решение: Обновите адрес на корректный, доступный URL или устраните проблемы с сетевым подключением.

    AuthReady = False

    Указывает на ошибку аутентификации с предоставленными учетными данными.

    Шаги по устранению неполадок:

    1. Проверьте учетные данные в секрете:
      kubectl get secret <secret-name> -n <namespace> -o jsonpath='{.data.username}' | base64 -d
      kubectl get secret <secret-name> -n <namespace> -o jsonpath='{.data.password}' | base64 -d
    2. Проверьте правильность параметров аутентификации:
      kubectl get connector <connector-name> -n <namespace> -o jsonpath='{.spec.auth}'
    3. Проверьте аутентификацию вручную:
      kubectl run -it --rm --restart=Never curl --image=curlimages/curl -n <namespace> -- \
        curl -v -u <username>:<password> <address>

    Распространённые причины:

    • Неверное имя пользователя или пароль
    • Истёкший токен
    • Недостаточные права
    • Несовпадение типа аутентификации
    • Репозиторий/ресурс не существует

    Пример ошибки:

    conditions:
      - lastTransitionTime: "2023-05-15T10:32:20Z"
        message: "Authentication failed: status code 401"
        reason: AuthenticationFailed
        status: "False"
        type: AuthReady

    Решение: Обновите учетные данные в секрете или убедитесь, что у пользователя есть необходимые права для доступа к ресурсу.

    ProxyServiceReady = False

    Указывает на проблемы с конфигурацией прокси-сервиса.

    Шаги по устранению неполадок:

    1. Проверьте, существует ли прокси-сервис:
      kubectl get service -n connectors-system -l app.kubernetes.io/name=connectors-proxy
    2. Проверьте наличие эндпоинтов у прокси-сервиса:
      kubectl get endpoints -n connectors-system connectors-proxy-service
    3. Проверьте статус прокси-подов:
      kubectl get pods -n connectors-system -l app.kubernetes.io/name=connectors-proxy

    Распространённые причины:

    • Прокси-сервис не развернут
    • Прокси-поды не запущены
    • Ошибка конфигурации сервиса
    • Сетевые политики блокируют доступ к прокси
    • Ограничения ресурсов (CPU/память)

    Пример ошибки:

    conditions:
      - lastTransitionTime: "2023-05-15T10:35:10Z"
        message: "Service connectors-proxy-service not found in namespace connectors-system"
        reason: ProxyServiceNotFound
        status: "False"
        type: ProxyServiceReady

    Решение: Разверните компонент connectors-proxy или исправьте конфигурацию сервиса.

    Расширенное устранение неполадок

    Проверка логов компонентов

    Для более глубокого анализа проверьте логи компонентов контроллера:

    # Логи controller manager
    kubectl logs -n connectors-system -l app.kubernetes.io/name=connectors-controller-manager
    
    # Логи прокси-сервиса
    kubectl logs -n connectors-system -l app.kubernetes.io/name=connectors-proxy
    
    # Логи CSI драйвера
    kubectl logs -n connectors-system -l app.kubernetes.io/name=connectors-csi

    Дополнительные ресурсы