Что такое URL для Kibana UI - PullRequest
0 голосов
/ 08 мая 2018

http://grs -preprodkubemaster01: 5601 / kibana

Я следовал документации и установил Kibana. Когда я использовал службу как тип: LoadBalancer, служба не запускается,поэтому я удалил тип: LoadBalancer и позволил ему по умолчанию ClusterIP, он подошел хорошо.(Обратите внимание, у меня нет AWS) Но я не уверен, как получить доступ к интерфейсу, я пробовал этот URL, но он не работает.http://my -preprodkubemaster01 / api / v1 / proxy / пространства имен / kube-system / services /asticsearch-logging / app / kibana любые идеи, как получить доступ к пользовательскому интерфейсу Kibana.Я проверил обслуживание, развертывание и все проверено зеленым цветом.

Еще одна вещь, которую я пробовал, - это URL-адрес с этим URL-адресом, который я получил из команды kubectl cluster-info https://10.123.24.107:6443/api/v1/namespaces/kube-system/services/kibana-logging/proxy Однако это показывает мне этоошибка

{
kind: "Status",
apiVersion: "v1",
metadata: { },
status: "Failure",
message: "services "kibana-logging" is forbidden: User "system:anonymous" cannot get services/proxy in the namespace "kube-system"",
reason: "Forbidden",
details: {
name: "kibana-logging",
kind: "services"
},
code: 403
}

Итак, в качестве другой попытки я использовал службу Kibana в качестве 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:
  selector:
    k8s-app: kibana-logging
  type: NodePort
  ports:
  - port: 5601
    protocol: TCP
    targetPort: ui
    nodePort: 30887

$  kubectl -n kube-system get rc,svc,cm,po
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
svc/elasticsearch-logging   ClusterIP   10.98.10.182     <none>        9200/TCP         12m
svc/heapster                ClusterIP   10.107.184.85    <none>        80/TCP           3d
svc/kibana-logging          NodePort    10.102.254.129   <none>        5601:30887/TCP   12m
svc/kube-dns                ClusterIP   10.96.0.10       <none>        53/UDP,53/TCP    3d
svc/kubernetes-dashboard    ClusterIP   10.105.30.246    <none>        80/TCP           3d
svc/monitoring-influxdb     ClusterIP   10.109.144.39    <none>        8086/TCP         3d

Я хотел бы знать, какой URL мне следует использоватьчтобы получить доступ к пользовательскому интерфейсу Kibana.Обратите внимание, что я не пытался сделать kubectl прокси, и я хотел бы, чтобы он работал без него

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Наиболее распространенный способ предоставления доступа к внутреннему серверу вне кластера - Ingress .

Во-первых, в вашем кластере Kubernetes должен быть запущен контроллер Ingress.
Существует два типа поддерживаемых контроллеров Ingress - GCE и nginx

Затем вам нужно создать файл yaml , как показано ниже, и изменить его в соответствии с вашими потребностями:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  backend:
    serviceName: testsvc
    servicePort: 80

Когда вы создаете его с помощью kubectl create -f, вы должны увидеть что-то вроде этого:

$ kubectl get ingress
NAME                RULE          BACKEND        ADDRESS
test-ingress        -             testsvc:80     1.2.3.4

В этом примере 1.2.3.4 - это IP-адрес, выделенный контроллером Ingress.

Когда у вас все будет на месте, вы сможете получить доступ к своему приложению (Kibana) по IP 1.2.3.4

Дополнительные примеры и примеры использования приведены в Входная документация

Вы также можете предоставить сервис Kubernetes без использования ресурса Ingress:

  1. Service.Type = LoadBalancer
  2. Service.Type = NodePort
  3. Порт прокси
0 голосов
/ 11 мая 2018

Я получил его для работы с этими изменениями во входном конфиге

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
     name: kube
  namespace: kube-system
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.org/rewrites: "serviceName=kubernetes-dashboard rewrite=/;serviceName=kibana-logging rewrite=/"
spec:
  rules:
  - host: HOSTNAME_OF_MASTER
    http:
      paths:
      - path: /kube-ui/
        backend:
          serviceName: kubernetes-dashboard
          servicePort: 80
      - path: /kibana/
        backend:
          serviceName: kibana-logging
          servicePort: 5601

и мой Kibana Serive настроен как 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
  selector:
    k8s-app: kibana-logging

и приборная панель также настроена как это

# ------------------- Dashboard Service ------------------- #
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 9090
  selector:
    k8s-app: kubernetes-dashboard

когда у вас запущен svc, вы можете получить доступ к kibana с помощью NodePort с любого узла. Пример: http://node01_ip: 31325 / app / kibana

$ kubectl get svc -o wide -n=kube-system
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE       SELECTOR
elasticsearch-logging   ClusterIP   10.xx.120.130   <none>        9200/TCP         11h       k8s-app=elasticsearch-logging
heapster                ClusterIP   10.xx.232.165   <none>        80/TCP           11h       k8s-app=heapster
kibana-logging          NodePort    10.xx.39.255    <none>        5601:31325/TCP   11h       k8s-app=kibana-logging
kube-dns                ClusterIP   10.xx.0.xx       <none>        53/UDP,53/TCP    12h       k8s-app=kube-dns
kubernetes-dashboard    NodePort    10.xx.xx.xx   <none>        80:32086/TCP     11h       k8s-app=kubernetes-dashboard
monitoring-influxdb     ClusterIP   10.13.199.138   <none>        8086/TCP         11h       k8s-app=influxdb
0 голосов
/ 08 мая 2018

Используйте NodePort, который вы определили в вашем сервисе:

https://10.123.24.107:30887
...