aboutsummaryrefslogtreecommitdiffstats
path: root/docs/sections/guides/infra_guides/oom_infra_optional_addons.rst
blob: de26d11944ac4219928f15ef85b07e35e08110e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
.. This work is licensed under a Creative Commons Attribution 4.0
.. International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright (C) 2022 Nordix Foundation

.. Links
.. _Prometheus stack README: https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/README.md
.. _ONAP Next Generation Security & Logging Structure: https://wiki.onap.org/pages/viewpage.action?pageId=103417456
.. _Istio setup guide: https://istio.io/latest/docs/setup/install/helm/
.. _Kiali setup guide: https://kiali.io/docs/installation/installation-guide/example-install/
.. _Kserve setup guide: https://kserve.github.io/website/0.10/admin/kubernetes_deployment/
.. _K8ssandra setup guide: https://docs.k8ssandra.io/install/
.. _Mariadb-Operator setup guide: https://github.com/mariadb-operator/mariadb-operator

.. _oom_base_optional_addons:

OOM Optional Addons
===================

The following optional applications can be added to your kubernetes
environment.

Install Prometheus Stack
------------------------

Prometheus is an open-source systems monitoring and alerting toolkit with
an active ecosystem.

Kube Prometheus Stack is a collection of Kubernetes manifests, Grafana
dashboards, and Prometheus rules combined with documentation and scripts to
provide easy to operate end-to-end Kubernetes cluster monitoring with
Prometheus using the Prometheus Operator. As it includes both Prometheus
Operator and Grafana dashboards, there is no need to set up them separately.
See the `Prometheus stack README`_ for more information.

To install the prometheus stack, execute the following:

- Add the prometheus-community Helm repository::

    > helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

- Update your local Helm chart repository cache::

    > helm repo update

- To install prometheus, execute the following, replacing the <recommended-pm-version> with the version defined in the :ref:`versions_table` table::

    > helm install prometheus prometheus-community/kube-prometheus-stack --namespace=prometheus --create-namespace --version=<recommended-pm-version>


Kiali Installation
------------------

Kiali is used to visualize the Network traffic in a ServiceMesh enabled cluster
For setup the kiali operator is used, see `Kiali setup guide`_

- Install kiali-operator namespace::

    > kubectl create namespace kiali-operator

    > kubectl label namespace kiali-operator istio-injection=enabled

- Install the kiali-operator::

    > helm repo add kiali https://kiali.org/helm-charts

    > helm repo update kiali

    > helm install --namespace kiali-operator kiali/kiali-operator

- Create Kiali CR file (e.g. kiali.yaml)

    .. collapse:: kiali.yaml

      .. include:: ../../resources/yaml/kiali.yaml
         :code: yaml

- Install kiali::

    > kubectl apply -f kiali.yaml

- Create Ingress gateway entry for the kiali web interface
  using the configured Ingress <base-url> (here "simpledemo.onap.org")
  as described in :ref:`oom_customize_overrides`

    .. collapse:: kiali-ingress.yaml

      .. include:: ../../resources/yaml/kiali-ingress.yaml
         :code: yaml

- Add the Ingress entry for Kiali::

    > kubectl -n istio-system apply -f kiali-ingress.yaml


Jaeger Installation
-------------------

To be done...

K8ssandra-Operator Installation
-------------------------------

K8ssandra-Operator is used to ease the installation and lifecycle management
Cassandra clusters, including monitoring and backup

For setup the K8ssandra operator is used, see `K8ssandra setup guide`_

- Install k8ssandra-operator namespace::

    > kubectl create namespace k8ssandra-operator

    > kubectl label namespace k8ssandra-operator istio-injection=enabled

- Install the k8ssandra-operator replacing the <recommended-version> with the version defined in the :ref:`versions_table` table::

    > helm repo add k8ssandra https://helm.k8ssandra.io/stable

    > helm repo update k8ssandra

    > helm install k8ssandra-operator --namespace k8ssandra-operator
      k8ssandra/k8ssandra-operator --set global.clusterScoped=true
      --version=<recommended-version>

Mariadb-Operator Installation
-----------------------------

Mariadb-Operator is used to ease the installation and lifecycle management
MariaDB Galera and Replication clusters, including monitoring and backup

For setup the Mariadb-Operator is used, see `Mariadb-Operator setup guide`_

- Install mariadb-operator namespace::

    > kubectl create namespace mariadb-operator

    > kubectl label namespace mariadb-operator istio-injection=enabled

- Install the mariadb-operator replacing the <recommended-version> with the version defined in the :ref:`versions_table` table::::

    > helm repo add mariadb-operator https://mariadb-operator.github.io/mariadb-operator

    > helm repo update mariadb-operator

    > helm install mariadb-operator --namespace mariadb-operator
      mariadb-operator/mariadb-operator --set ha.enabled=true
      --set metrics.enabled=true --set webhook.certificate.certManager=true
      --version=<recommended-version>


Kserve Installation
-------------------

KServe is a standard Model Inference Platform on Kubernetes. It supports
RawDeployment mode to enable InferenceService deployment with Kubernetes
resources. Comparing to serverless deployment it unlocks Knative limitations
such as mounting multiple volumes, on the other hand Scale down and from Zero
is not supported in RawDeployment mode.

This installation is necessary for the ML models to be deployed as inference
service. Once deployed, the inference services can be queried for the
prediction.

**Kserve participant component in Policy ACM requires this installation. Kserve participant deploy/undeploy inference services in Kserve.**

Dependent component version compatibility details and installation instructions
can be found at `Kserve setup guide`_

Kserve installation requires the following components:

-  Istio. Its installation instructions can be found at :ref:`oom_base_optional_addons_istio_installation`

-  Cert-Manager. Its installation instructions can be found at :ref:`oom_base_setup_cert_manager`

Installation instructions as follows,

- Create kserve namespace::

    > kubectl create namespace kserve

- Install Kserve::

    > kubectl apply -f https://github.com/kserve/kserve/releases/download/v<recommended-kserve-version>/kserve.yaml

- Install Kserve default serving runtimes::

    > kubectl apply -f https://github.com/kserve/kserve/releases/download/v<recommended-kserve-version>/kserve-runtimes.yaml

- Patch ConfigMap inferenceservice-config as follows::

    > kubectl patch configmap/inferenceservice-config -n kserve --type=strategic -p '{"data": {"deploy": "{\"defaultDeploymentMode\": \"RawDeployment\"}"}}'