kube-sentry reads the servicelog.db to parse the RTAS (Run Time Abstraction Services) events which have been reported by the RTAS daemon. The events are related to the platform, such as Predictive CPU Failure, IO Bus Failure, Fan Failures, etc. and are reported to the Kubernetes API server.
This gives the cluster administrators visiblity about the errors that may be prevalent in underlying host. The servicelogs are specific to the PowerPC family of servers by IBM Corporation.
The kube-sentry application can be configured to work in a standalone mode, or be deployed as a DaemonSet in Kubernetes cluster.
{
"PollInterval": 5,
"ServicelogDBPath": "servicelog.db",
"Severity": 3
}
PollInterval(Hours) - Scan the servicelog.db in specified intervals of time.
ServicelogDBPath - Path to the servicelog.db file on the node.
Severity - Retrieve entries from the servicelog.db whose event severity is greater than or equal to the set value.
This mode requires the KUBECONFIG environment variable to be set.
cd cmd
go build -o kube-sentry .
./kube-sentry -c <path to config file (optional) -v <log verbosity>
This creates a kube-sentry process and uses the available Kubeconfig to notify the RTAS events to Kubernetes API server.
kubectl apply -f deployment
The log verbosity can be set to report debug messages by modifying the deployment/kubesentry-deployment.yaml
file.
spec:
containers:
- name: kube-sentry
image: ghcr.io/ppc64le-cloud/kube-sentry:v0.1
env:
- name: VERBOSITY
value: <0 for Info, 1 for Debug>
This creates the required RBAC, config map and the daemonset to notify RTAS events to the Kubernetes API server.