Elasticsearch включить вопросы безопасности - PullRequest
0 голосов
/ 27 марта 2020

У меня установлена ​​база кластеров Elasticsearch 7.6 на

https://github.com/openstack/openstack-helm-infra/tree/master/elasticsearch

Вот что я сделал для включения защиты: a. Сгенерировать сертификат

./bin/elasticsearch-certutil ca
File location: /usr/share/elasticsearch/elastic-stack-ca.p12

./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
File location: /usr/share/elasticsearch/elastic-certificates.p12

kubectl create secret generic elastic-certificates --from-file=elastic-certificates.p12

b. Включите Security для Statefulset для главного модуля

kubectl edit statefulset elasticsearch-master
 ----
    - name: xpack.security.enabled
      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: /usr/share/elasticsearch/config/certs/elastic-certificates.p12
    - name: xpack.security.transport.ssl.truststore.path
      value: /usr/share/elasticsearch/config/certs/elastic-certificates.p12
----
    - mountPath: /usr/share/elasticsearch/config/certs
      name: elastic-certificates
      readOnly: true
----
  - name: elastic-certificates
    secret:
      defaultMode: 444
      secretName: elastic-certificates

c. Включите защиту на набор состояний для модуля данных

kubectl edit statefulset elasticsearch-data

----
    - name: xpack.security.enabled
      value: "true"
    - name: xpack.security.transport.ssl.enabled
      value: "true"
    - name: xpack.security.transport.ssl.verification_mode
      value: certificate
----
    - mountPath: /usr/share/elasticsearch/config/certs
      name: elastic-certificates
----
  - name: elastic-certificates
    secret:
      defaultMode: 444
      secretName: elastic-certificates

d. Включить защиту при развертывании для клиента

kubectl edit deployment elasticsearch-client

----
    - name: xpack.security.enabled
      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: /usr/share/elasticsearch/config/certs/elastic-certificates.p12
    - name: xpack.security.transport.ssl.truststore.path
      value: /usr/share/elasticsearch/config/certs/elastic-certificates.p12
----
    - mountPath: /usr/share/elasticsearch/config/certs
      name: elastic-certificates
----
  - name: elastic-certificates
    secret:
      defaultMode: 444
      secretName: elastic-certificates

После перезапуска модулей возникла следующая проблема:

a. банки данных застряли на этапе инициализации

kubectl get pod |grep data
elasticsearch-data-0                                  1/1     Running     0          42m
elasticsearch-data-1                                  0/1     Init:0/3    0          10m
kubectl logs elasticsearch-data-1 -c init |tail -1
Entrypoint WARNING: <date/time> entrypoint.go:72: Resolving dependency Service elasticsearch-logging in namespace osh-infra failed: Service elasticsearch-logging has no endpoints .

b. Клиентские ошибки модуля в связи с установлением соединения отклонены

Warning  Unhealthy  18m (x4 over 19m)     kubelet, s1-worker-2  Readiness probe failed: Get http://192.180.71.82:9200/_cluster/health: dial tcp 192.180.71.82:9200: connect: connection refused
Warning  Unhealthy  4m17s (x86 over 18m)  kubelet, s1-worker-2  Readiness probe failed: HTTP probe failed with statuscode: 401

c. Конечная точка службы "asticsearch-logging "пуста

Есть предложения как исправить или что не так? Спасибо.

...