OKD console#

OKD console — аналог инструмента администрирования kubectl в виде одностраничного веб-приложения.

Функции OKD console включают:

  • проксирование API DropApp в /api/DropApp;

  • предоставление дополнительных API для взаимодействия с кластером;

  • обслуживание всех статических ресурсов внешнего интерфейса;

  • аутентификацию.

OKD console работает как pod на узлах плоскости управления.

Получите доступ к информационной панели OKD, которая собирает высокоуровневую информацию о кластере, перейдя в раздел «Home» → «Dashboards» → «Overview».

Панель управления OKD console состоит из следующих вкладок: Details, Cluster Inventory, Cluster Capacity, Cluster Utilization, Events, Top Consumers.

Details предоставляет краткий обзор деталей кластера.

Статус включает в себя ok, error, warning, in progress, и unknown. Ресурсы могут добавлять собственные имена статусов.

Cluster Inventory содержит сведения о количестве ресурсов и связанных состояниях. Это полезно, когда требуется вмешательство для решения проблем, включая следующую информацию:

  • о количестве узлов;

  • о количестве pods;

  • о требованиях к постоянному объему хранилища;

  • об узлах Bare Metal в кластере.

Cluster Capacity позволяет отслеживать выделяемые ресурсы. Диаграмма содержит внутреннее кольцо, отображающее текущее потребление и внешнее кольцо — пороговые значения, настроенные для ресурса, включая следующую информацию:

  • о процессорном времени;

  • о выделении памяти;

  • об используемом объеме хранилища;

  • о потребляемых сетевых ресурсах.

Events — список сообщений, связанных с недавними действиями в кластере, такими как создание pods или миграция виртуальной машины на другой хост.

Top Consumers - список потребителей ресурсов кластера. Щелкните ресурс, чтобы перейти к подробной странице со списком pods и узлов, которые потребляют наибольший объем указанного ресурса кластера (ЦП, памяти или хранилища).

Сценарий установки OKD console#

Для установки OKD console следуйте шагам:

  1. Создайте файл манифеста dapp-okd-console.yaml следующего содержания:

    dapp-okd-console.yaml
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: okd-console-acc
      namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: okd-console-role
      namespace: kube-system
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - kind: ServiceAccount
      name: okd-console-acc
      namespace: kube-system
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: okd-secret
      namespace: kube-system
      annotations:
        kubernetes.io/service-account.name: okd-console-acc
    type: kubernetes.io/service-account-token
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: okd-console-deployment
      namespace: kube-system
      labels:
        k8s-app: okd-console
    spec:
      replicas: 1
      selector:
        matchLabels:
          k8s-app: okd-console
      template:
        metadata:
          labels:
            k8s-app: okd-console
        spec:
          containers:
            - name: okd-console-app
              image: /dapp-okd-console-2/console:4.12.0 # актуальный репозиторий с образами dropapp
              env:
                - name: BRIDGE_USER_AUTH
                  value: disabled # no authentication required
                - name: BRIDGE_K8S_MODE
                  value: off-cluster
                - name: BRIDGE_K8S_MODE_OFF_CLUSTER_ENDPOINT
                  value: https://000.000.000.00:6443 #актуальный IP адрес узла плоскости управления
                - name: BRIDGE_K8S_MODE_OFF_CLUSTER_SKIP_VERIFY_TLS
                  value: "true" # no tls enabled
                - name: BRIDGE_K8S_AUTH
                  value: bearer-token
                - name: BRIDGE_K8S_AUTH_BEARER_TOKEN
                  valueFrom:
                    secretKeyRef:
                      name: okd-secret
                      key: token
    
    ---
    kind: Service
    apiVersion: v1
    metadata:
      name: okd-console-np-service
      namespace: kube-system
    spec:
      selector:
        k8s-app: okd-console
      type: NodePort
      ports:
        - name: http
          port: 9000
          targetPort: 9000
          nodePort: 30036
          protocol: TCP
    
  2. Выполните команду:

    kubectl apply -f ./dapp-okd-console.yaml
    
  3. Выполните команду:

    kubectl rollout status deployment.apps/okd-console-deployment -n kube-system
    
  4. Проверьте что в выводе команды шага 3 содержатся deployment okd-console-deployment successfully rolled out.

  5. Сделайте port-forward для сервиса okd-console на localhost, выполнив команду:

    kubectl port-forward service/okd-console-np-service -n kube-system --address localhost 9099:9000
    
  6. Выполните команду:

    Curl localhost:9099
    
  7. Убедитесь, что команда curl возвращает страницу с OKD console.