Operator Usage Guide
In this guide, you will learn:
- How to deploy the operator from a released package or scratch
- The core CRDs the operator supports
Operator Deployment
You could provision the operator from a binary package or build from sources.
Binary Package
- Go to the download page to download the latest release binary,
skywalking-swck-<SWCK_VERSION>-bin.tgz. Unarchive the package to a folder namedskywalking-swck-<SWCK_VERSION>-bin - To install the operator in an existing cluster, make sure you have
cert-managerinstalled. - Apply the manifests for the Controller and CRDs in
config:
kubectl apply -f skywalking-swck-<SWCK_VERSION>-bin/config/operator-bundle.yaml
Build from sources
- Download released source package or clone the source code:
git clone git@github.com:apache/skywalking-swck.git
- Build docker image from scratch. If you prefer to your private
docker image, a quick path to override
OPERATOR_IMGenvironment 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 usekustomizeto build them, please refer to kustomize in case you don’t familiar with its syntax. -
Install the CRDs to Kubernetes:
make -C operator install
- Use
maketo generate the final manifests and deploy:
make -C operator deploy
Test your deployment
- Deploy a sample OAP server, this will create an OAP server in the default namespace:
curl https://raw.githubusercontent.com/apache/skywalking-swck/master/operator/config/samples/default.yaml | kubectl apply -f -
- Check the OAP server in Kubernetes:
kubectl get oapserver
- Check the UI server in Kubernetes:
kubectl get ui
Troubleshooting
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]
Custom Resource Define(CRD)
The custom resources that the operator introduced are:
JavaAgent
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.
OAP
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.
UI
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.
Storage
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.
Satellite
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.
Fetcher
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.
Examples of the Operator
There are some instant examples to represent the functions or features of the Operator.