In this guide, you will learn:
You could provision the operator from a binary package or build from sources.
skywalking-swck-<SWCK_VERSION>-bin.tgz. Unarchive the package to a folder named skywalking-swck-<SWCK_VERSION>-bincert-manager installed.config:kubectl apply -f skywalking-swck-<SWCK_VERSION>-bin/config/operator-bundle.yaml
git clone git@github.com:apache/skywalking-swck.git
OPERATOR_IMG environment variable : export OPERATOR_IMG=<private registry>/controller:<tag>export OPERATOR_IMG=controller make -C operator docker-build
Then, push this image controller:latest to a repository where the operator's pod could pull from. If you use a local KinD cluster:
kind load docker-image controller
Customize resource configurations based the templates laid in operator/config. We use kustomize to build them, please refer to kustomize in case you don't familiar with its syntax.
Install the CRDs to Kubernetes:
make -C operator install
make to generate the final manifests and deploy:make -C operator deploy
curl https://raw.githubusercontent.com/apache/skywalking-swck/master/operator/config/samples/default.yaml | kubectl apply -f -
kubectl get oapserver
kubectl get ui
If you encounter any issue, you can check the log of the controller by pulling it from Kubernetes:
# get the pod name of your controller kubectl --namespace skywalking-swck-system get pods # pull the logs kubectl --namespace skywalking-swck-system logs -f [name_of_the_controller_pod]
The custom resources that the operator introduced are:
The JavaAgent custom resource definition (CRD) declaratively defines a view to tracing the injection result.
The java-agent-injector creat JavaAgents once it injects agents into some workloads. Refer to Java Agent for more details.
The OAP custom resource definition (CRD) declaratively defines a desired OAP setup to run in a Kubernetes cluster. It provides options to configure environment variables and how to connect a Storage.
The UI custom resource definition (CRD) declaratively defines a desired UI setup to run in a Kubernetes cluster. It provides options for how to connect an OAP.
The Storage custom resource definition (CRD) declaratively defines a desired storage setup to run in a Kubernetes cluster. The Storage could be managed instances onboarded by the operator or an external service. The OAP has options to select which Storage it would connect.
Caveat:
Stroageonly supports theElasticsearch.
The Satellite custom resource definition (CRD) declaratively defines a desired Satellite setup to run in a Kubernetes cluster. It provides options for how to connect an OAP.
The Fetcher custom resource definition (CRD) declaratively defines a desired Fetcher setup to run in a Kubernetes cluster. It provides options to configure OpenTelemetry collector, which fetches metrics to the deployed OAP.
There are some instant examples to represent the functions or features of the Operator.