Để cấu hình chứng chỉ và khóa cho Elasticsearch trong tệp YAML triển khai (deployment YAML) trên Kubernetes, bạn sẽ cần chỉnh sửa tệp YAML của bạn để bao gồm các thuộc tính SSL. Dưới đây là cách thực hiện:
Bước 1: Tạo Secret cho chứng chỉ và khóa
Trước tiên, bạn cần tạo một Kubernetes Secret chứa chứng chỉ và khóa của bạn. Dưới đây là lệnh để tạo Secret:
kubectl create secret generic elasticsearch-ssl-secret \ --from-file=elasticsearch.key=/path/to/your/elasticsearch.key \ --from-file=elasticsearch.crt=/path/to/your/elasticsearch.crt \ --namespace=elk
Bước 2: Cập nhật Deployment YAML
Sau khi tạo Secret, bạn cần cập nhật tệp deployment YAML của Elasticsearch. Dưới đây là ví dụ về cách bạn có thể cấu hình nó:
apiVersion: apps/v1
kind: Deployment
metadata: name: elasticsearch namespace: elk
spec: replicas: 1 selector: matchLabels: app: elasticsearch template: metadata: labels: app: elasticsearch spec: containers: - name: elasticsearch image: elasticsearch:8.5.1 env: - name: discovery.type value: single-node - name: xpack.security.enabled value: "true" - name: xpack.security.transport.ssl.enabled value: "true" - name: xpack.security.transport.ssl.key value: "/usr/share/elasticsearch/config/elasticsearch.key" - name: xpack.security.transport.ssl.certificate value: "/usr/share/elasticsearch/config/elasticsearch.crt" 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
Giải thích các thành phần Secret: Sử dụng Secret để bảo mật chứng chỉ và khóa. VolumeMounts: Đảm bảo rằng bạn gán volume chứa Secret đến thư mục mà Elasticsearch cần. Environment Variables: Đặt các biến môi trường để cấu hình SSL cho Elasticsearch.
Bước 3: Cập nhật Cluster
Cuối cùng, hãy cập nhật cluster của bạn bằng cách áp dụng tệp YAML:
kubectl apply -f your-elasticsearch-deployment.yaml
Bước 4: Kiểm tra trạng thái Sau khi triển khai, kiểm tra xem Elasticsearch đã khởi động thành công và có thể sử dụng SSL hay không:
kubectl logs -f deployment/elasticsearch -n elk
Nếu có bất kỳ lỗi nào trong quá trình khởi động, bạn sẽ thấy chúng trong log.