国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s部署Elasticsearch集群+Kibana方案--開啟X-Pack 安全認(rèn)證

這篇具有很好參考價值的文章主要介紹了k8s部署Elasticsearch集群+Kibana方案--開啟X-Pack 安全認(rèn)證。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

本文中使用StatefulSet 方式部署 Elasticsearch 集群,并且開啟X-Pack 安全認(rèn)證,存儲使用的是NFS,屬于一個初學(xué)者自己探索的方案,如果有比較好的方案,還請不吝評論賜教。
版本說明:

  • Kubernetes v1.25.6 – v1.26.4
  • Elasticsearch, Kibana 7.13.3
  • NFS Subdir External Provisioner

前置環(huán)境
需要安裝好Kubernetes 集群,并且配置了存儲類(StorageClass)。

一、部署Elasticsearch集群

1. 創(chuàng)建配置文件

elastic-worker-ns.yaml

apiVersion: v1           # 創(chuàng)建命名空間
kind: Namespace
metadata:
  labels:
    app: es7-cluster
    kubernetes.io/name: "Elasticsearch"
  name: elastic-worker

es7-cluster.yaml

---
apiVersion: v1             # 創(chuàng)建service 文件用于內(nèi)部通訊
kind: Service
metadata:
  name: es7-headless
  namespace: elastic-worker
  labels:
    app: es7-cluster
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/name: "Elasticsearch"
spec:
  clusterIP: None
  publishNotReadyAddresses: true
  ports:
  - name: rest-api
    port: 9200
    targetPort: 9200
  - name: inter-node
    port: 9300
    targetPort: 9300
  selector:
    app: es7-cluster
---
apiVersion: v1             
kind: ServiceAccount
metadata:
  name: es7-cluster
  namespace: elastic-worker
  labels:
    app: es7-cluster
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: es7-cluster
  namespace: elastic-worker
  labels:
    app: es7-cluster
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
rules:
- apiGroups:
  - ""
  resources:
  - "services"
  - "namespaces"
  - "endpoints"
  verbs:
  - "get"
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: es7-cluster
  namespace: elastic-worker
  labels:
    app: es7-cluster
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
subjects:
- kind: ServiceAccount
  name: es7-cluster
  namespace: kube-system
  apiGroup: ""
roleRef:
  kind: ClusterRole
  name: es7-cluster
  apiGroup: ""
---
apiVersion: apps/v1             # 創(chuàng)建有狀態(tài)的服務(wù)
kind: StatefulSet
metadata:
  name: es7-cluster
  namespace: elastic-worker
  labels:
    app: es7-cluster
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    srv: srv-elasticsearch
spec:
  serviceName: es7-headless
  replicas: 3
  selector:
    matchLabels:
      app: es7-cluster
      kubernetes.io/cluster-service: "true"
  template:
    metadata:
      labels:
        app: es7-cluster
        kubernetes.io/cluster-service: "true"
    spec:
      serviceAccountName: es7-cluster
      containers:         # 主容器
      - name: elasticsearch
        image: registry.cn-hangzhou.aliyuncs.com/greatmap/elasticsearch:7.13.3-p12    # 自定義鏡像,下邊會詳細(xì)說明
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9200
          name: rest-api
          protocol: TCP
        - containerPort: 9300
          name: inter-node
          protocol: TCP
        volumeMounts:
        - name: data
          mountPath: /usr/share/elasticsearch/data
        - name: localtime
          readOnly: true
          mountPath: /etc/localtime
        env:
        - name: cluster.name
          value: "es7-cluster"
        - name: node.name
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: discovery.zen.minimum_master_nodes
          value: "2"
        - name: discovery.seed_hosts
          value: "es7-headless"
        - name: cluster.initial_master_nodes
          value: "es7-cluster-0,es7-cluster-1,es7-cluster-2"
        - name: ES_JAVA_OPTS
          value: "-Xms1g -Xmx1g"
        - name: xpack.security.enabled    # X-Pack 安全認(rèn)證
          value: "true"
        - name: xpack.security.transport.ssl.enabled
          value: "true"
        - name: xpack.security.transport.ssl.verification_mode  # 證書校驗類型
          value: "certificate"
        - name: xpack.security.transport.ssl.keystore.path    # 證書路徑
          value: "elastic-certificates.p12"
        - name: xpack.security.transport.ssl.truststore.path
          value: "elastic-certificates.p12"
        - name: xpack.monitoring.ui.container.elasticsearch.enabled   # 生成并提供與容器相關(guān)的監(jiān)控數(shù)據(jù),待驗證
          value: "true"
        #- name: reindex.remote.whitelist        # 設(shè)置同步白名單,可以用來數(shù)據(jù)遷移
        #  value: "192.168.10.13:9200"
      initContainers:        # 初始化容器
      - name: fix-permissions
        image: busybox
        imagePullPolicy: IfNotPresent
        command: ["sh", "-c", "chown -R 1000:1000 /usr/share/elasticsearch/data"]
        securityContext:
          privileged: true
        volumeMounts:
        - name: data
          mountPath: /usr/share/elasticsearch/data
        - name: localtime
          readOnly: true
          mountPath: /etc/localtime
      - name: increase-vm-max-map
        image: busybox
        imagePullPolicy: IfNotPresent
        command: ["sysctl", "-w", "vm.max_map_count=262144"]
        securityContext:
          privileged: true
      - name: increase-fd-ulimit
        image: busybox
        imagePullPolicy: IfNotPresent
        command: ["sh", "-c", "ulimit -n 65536"]
      volumes:
      - name: localtime
        hostPath:
          path: /etc/localtime
          type: ''
  volumeClaimTemplates:   
  - metadata:
      name: data
    spec:
      accessModes: [ "ReadWriteMany" ]
      # 使用的存儲類名稱,需要配置一個有效的存儲類
      storageClassName: "managed-nfs-storage"
      resources:
        requests:
          storage: 2Gi

2. 部署Elasticsearch集群

kubectl create -f es7-cluster.yaml

3. 相關(guān)說明

  • 單節(jié)點模式只開啟xpack.security.enabled 既可以,但是集群模式通信就需要用到證書;
  • 只開啟xpack.security.enabled 在重新apply 時會失敗,提示xpack.security.transport.ssl.enabled 為 false 請設(shè)置為 true;
  • 再開啟xpack.security.transport.ssl.enabled 需要生成且配置證書路徑,但是查找相關(guān)資料都是啟動后生成證書,再啟動容器;在k8s 中 pod 會無限重啟,沒辦法生成證書;
  • 顧此自定義鏡像將證書直接打到鏡像里,使用Dockerfile進(jìn)行構(gòu)建
  • 證書校驗類型:full、certificate、none;默認(rèn)值為“ full ”;

如何生成證書:

# 使用docker 運(yùn)行elasticsearch容器
docker run -it --rm elasticsearch:7.13.3  bash
# 生成證書
./bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

將證書保存到本地,再通過Dockerfile重新封裝鏡像

FROM elasticsearch:7.13.3
LABEL maintainer="YZEQIANG <yinzeqiang66@126.com>"
COPY elastic-certificates.p12 /usr/share/elasticsearch/config/
RUN  chown 1000:0 /usr/share/elasticsearch/config/elastic-certificates.p12
EXPOSE 9200 9300
CMD ["eswrapper"]

阿里云倉庫:(支持x86_64、arm64)

docker pull registry.cn-hangzhou.aliyuncs.com/greatmap/elasticsearch:7.13.3-p12

4. 設(shè)置密碼

進(jìn)入到任意節(jié)點

kubectl exec -it -n elastic-worker pods/es7-cluster-1  -- bash

./bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y

# interactive 手動設(shè)置密碼(Stack123),如果是auto,自動隨機(jī)生成密碼
Enter password for [elastic]: 
Reenter password for [elastic]: 
Enter password for [apm_system]: 
Reenter password for [apm_system]: 
Enter password for [kibana_system]: 
Reenter password for [kibana_system]: 
Enter password for [logstash_system]: 
Reenter password for [logstash_system]: 
Enter password for [beats_system]: 
Reenter password for [beats_system]: 
Enter password for [remote_monitoring_user]: 
Reenter password for [remote_monitoring_user]: 

5. 將es集群對外暴露

es7-external.yaml

apiVersion: v1             # 創(chuàng)建service 文件用于內(nèi)部通訊
kind: Service
metadata:
  name: es7-external
  namespace: elastic-worker
  labels:
    app: es7-cluster
spec:
  type: NodePort
  ports:
  - name: rest-api
    port: 9200
    protocol: TCP
    targetPort: 9200
    nodePort: 30920
  selector:
    app: es7-cluster

6. 外部連接驗證

使用的是edge擴(kuò)展插件
https://microsoftedge.microsoft.com/addons/detail/elasticvue/geifniocjfnfilcbeloeidajlfmhdlgo?hl=zh-CN
k8s部署Elasticsearch集群+Kibana方案--開啟X-Pack 安全認(rèn)證

二、部署Kibana

1. 創(chuàng)建配置文件

kibana.yaml

apiVersion: v1
kind: Service
metadata:
  name: kibana
  namespace: elastic-worker
  labels:
    k8s-app: kibana
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/name: "Kibana"
    srv: srv-kibana
spec:
  type: NodePort
  ports:
  - port: 5601
    nodePort: 30000
    protocol: TCP
    targetPort: ui
  selector:
    k8s-app: kibana
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
  namespace: elastic-worker
  labels:
    k8s-app: kibana
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    srv: srv-kibana
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: kibana
  template:
    metadata:
      labels:
        k8s-app: kibana
    spec:
      containers:
      - name: kibana
        image: kibana:7.13.3
        volumeMounts:
        - name: kibana-config
          mountPath: /usr/share/kibana/config/kibana.yml
          readOnly: true
          subPath: kibana.yml
        ports:
        - containerPort: 5601
          name: ui
          protocol: TCP
      volumes:
      - name: kibana-config
        configMap:
          name: kibana
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: kibana
  namespace: elastic-worker
  labels:
    k8s-app: kibana
data:
  kibana.yml: |-
  
    server.name: kibana
    server.host: "0.0.0.0"
    elasticsearch.hosts: [ "http://es7-headless:9200" ]
    elasticsearch.username: "elastic"
    elasticsearch.password: "Stack123"
    monitoring.ui.container.elasticsearch.enabled: true
    i18n.locale: "zh-CN"
    kibana.index: ".kibana"

2. 部署Kibana

kubectl apply -f kibana.yaml

3. 訪問驗證

http://ip:port
k8s部署Elasticsearch集群+Kibana方案--開啟X-Pack 安全認(rèn)證

參考文檔文章來源地址http://www.zghlxwxcb.cn/news/detail-505299.html

  • ECK官方文檔
  • Kibana 將語言設(shè)置為中文
  • ElasticSearch7.X啟動X-Pack
  • k8s 部署ELK并設(shè)置用戶名密碼
  • Kubernetes 之 StorageClass 資源(NFS)
  • k8s 部署生產(chǎn)級 elasticsearch+kibana 步驟
  • k8s部署 elfk 7.x + X-Pack,使用ConfigMap方式

到了這里,關(guān)于k8s部署Elasticsearch集群+Kibana方案--開啟X-Pack 安全認(rèn)證的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • k8s部署新版elasticsearch+kibana并配置快照備份

    k8s部署新版elasticsearch+kibana并配置快照備份

    版本:es 7.17.6 kibana 7.17.6 k8s:1.19.16 Elasticsearch和Kibana是一對強(qiáng)大的開源工具,通常一起使用以構(gòu)建實時數(shù)據(jù)分析和可視化解決方案。 Elasticsearch: Elasticsearch是一個分布式、高性能的實時搜索和分析引擎。它構(gòu)建在開源搜索引擎庫Lucene之上,并提供了一個分布式、可擴(kuò)展的架構(gòu),用

    2024年02月13日
    瀏覽(37)
  • k8s Operator 部署 elasticsearch 7.10 + kibana + cerebro

    1.1 部署 ECK Elastic Cloud on Kubernetes,這是一款基于 Kubernetes Operator 模式的新型編排產(chǎn)品,用戶可使用該產(chǎn)品在 Kubernetes 上配置、管理和運(yùn)行 Elasticsearch 集群。ECK 的愿景是為 Kubernetes 上的 Elastic 產(chǎn)品和解決方案提供 SaaS 般的體驗。 k8s 版本 部署 ECK 1)If you are running a version of Kub

    2024年02月08日
    瀏覽(26)
  • k8s部署 elk(Elasticsearch,Kibana,Logstash,Redis,Filebea)

    目錄 一、nfs存儲 二、部署鏡像,制作tag 三、?filebeat收集數(shù)據(jù) ?四、logstash過濾數(shù)據(jù) 五、elasticsearch存儲數(shù)據(jù)+nfs做存儲(自動注冊pv詳見前文) 六、kibana展示數(shù)據(jù) 七、驗證安裝 參考鏈接:k8s 配置hadoop集群,nfs作為存儲_瘋飆的蝸牛的博客-CSDN博客

    2024年02月11日
    瀏覽(21)
  • k8s集群部署elasticsearch集群和elasticsearch集群設(shè)置用戶密碼

    目錄 一、背景: 二、部署elasticsearch集群: 1、部署elasticsearch集群: 2、驗證elasticsearch集群是否正常: ?三、部署elasticsearch集群并設(shè)置用戶密碼 1、生產(chǎn)elastic集群所需的證書: 2、重新建構(gòu)elasticsearch鏡像: 3、部署elasticsearch集群: 4、設(shè)置elasticsearch集群的密碼: 5、測試驗證

    2024年04月13日
    瀏覽(22)
  • K8s部署輕量級日志收集系統(tǒng)EFK(elasticsearch + filebeat + kibana)

    目錄 K8s部署EFK(elasticsear + filebeat + kibana)日志收集 一.準(zhǔn)備鏡像 二.搭建Elasticsearch + kibana 1.在可執(zhí)行kubectl命令的服務(wù)器準(zhǔn)備安裝的yml文件 2.在elasticsearch-kibana目錄下創(chuàng)建配置文件elasticsearch.yml 3.創(chuàng)建kibana配置文件kibana.yml 4.在k8s中創(chuàng)建elasticsearch和kibana的配置文件configmap 5.檢查

    2024年02月08日
    瀏覽(36)
  • k8s使用ECK(2.4)形式部署elasticsearch+kibana-http協(xié)議

    k8s使用ECK(2.4)形式部署elasticsearch+kibana-http協(xié)議

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 之前寫了eck2.4部署es+kibana,默認(rèn)的話是https協(xié)議的,這里寫一個使用http協(xié)議的配置。 參考文章:鏈接: Kubernetes基于ECK部署elasticsearch8.8集群 首先按照https的部署方式部署crd和operator。 鏈接: k8s使用ECK(2

    2024年02月10日
    瀏覽(19)
  • 阿里云k8s容器部署consul集群的高可用方案

    阿里云k8s容器部署consul集群的高可用方案

    原本consul集群是由三個server節(jié)點搭建的,購買的是三個ecs服務(wù)器, java服務(wù)在注冊到consul的時候,隨便選擇其中一個節(jié)點。 從上圖可以看出, consul-01有28個服務(wù)注冊,而consul-02有94個服務(wù),consul-03則是29個。 有一次發(fā)生consul集群故障,某個conusl節(jié)點掛了,導(dǎo)致整個的服務(wù)發(fā)現(xiàn)

    2024年04月14日
    瀏覽(20)
  • k8s集群中安裝kibana 7.x 踩坑

    1.?FATAL ValidationError: child \\\"server\\\" fails because [child \\\"port\\\" fails because [\\\"port\\\" must be a number]] 解決辦法: 在環(huán)境變量中指定端口: 2.?Kibana FATAL Error: [elasticsearch.url]: definition for this key is missing 解決辦法:kibana7.x 版本已經(jīng)不使用?elasticsearch.url,改成 :

    2024年02月14日
    瀏覽(20)
  • K8S1.23.6版本詳細(xì)安裝教程以及錯誤解決方案(包括前置環(huán)境,使用部署工具kubeadm來引導(dǎo)集群)

    K8S1.23.6版本詳細(xì)安裝教程以及錯誤解決方案(包括前置環(huán)境,使用部署工具kubeadm來引導(dǎo)集群)

    一臺兼容的 Linux 主機(jī)。Kubernetes 項目為基于 Debian 和 Red Hat 的 Linux 發(fā)行版以及一些不提供包管理器的發(fā)行版提供通用的指令。 每臺機(jī)器 2 GB 或更多的 RAM(如果少于這個數(shù)字將會影響你應(yīng)用的運(yùn)行內(nèi)存)。 CPU 2 核心及以上。 集群中的所有機(jī)器的網(wǎng)絡(luò)彼此均能相互連接(公網(wǎng)和

    2024年03月14日
    瀏覽(28)
  • 【云原生】Elasticsearch + kibana on k8s 講解與實戰(zhàn)操作

    【云原生】Elasticsearch + kibana on k8s 講解與實戰(zhàn)操作

    Elasticsearch是一個基于Lucene的搜索引擎。它提供了具有HTTP Web界面和無架構(gòu)JSON文檔的分布式,多租戶能力的全文搜索引擎。Elasticsearch是用Java開發(fā)的,根據(jù)Apache許可條款作為開源發(fā)布。 官方文檔:https://www.elastic.co/guide/en/elasticsearch/reference/master/getting-started.html GitHub: https://gith

    2023年04月08日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包