Установка модуля OpenSearch
1. Предварительные условия
-
Вы ознакомились с архитектурой и концепциями OpenSearch в Nova Container Platform.
-
Вы ознакомились с документацией по планированию установки и системным требованиям OpenSearch.
-
У вас есть доступ к кластеру с учетной записью, имеющей роль
cluster-adminв Kubernetes. -
Вы установили утилиту
kubectlдля работы с Kubernetes.
2. Установка модуля OpenSearch
-
Для установки модуля OpenSearch в Nova Container Platform используйте один из представленных далее манифестов:
Для кластера в минимальной конфигурации
apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: nova-release-logs-pre namespace: nova-gitops labels: nova-application-group: logging kustomization.nova-platform.io/cluster: "true" spec: serviceAccountName: kustomize-controller commonMetadata: labels: app.kubernetes.io/managed-by: Nova prune: true interval: 10m retryInterval: 30s timeout: 5m dependsOn: - name: nova-release-ingress-internal-main - name: nova-release-cert-manager-post sourceRef: kind: GitRepository name: nova-release-gitrepo-main path: ./resources/opensearch/pre postBuild: substituteFrom: - kind: ConfigMap name: nova-gitops-common-substitute-config --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: nova-release-logs-main namespace: nova-gitops labels: nova-application-group: logging kustomization.nova-platform.io/cluster: "true" spec: serviceAccountName: kustomize-controller commonMetadata: labels: app.kubernetes.io/managed-by: Nova prune: true interval: 10m retryInterval: 30s timeout: 5m dependsOn: - name: nova-release-ingress-internal-main - name: nova-release-cert-manager-post - name: nova-release-logs-pre sourceRef: kind: GitRepository name: nova-release-gitrepo-main path: ./resources/opensearch/main postBuild: substituteFrom: - kind: ConfigMap name: nova-gitops-common-substitute-config healthChecks: - apiVersion: apps/v1 kind: StatefulSet name: nova-logs namespace: nova-logs - apiVersion: apps/v1 kind: Deployment name: nova-logs-dashboards namespace: nova-logs --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: nova-release-logs-post namespace: nova-gitops labels: nova-application-group: logging kustomization.nova-platform.io/cluster: "true" spec: serviceAccountName: kustomize-controller commonMetadata: labels: app.kubernetes.io/managed-by: Nova interval: 10m retryInterval: 30s timeout: 5m prune: true dependsOn: - name: nova-release-logs-main sourceRef: kind: GitRepository name: nova-release-gitrepo-main path: ./resources/opensearch/post postBuild: substituteFrom: - kind: ConfigMap name: nova-gitops-common-substitute-config healthChecks: - apiVersion: apps/v1 kind: StatefulSet name: nova-logs-logging-fluentd namespace: nova-logs - apiVersion: apps/v1 kind: DaemonSet name: nova-k8s-audit-apiserver-host-tailer-host-tailer namespace: nova-logs - apiVersion: apps/v1 kind: DaemonSet name: nova-node-audit-host-tailer-host-tailer namespace: nova-logs - apiVersion: apps/v1 kind: DaemonSet name: nova-logs-fluentbit-fluentbit namespace: nova-logsДля высокодоступного кластера в рекомендуемой конфигурации
apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: nova-release-logs-pre namespace: nova-gitops labels: nova-application-group: logging kustomization.nova-platform.io/cluster: "true" spec: serviceAccountName: kustomize-controller commonMetadata: labels: app.kubernetes.io/managed-by: Nova prune: true interval: 10m retryInterval: 30s timeout: 5m dependsOn: - name: nova-release-ingress-internal-main - name: nova-release-cert-manager-post sourceRef: kind: GitRepository name: nova-release-gitrepo-main path: ./resources/opensearch/pre postBuild: substituteFrom: - kind: ConfigMap name: nova-gitops-common-substitute-config --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: nova-release-logs-main namespace: nova-gitops labels: nova-application-group: logging kustomization.nova-platform.io/cluster: "true" spec: serviceAccountName: kustomize-controller commonMetadata: labels: app.kubernetes.io/managed-by: Nova prune: true interval: 10m retryInterval: 30s timeout: 5m dependsOn: - name: nova-release-ingress-internal-main - name: nova-release-cert-manager-post - name: nova-release-logs-pre sourceRef: kind: GitRepository name: nova-release-gitrepo-main path: ./resources/opensearch/main postBuild: substituteFrom: - kind: ConfigMap name: nova-gitops-common-substitute-config healthChecks: - apiVersion: apps/v1 kind: StatefulSet name: nova-logs namespace: nova-logs - apiVersion: apps/v1 kind: Deployment name: nova-logs-dashboards namespace: nova-logs patches: - patch: | - op: replace path: /spec/replicas value: 3 target: kind: Deployment name: "nova-logs-dashboards" namespace: nova-logs - patch: | - op: replace path: /spec/replicas value: 3 target: kind: StatefulSet name: "nova-logs" namespace: nova-logs - patch: | apiVersion: apps/v1 kind: StatefulSet metadata: name: nova-logs namespace: nova-logs spec: template: containers: - name: "opensearch" env: - name: cluster.initial_master_nodes value: "nova-logs-0,nova-logs-1,nova-logs-2" --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: nova-release-logs-post namespace: nova-gitops labels: nova-application-group: logging kustomization.nova-platform.io/cluster: "true" spec: serviceAccountName: kustomize-controller commonMetadata: labels: app.kubernetes.io/managed-by: Nova interval: 10m retryInterval: 30s timeout: 5m prune: true dependsOn: - name: nova-release-logs-main sourceRef: kind: GitRepository name: nova-release-gitrepo-main path: ./resources/opensearch/post postBuild: substituteFrom: - kind: ConfigMap name: nova-gitops-common-substitute-config healthChecks: - apiVersion: apps/v1 kind: StatefulSet name: nova-logs-logging-fluentd namespace: nova-logs - apiVersion: apps/v1 kind: DaemonSet name: nova-k8s-audit-apiserver-host-tailer-host-tailer namespace: nova-logs - apiVersion: apps/v1 kind: DaemonSet name: nova-node-audit-host-tailer-host-tailer namespace: nova-logs - apiVersion: apps/v1 kind: DaemonSet name: nova-logs-fluentbit-fluentbit namespace: nova-logs -
Установите модуль OpenSearch через kubectl или Nova Console, используя один из представленных выше манифестов.
Установка с помощью kubectl
-
Сохраните один из представленных выше манифестов в файл, например,
OpenSearch.yaml. -
Установите манифест в кластер Kubernetes, выполнив команду:
kubectl apply -f OpenSearch.yaml -
Проверьте состояние запущенных компонентов OpenSearch, выполнив команду:
kubectl get pods -n nova-logs -
Проверьте состояние Cluster Kustomizations, выполнив команду:
kubectl get ks -l nova-application-group=logging -n nova-gitops
Установка с помощью Nova Console
-
Скопируйте один из представленных выше манифестов в буфер обмена.
-
Выполните вход в Nova Console.
-
Используйте опцию импорта нового объекта и вставьте в форму ранее скопированный манифест.
-
Перейдите в раздел и выберите Namespace
nova-logs. Проверьте состояние запущенных компонентов OpenSearch. -
Перейдите в раздел , на вкладке Configuration выберите Cluster Kustomizations. Проверьте состояние Cluster Kustomizations с именем
nova-release-logs.
-