0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Cấu Hình Elasticsearch Với SSL và Triển Khai Trên Kubernetes

Đăng vào 1 tháng trước

• 4 phút đọc

Chủ đề:

elastic

Hướng Dẫn Cấu Hình Elasticsearch Với SSL và Triển Khai Trên Kubernetes

Trong bài viết này, chúng ta sẽ tìm hiểu cách thiết lập Elasticsearch với SSL và viết file deployment từ đầu đến cuối. Dưới đây là các bước hướng dẫn chi tiết.

Bước 1: Tạo Chứng Chỉ SSL

Trước tiên, bạn cần tạo cặp khóa công khai và khóa riêng tư cho Elasticsearch. Để thực hiện điều này, bạn có thể sử dụng OpenSSL như sau:

  1. Tạo thư mục lưu trữ chứng chỉ:

    bash Copy
    mkdir -p certs && cd certs
  2. Tạo khóa riêng tư:

    bash Copy
    openssl genrsa -out elasticsearch.key 2048
  3. Tạo yêu cầu chứng chỉ:

    bash Copy
    openssl req -new -key elasticsearch.key -out elasticsearch.csr
  4. Tạo chứng chỉ tự ký:

    bash Copy
    openssl x509 -req -days 365 -in elasticsearch.csr -signkey elasticsearch.key -out elasticsearch.crt

Sau khi thực hiện các lệnh trên, bạn sẽ có hai file: elasticsearch.keyelasticsearch.crt

Bước 2: Tạo Secret Kubernetes

Để bảo mật thông tin, bạn nên lưu trữ chứng chỉ và khóa trong một Kubernetes Secret:

bash Copy
kubectl create secret generic elasticsearch-ssl-secret \ 
  --from-file=elasticsearch.key \ 
  --from-file=elasticsearch.crt \ 
  -n elks

Bước 3: Cấu Hình File elasticsearch.yml

Bạn cần thiết lập file elasticsearch.yml để sử dụng SSL. Dưới đây là cấu hình cần thiết:

yaml Copy
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/elasticsearch.key
xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/elasticsearch.crt

Bước 4: Viết File Deployment

Dưới đây là file deployment hoàn chỉnh cho Elasticsearch với cấu hình SSL:

yaml Copy
apiVersion: apps/v1
kind: Deployment
metadata:
  name: elasticsearch-deployment
  namespace: elks
spec:
  replicas: 1
  selector:
    matchLabels:
      app: elasticsearch
  template:
    metadata:
      labels:
        app: elasticsearch
    spec:
      containers:
      - name: elasticsearch
        image: docker.elastic.co/elasticsearch/elasticsearch:8.5.1
        ports:
        - containerPort: 9200
        resources:
          limits:
            memory: 2Gi
          requests:
            memory: 1Gi
        env:
         - name: discovery.type
           value: single-node
         - name: ELASTIC_PASSWORD
           value: "enao@123"
         - name: xpack.security.enabled
           value: "true"
         - name: xpack.security.transport.ssl.enabled
           value: "true"
        volumeMounts:
          - name: config-volume
            mountPath: /usr/share/elasticsearch/config
          - name: elasticsearch-ssl-volume
            mountPath: /usr/share/elasticsearch/config
            readOnly: true
      volumes:
       - name: config-volume
         configMap:
           name: elasticsearch-config
       - name: elasticsearch-ssl-volume
         secret:
           secretName: elasticsearch-ssl-secret

---

apiVersion: v1
kind: Service
metadata:
  name: elasticsearch-service
  namespace: elks
spec:
  type: NodePort
  selector:
    app: elasticsearch
  ports:
    - protocol: TCP
      port: 9200
      targetPort: 9200
      nodePort: 30010

Bước 5: Áp Dụng Cấu Hình cho Kubernetes

Sau khi đã hoàn thành file deployment, bạn cần áp dụng cấu hình vào Kubernetes:

bash Copy
kubectl apply -f your-deployment-file.yaml

Bước 6: Kiểm Tra Trạng Thái của Pod Elasticsearch

Để xem tình trạng của pod Elasticsearch, sử dụng lệnh sau:

bash Copy
kubectl get pods -n elks

Nếu pod không hoạt động, bạn có thể kiểm tra log để tìm hiểu nguyên nhân bằng lệnh:

bash Copy
kubectl logs <pod-name> -n elks

Ghi Chú

  • Đảm bảo rằng bạn đã tạo ConfigMap elasticsearch-config để lưu trữ cấu hình Elasticsearch nếu cần.
  • Nếu bạn đã cấu hình SSL, hãy chắc chắn rằng client cũng được thiết lập đúng để kết nối qua SSL.

Hãy thực hiện theo các bước hướng dẫn trên và cập nhật cho tôi nếu bạn gặp bất kỳ vấn đề nào khác trong quá trình triển khai!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào