Невозможно получить доступ к службе панели управления Kibana в Kubernetes Cluser в Ubuntu - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь получить доступ к приборной панели Kibana, когда пытаюсь настроить поиск по локальной сети.Это ссылка , по которой я следовал.Я проверил журналы стручка Кибаны.Он показывает следующую ошибку:

{"type":"log","@timestamp":"2018-09-19T21:45:42Z","tags":["warning","config","deprecation"],"pid":1,"message":"You should set server.basePath along with server.rewriteBasePath. Starting in 7.0, Kibana will expect that all requests start with server.basePath rather than expecting you to rewrite the requests in your reverse proxy. Set server.rewriteBasePath to false to preserve the current behavior and silence this warning."}
root@mTrainer3:/logging# kubectl logs kibana-logging-66d577d965-mbbg5 -n kube-system
{"type":"log","@timestamp":"2018-09-19T21:45:42Z","tags":["warning","config","deprecation"],"pid":1,"message":"You should set server.basePath along with server.rewriteBasePath. Starting in 7.0, Kibana will expect that all requests start with server.basePath rather than expecting you to rewrite the requests in your reverse proxy. Set server.rewriteBasePath to false to preserve the current behavior and silence this warning."}
{"type":"log","@timestamp":"2018-09-19T21:46:08Z","tags":["status","plugin:kibana@6.4.1","info"],"pid":1,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}

Может кто-нибудь предложить, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 20 сентября 2018

После обсуждения было более ясно, что кажется неправильным.

Вы используете локальный кластер без балансировщика нагрузки.Вы должны установить вход или использовать NodePort в качестве типа сервиса.Я собираюсь описать решение с NodePort.Два шага:

  1. Измените kibana-deployment.yaml и удалите в разделе env:
- name: SERVER_BASEPATH
  value: /api/v1/namespaces/kube-system/services/kibana-logging/proxy

, чтобы вы kibana-deployment.yaml выглядели так:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana-logging
  namespace: kube-system
  labels:
    k8s-app: kibana-logging
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
spec:
  replicas: 1
  selector:
  matchLabels:
    k8s-app: kibana-logging
  template:
    metadata:
      labels:
        k8s-app: kibana-logging
      annotations:
        seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
    spec:
      containers:
      - name: kibana-logging
        image: docker.elastic.co/kibana/kibana-oss:6.3.2
        resources:
          # need more cpu upon initialization, therefore burstable class
          limits:
            cpu: 1000m
          requests:
            cpu: 100m
        env:
          - name: ELASTICSEARCH_URL
            value: http://elasticsearch-logging:9200
        ports:
        - containerPort: 5601
          name: ui
          protocol: TCP
Измените kibana-service.yaml, чтобы установить тип службы для NodePort:
apiVersion: v1
kind: Service
metadata:
  name: kibana-logging
  namespace: kube-system
  labels:
    k8s-app: kibana-logging
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/name: "Kibana"
spec:
  type: NodePort
  ports:
  - port: 5601
    protocol: TCP
    targetPort: ui
    nodePort: 30601
  selector:
    k8s-app: kibana-logging

Затем выполните

kubectl apply -f kibana-deployment.yaml
kubectl apply -f kibana-service.yaml

Кибана должна быть доступна в http://<clusterip>:30601

Фон

Вы получите прямой доступ к http://clusterip:30601 без заданного базового пути.Так что это нужно удалить, чтобы кибана использовала / в качестве базового пути.В противном случае он попытается добавить базовый путь / api / v1 / [...] к вашему URL.Вы можете попробовать это, если хотите проверить это.

В этом комментарии от парня с упругим поиском упоминается , что вам нужно полностью удалить base_path, если вы хотите использовать /.

Изменение службы на NodePort необходимо, поскольку K8s не публикует порты по умолчанию.Я только что ответил на похожую проблему на этот вопрос .

Оригинальный ответ (неправильный)

В репозитории, с которым вы связывались, я вижу, что kibana-deploy.yaml должен установить переменные окружения:

env:
  - name: ELASTICSEARCH_URL
    value: http://elasticsearch-logging:9200
  - name: SERVER_BASEPATH
    value: /api/v1/namespaces/kube-system/services/kibana-logging/proxy

Вы установили их соответствующим образом?

Предположим, у вас есть вход, loadbalancer или NodePort непосредственно к экземпляру kibana, так что вы хотите получить к нему прямой доступ с помощью http://yourserver:9200/. Затем SERVER_BASEPATH это /

...