Skip to content

secret.yml

yaml
apiVersion: v1
kind: Secret
metadata:
  name: kibana-auth
  namespace: kube-logging
type: kubernetes.io/basic-auth
stringData: # stringData可以不用base64
  username: kibana
  password: "123456"
  • kibana账号用于连接es,需要在es内修改密码

config.yml

yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: kibana-config
  namespace: kube-logging
data:
  kibana.yml: |
    server.name: kibana
    server.host: "0.0.0.0"
    server.ssl.enabled: true
    server.ssl.certificate: /usr/share/kibana/config/certs/tls.crt
    server.ssl.key: /usr/share/kibana/config/certs/tls.key
    elasticsearch.hosts: ["https://elasticsearch-master.kube-logging.svc.cluster.local:9200"]
    elasticsearch.ssl.certificateAuthorities: /usr/share/kibana/config/certs/ca.crt
  • server.host 指定哪些对象可以连接kibana,可以结合使用防火墙或反向代理来限制访问

service.yml

yaml
apiVersion: v1
kind: Service
metadata:
  name: kibana
  namespace: kube-logging
spec:
  ports:
  - port: 5601
    targetPort: 5601
  selector:
    app: kibana
  type: NodePort

deploy.yml

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
  namespace: kube-logging
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kibana
  template:
    metadata:
      labels:
        app: kibana
    spec:
      containers:
      - name: kibana
        image: docker.elastic.co/kibana/kibana:8.16.1
        env:
        - name: ELASTICSEARCH_USERNAME
          valueFrom:
            secretKeyRef:
              key: username
              name: kibana-auth
        - name: ELASTICSEARCH_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: kibana-auth
        ports:
        - containerPort: 5601
        volumeMounts:
        - name: config-volume
          mountPath: /usr/share/kibana/config/kibana.yml
          subPath: kibana.yml
        - name: certs-volume
          mountPath: /usr/share/kibana/config/certs
      volumes:
      - name: config-volume
        configMap:
          name: kibana-config
      - name: certs-volume
        secret:
          secretName: elasticsearch-master-certs