Apache SkyWalking Cloud on Kubernetes

Clone this repo:
  1. 908b512 build(deps): bump google.golang.org/grpc in /adapter (#224) by dependabot[bot] · 2 days ago master
  2. 4e75df5 build(deps): bump sigs.k8s.io/controller-runtime (#223) by dependabot[bot] · 4 days ago
  3. 176e0bd cves: bump golang.org/x/crypto to v0.56.0 (#222) by tetrate-ci[bot] · 4 days ago
  4. 5d22131 Bump golang.org/x/crypto to v0.55.0 and google.golang.org/grpc to v1.83.1 (#221) by kezhenxu94 · 10 days ago
  5. cd1c9a0 Fix the release publish path: GHCR for snapshots, Docker Hub for releases (#220) by 吴晟 Wu Sheng · 11 days ago

Apache SkyWalking Cloud on Kubernetes

A bridge project between Apache SkyWalking and Kubernetes.

SWCK is a platform for the SkyWalking user that provisions, upgrades, maintains SkyWalking relevant components, and makes them work natively on Kubernetes.

Features

  • Java Agent Injector: Inject the java agent into the application pod natively.
    • Inject the java agent into the application pod.
    • Leverage a global configuration to simplify the agent and injector setup.
    • Use the annotation to customize specific workloads.
    • Synchronize injecting status to JavaAgent CR for monitoring purposes.
  • Operator: Provision and maintain SkyWalking backend components.
  • Custom Metrics Adapter: Provides custom metrics coming from SkyWalking OAP cluster for autoscaling by Kubernetes HPA

Quick Start

You can follow the Getting Started to deploy swck on a testing Kubernetes cluster quickly and try out the skywalking components end to end.

Install with Helm

The skywalking-swck chart installs the operator and, behind a values flag, the custom metrics adapter. It needs cert-manager in the cluster.

helm install skywalking-swck oci://registry-1.docker.io/apache/skywalking-swck \
  --version <SWCK_VERSION>-helm \
  --namespace skywalking-swck-system --create-namespace

The -helm suffix is not a typo: on Docker Hub the chart shares a repository with the image, so the two are told apart by tag. For more details, please read Install with Helm and the chart reference.

Java Agent Injector

  • Install the Operator
  • Label the namespace with swck-injection=enabled
$ kubectl label namespace default(your namespace) swck-injection=enabled
  • Add label swck-java-agent-injected: "true" to the workloads

For more details, please read Java agent injector

Operator

  • To install the operator in an existing cluster, ensure you have cert-manager installed.
  • Apply the manifests for the Controller and CRDs in release/config:
kubectl apply -f skywalking-swck-<SWCK_VERSION>-bin/config/operator-bundle.yaml
  • Also, you could deploy the operator quickly based on Master Branch or Stable Release:
kubectl apply -k "github.com/apache/skywalking-swck/operator/config/default"

or

kubectl apply -k "github.com/apache/skywalking-swck/operator/config/default?ref=v0.11.0"

For more details, please refer to deploy operator

Custom Metrics Adapter

  • Deploy the OAP server by referring to Operator Quick Start.
  • Apply the manifests for an adapter in release/adapter/config:
kubectl apply -f skywalking-swck-<SWCK_VERSION>-bin/config/adapter-bundle.yaml
  • Also, you could deploy the adapter quickly based on Master Branch or Stable Release:
kubectl apply -k "github.com/apache/skywalking-swck/adapter/config"

or

kubectl apply -k "github.com/apache/skywalking-swck/adapter/config?ref=v0.11.0"

For more details, please read Custom metrics adapter

Contributing

For developers who want to contribute to this project, see Contribution Guide. What's more, we have a guide about how to add new CRDs and Controllers, see How to add new CRD and Controller in SWCK.

License

Apache 2.0 License.