- vừa được xem lúc

SSL cho HTTP layer Elastic

0 0 5

Người đăng: Đồng Dương

Theo Viblo Asia

Để cấu hình file Deployment cho Elasticsearch trên Kubernetes và in ra enrollment token ngay lần đầu chạy, bạn cần thực hiện một số bước để tích hợp quá trình tạo token vào trong file Deployment. Bạn có thể sử dụng initContainers trong Kubernetes để chạy lệnh tạo token trước khi Elasticsearch khởi động, và lưu kết quả vào nơi mà bạn có thể truy xuất sau này.

Dưới đây là các bước chi tiết:

Bước 1: Cấu hình elasticsearch.yml cho việc tạo token Đảm bảo rằng file elasticsearch.yml của bạn có cấu hình để bật tính năng tạo token tự động:

xpack.security.enabled: true
xpack.security.enrollment.enabled: true

SSL cho HTTP layer (cần có SSL nếu không bỏ qua yêu cầu)

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12
xpack.security.http.ssl.truststore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12 xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /usr/share/elasticsearch/config/certs/elastic-certificates.p12

Bước 2: Thêm initContainer để tạo token trước khi Elasticsearch khởi động Sử dụng initContainers trong file Deployment để tạo token đăng ký cho Kibana và lưu nó vào một file để truy cập sau này. Dưới đây là file mẫu:

apiVersion: apps/v1
kind: Deployment
metadata: name: elasticsearch-deployment namespace: elk
spec: replicas: 1 selector: matchLabels: app: elasticsearch template: metadata: labels: app: elasticsearch spec: containers: - name: elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:8.5.0 ports: - containerPort: 9200 - containerPort: 9300 volumeMounts: - name: elastic-config mountPath: /usr/share/elasticsearch/config - name: certs mountPath: /usr/share/elasticsearch/config/certs - name: enrollment-token mountPath: /usr/share/elasticsearch/config/token initContainers: - name: token-generator image: docker.elastic.co/elasticsearch/elasticsearch:8.5.0 command: - /bin/bash - -c - | bin/elasticsearch-create-enrollment-token -s kibana > /usr/share/elasticsearch/config/token/kibana-token.txt volumeMounts: - name: certs mountPath: /usr/share/elasticsearch/config/certs - name: enrollment-token mountPath: /usr/share/elasticsearch/config/token volumes: - name: elastic-config configMap: name: elasticsearch-config - name: certs secret: secretName: elasticsearch-certificates - name: enrollment-token emptyDir: {}

Giải thích file cấu hình: initContainer token-generator: Đây là container chạy trước khi Elasticsearch khởi động. Nó tạo token bằng lệnh elasticsearch-create-enrollment-token và ghi token vào file /usr/share/elasticsearch/config/token/kibana-token.txt.

Volumes:

certs: Gắn bí mật chứa các chứng chỉ cần thiết. enrollment-token: Sử dụng emptyDir để lưu file token tạm thời. Volume Mounts: Gắn các volumes cần thiết vào các container để lưu chứng chỉ và file token.

Bước 3: Truy xuất token sau khi Elasticsearch khởi động Sau khi Elasticsearch khởi động, bạn có thể lấy token từ file kibana-token.txt bằng cách chạy lệnh sau:

kubectl exec -it <elasticsearch-pod-name> -n elk -- cat /usr/share/elasticsearch/config/token/kibana-token.txt

Điều này sẽ in ra enrollment token mà bạn có thể sử dụng để cấu hình Kibana.

Tổng kết initContainer sẽ tự động chạy lệnh tạo token trước khi Elasticsearch khởi động. File token được lưu vào volume tạm thời và có thể truy xuất từ bên ngoài. SSL/TLS vẫn cần được cấu hình nếu yêu cầu, hoặc có thể vô hiệu hóa tùy vào mục đích của bạn. Phương pháp này giúp tự động hóa quá trình tạo và lưu trữ token khi khởi động Elasticsearch lần đầu tiên trong môi trường Kubernetes.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tìm hiểu và cài đặt Elasticsearch

Elasticsearch là gì. Elasticsearch cung cấp công cụ tìm tiếm và phân tích gần như là thời gian thực, áp dụng với mọi kiểu dữ liệu - văn bản có cấu trúc hoặc phi cấu trúc, số, thông tin địa lý.

0 0 113

- vừa được xem lúc

Tích hợp Elasticsearch và Kibana vào Docker-Compose

Giới thiệu. Elasticsearch là công cụ tìm kiếm và phân tích phân tán, RESTful mã nguồn mở, được xây dựng trên Apache Lucene.

0 0 37

- vừa được xem lúc

[Elastic Stack] - Xây dựng, triển khai giám sát và quản lý tập trung request logs theo kiến trúc microservices

Elastic Stack - ELK là một nhóm các dự án mã nguồn mở (open source) được triển khai nhằm mục đích thu thập, phân tích, thống kê, tìm kiếm và trực quan hóa dòng dữ liệu (Data Stream) theo thời gian thự

0 0 51

- vừa được xem lúc

Elasticsearch, Kibana, Logstash - Tổng quan, cài đặt và sử dụng

Trong bài viết này mình sẽ không đi sâu về định nghĩa Elastic search cũng như Kibana, Logstash là gì mà sẽ hướng dẫn cách cài đặt cũng như cách import dữ liệu từ database vào Elasticsearch bằng Logsta

0 0 42

- vừa được xem lúc

[K8S] Phần 12 - Logging trên k8s - section1

Lời tựa. Tiếp tục series về Kubernetes, mình sẽ giới thiệu với các bạn về một chủ đề rất quan trọng đó là Logging.

0 0 33

- vừa được xem lúc

[K8S] Phần 14 - Logging trên k8s sử dụng ELK - section3

Lời tựa. Trong 2 bài viết trước mình đã tự đặt ra bài toán logging cho hệ thống cũng như xây dựng xong môi trường gồm các service opensource và tự build.

0 0 49