0

我已经在 AKS 中使用 server.basepath 部署了 Kibana,/logs因为我希望它部署在子路径中。我正在尝试使用 nginx 控制器访问 Kibana 服务它给出 503 服务不可用但服务/Pod 正在运行。请帮助我。

Kibana 部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
  namespace: kube-logging
  labels:
    app.kubernetes.io/name: kibana
    helm.sh/chart: kibana-0.1.0
    app.kubernetes.io/instance: icy-coral
    app.kubernetes.io/managed-by: Tiller
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: kibana
      app.kubernetes.io/instance: icy-coral
  template:
    metadata:
      labels:
        app.kubernetes.io/name: kibana
        app.kubernetes.io/instance: icy-coral
    spec:
      containers:
        - name: kibana
          image: "docker.elastic.co/kibana/kibana:7.6.0"
          imagePullPolicy: IfNotPresent
          ports:
            - name: http
              containerPort: 5601
              protocol: TCP
          env:
            - name: ELASTICSEARCH_URL
              value: http://elasticsearch:9200
            - name: SERVER_BASEPATH
              value: /logs
            - name: SERVER_REWRITEBASEPATH
              value: "true"
          resources:
            limits:
              cpu: 1000m
            requests:
              cpu: 100m

Kibana 服务:

apiVersion: v1
kind: Service
metadata:
  name: kibana
  namespace: kube-logging
  labels:
    app.kubernetes.io/name: kibana
    helm.sh/chart: kibana-0.1.0
    app.kubernetes.io/instance: icy-coral
    app.kubernetes.io/managed-by: Tiller
spec:
  type: ClusterIP
  ports:
    - port: 80
      targetPort: 5601
      protocol: TCP
      name: http
  selector:
    app.kubernetes.io/name: kibana
    app.kubernetes.io/instance: icy-coral

Kibana 入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: kibana
  labels:
    app.kubernetes.io/name: kibana
    helm.sh/chart: kibana-0.1.0
    app.kubernetes.io/instance: icy-coral
    app.kubernetes.io/managed-by: Tiller
  annotations:
    ingress.kubernetes.io/send-timeout: "600"
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/ssl-redirect: "false"

spec:
  rules:
    - host: ""
      http:
        paths:
          - path: /logs/?(.*)
            backend:
              serviceName: kibana
              servicePort: 80
4

1 回答 1

0

确保 kibana 正在运行:

kubectl logs kibana

检查服务的端点是否为空:

kubectl describe svc kibana

检查入口是否正确配置:

kubectl describe ingress kibana

检查入口控制器日志:

kubectl logs -n nginx-ingress-controller-.....

更新:

您只能在入口的同一命名空间上引用服务。所以尝试将入口移动到kube-logging命名空间。

签出:https ://github.com/kubernetes/kubernetes/issues/17088

于 2020-03-06T10:27:55.410 回答