Отчеты о состоянии ресурсов#

Ресурсы Ingress#

Ресурс Ingress может иметь состояние, куда входит адрес (IP-адрес или DNS-имя), через который становятся общедоступными узлы этого ресурса Ingress. Адрес можно видеть в выходных данных команды kubectl get ingress в столбце ADDRESS, как показано ниже:

$ kubectl get ingresses

    NAME           HOSTS              ADDRESS           PORTS     AGE
    myapp-ingress  myapp.example.com   12.13.23.123      80, 443   2m

ANIC должен быть сконфигурирован таким образом, чтобы сообщать о состоянии Ingress:

  1. Используйте флаг командной строки -report-ingress-status.

  2. Определите источник для внешнего адреса. Это может быть:

    • Определенный пользователем адрес, указанный в ключе ConfigMap external-status-address.

    • Служба типа LoadBalancer, настроенная с внешним IP-адресом или без него и указанная с помощью флага командной строки -external-service.

См. документацию по ключам ConfigMap и аргументам командной строки.

Примечание

При завершении работы ANIC не очищает статус ресурсов Ingress.

Ресурсы VirtualServer и VirtualServerRoute#

Ресурс VirtualServer или VirtualServerRoute содержит поле состояния с информацией о состоянии ресурса и IP-адрес, через который становятся общедоступными узлы этого ресурса. Вы можете увидеть состояние в выходных данных команд kubectl get virtualservers или kubectl get virtualserverroutes, как показано ниже:

$ kubectl get virtualservers

    NAME   STATE   HOST                   IP            PORTS      AGE
    myapp  Valid   myapp.example.com      12.13.23.123  [80,443]   34s

Чтобы просмотреть внешний адрес имени узла, связанный с ресурсом VirtualServer, используйте параметр -o wide:

$ kubectl get virtualservers -o wide

    NAME   STATE   HOST               IP    EXTERNALHOSTNAME                                                         PORTS      AGE
    mysite Valid   mysite.example.com       ae430f41a1a0042908655abcdefghijkl-12345678.eu-west-2.elb.amazonaws.com   [80,443]   106s

Примечание

При наличии нескольких адресов отображается только первый из них.

Чтобы просмотреть дополнительные адреса или дополнительную информацию о статусе ресурса, используйте следующую команду:

$ kubectl describe virtualserver <NAME>

    . . .
    Status:
      External Endpoints:
        Ip:        12.13.23.123
        Ports:     [80,443]
      Message:  Configuration for myapp/myapp was added or updated
      Reason:   AddedOrUpdated
      State:    Valid

Спецификация состояния#

Следующие поля отображаются как в статусе VirtualServer, так и в статусе VirtualServerRoute:

Поле

Описание

Тип

State

Текущее состояние ресурса. Возможные значения: Valid (допустимо), Warning (внимание) и Invalid (недопустимо). Дополнительные сведения см. в поле message.

string

Reason

Причина последнего обновления.

string

Message

Дополнительная информация о состоянии.

string

ExternalEndpoints

Список внешних конечных точек, для которых хосты ресурса являются общедоступными.

[]externalEndpoint

Следующее поле отображается только в состоянии VirtualServerRoute:

Поле

Описание

Тип

ReferencedBy

VirtualServer, который ссылается на этот VirtualServerRoute. Формат: пространство имен/имя.

string

ExternalEndpoint#

Поле

Описание

Тип

IP

Внешний IP-адрес.

string

Hostname

Адрес имени узла внешнего балансировщика LoadBalancer.

string

Ports

Список внешних портов.

string

ANIC должен быть настроен таким образом, чтобы сообщать о состоянии VirtualServer или VirtualServerRoute.

Если вы хотите, чтобы ANIC сообщал о внешних конечных точках, определите источник для внешнего адреса. Это может быть:

  • Определенный пользователем адрес, указанный в ключе ConfigMap external-status-address.

  • Служба типа LoadBalancer, настроенная с внешним IP-адресом или без него и указанная с помощью флага командной строки -external-service.

См. документацию по ключам ConfigMap и аргументам командной строки.

Остальные поля будут включаться в отчет и без настроенного внешнего адреса.

Примечание

При завершении работы ANIC не очищает статус ресурсов VirtualServer и VirtualServerRoute.

Ресурсы Policy#

Ресурс Policy включает в себя поле статуса с информацией о состоянии ресурса. Вы можете увидеть статус в выходных данных команды kubectl get policy, как показано ниже:

$ kubectl get policy

    NAME              STATE   AGE
    webapp-policy     Valid   30s

Чтобы просмотреть дополнительные адреса или дополнительную информацию о статусе ресурса, используйте следующую команду:

$ kubectl describe policy <NAME>

    . . .
    Status:
      Message:  Configuration for default/webapp-policy was added or updated
      Reason:   AddedOrUpdated
      State:    Valid

Спецификация состояния#

В состоянии Policy отображаются следующие поля:

Поле

Описание

Тип

State

Текущее состояние ресурса. Возможные значения: Valid (допустимо) или Invalid (недопустимо). Дополнительные сведения см. в поле message.

string

Reason

Причина последнего обновления.

string

Message

Дополнительная информация о состоянии.

string

Ресурсы TransportServer#

Ресурс TransportServer включает в себя поле состояния с информацией о состоянии ресурса. Вы можете увидеть его в выходных данных команды kubectl get transportserver, как показано ниже:

$ kubectl get transportserver

    NAME      STATE   REASON           AGE
    dns-tcp   Valid   AddedOrUpdated   47m

Чтобы просмотреть дополнительные адреса или дополнительную информацию о статусе ресурса, используйте следующую команду:

$ kubectl describe transportserver <NAME>

    . . .
    Status:
      Message:  Configuration for default/dns-tcp was added or updated
      Reason:   AddedOrUpdated
      State:    Valid

Спецификация состояния#

В состоянии TransportServer отображаются следующие поля:

Поле

Описание

Тип

State

Текущее состояние ресурса. Возможные значения: Valid (допустимо), Warning (внимание) и Invalid (недопустимо). Дополнительные сведения см. в поле message.

string

Reason

Причина последнего обновления.

string

Message

Дополнительная информация о состоянии.

string