Skip to content
Snippets Groups Projects
Commit 7446df9f authored by paulfantom's avatar paulfantom
Browse files

*: point to using server-side apply with kubectl as a solution to large CRDs


Signed-off-by: default avatarpaulfantom <pawel@krupa.net.pl>
parent 0f6faaac
No related branches found
No related tags found
No related merge requests found
......@@ -110,14 +110,14 @@ Though for a quickstart a compiled version of the Kubernetes [manifests](manifes
```shell
# Create the namespace and CRDs, and then wait for them to be available before creating the remaining resources
kubectl create -f manifests/setup
kubectl apply --server-side -f manifests/setup
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
kubectl create -f manifests/
kubectl apply -f manifests/
```
We create the namespace and CustomResourceDefinitions first to avoid race conditions when deploying the monitoring components.
Alternatively, the resources in both folders can be applied with a single command
`kubectl create -f manifests/setup -f manifests`, but it may be necessary to run the command multiple times for all components to
`kubectl apply --server-side -f manifests/setup -f manifests`, but it may be necessary to run the command multiple times for all components to
be created successfullly.
* And to teardown the stack:
......@@ -274,12 +274,16 @@ Now simply use `kubectl` to install Prometheus and Grafana as per your configura
```shell
# Update the namespace and CRDs, and then wait for them to be available before creating the remaining resources
$ kubectl apply -f manifests/setup
$ kubectl apply --server-side -f manifests/setup
$ kubectl apply -f manifests/
```
> Note that due to some CRD size we are using kubeclt server-side apply feature which is generally available since
> kubernetes 1.22. If you are using previous kubernetes versions this feature may not be available and you would need to
> use `kubectl create` instead.
Alternatively, the resources in both folders can be applied with a single command
`kubectl apply -Rf manifests`, but it may be necessary to run the command multiple times for all components to
`kubectl apply --server-side -Rf manifests`, but it may be necessary to run the command multiple times for all components to
be created successfullly.
Check the monitoring namespace (or the namespace you have specific in `namespace: `) and make sure the pods are running. Prometheus and Grafana should be up and running soon.
......
#!/bin/bash
kubectl apply -f manifests/setup
kubectl apply --server-side -f manifests/setup
# Safety wait for CRDs to be working
sleep 30
......@@ -17,4 +17,4 @@ kubectl rollout status -n monitoring deployment kube-state-metrics
kubectl port-forward -n monitoring svc/grafana 3000 > /dev/null 2>&1 &
kubectl port-forward -n monitoring svc/alertmanager-main 9093 > /dev/null 2>&1 &
kubectl port-forward -n monitoring svc/prometheus-k8s 9090 > /dev/null 2>&1 &
\ No newline at end of file
kubectl port-forward -n monitoring svc/prometheus-k8s 9090 > /dev/null 2>&1 &
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment