opni

command module
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 11, 2021 License: Apache-2.0 Imports: 17 Imported by: 0

README

Opni = AIOps for Kubernetes + Observability Tools

Opni currently features log anomaly detection for Kubernetes.

What does Opni give me?
  • AI generated insights on your cluster's log messages
    • Control Plane & etcd insights
      • Pretrained models maintained by Rancher Labs
      • Only for RKE1, RKE2, k3s clusters
    • Workload & application insights
      • Automatically learns what steady-state is in your workloads & applications
      • For any Kubernetes cluster
  • Every log message sent to Opni will be marked as:
    • Normal
    • Suspicious - Operators may want to investigate
    • Anomalous - Operators definitely should investigate
  • Open Distro for Elasticsearch + Kibana
    • Opni dashboard to consume log insights & explore logs
    • Ability to setup & send alerts (slack/email/etc) based on Opni log insights

alt text


Deprecation Notice

The Opnidemo API has been removed in the v0.2.1 release.

Opnictl is currently deprecated.

Getting started with Opni

Full Install Opni in your Kubernetes cluster:

Prerequisites:

  • 1 Nvidia GPU required if you want the AI to learn from your workloads
    • You will need the nvidia k8s-device-plugin deployed to the cluster. The simplest way is to use the nvidia operator. This blog post contains instructions on how to deploy it. If you are using a host that already has nvidia drivers (e.g an EKS cluster) deploy the Daemonset with the following command:
      kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.9.0/nvidia-device-plugin.yml
      
    • The Opni manager has alpha support for automatically setting up GPU configuration. For more details please visit the GPU Configuration page.
  • Cert manager installed. This can be installed with the following command:
    kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml
    

Installation:

  1. Run the deploy helper script:
    curl -sfL https://raw.githubusercontent.com/rancher/opni/main/deploy/deploy.sh | sh -
    
    OR Deploy the manifests in deploy/manifests in order
  2. Deploy a matching logAdapter from deploy/examples/logAdapters

If you want to deploy the GPU service edit the opnicluster resource and set the deploy option to true

Opnictl install (deprecated)
  • Download the opnictl binary from the latest release
  • Install Opni using opnictl
    opnictl install
    opnictl create demo
    
    • Will use your current kubeconfig context
    • Cluster Hardware requirements: 4 vCPUs, 16GB RAM
      • 1 Nvidia GPU required if you want the AI to learn from your workloads (recommended)

Consume insights from the Opni Dashboard in Kibana. You will need to expose the Kibana service or port forward to do this.

Demo Opni in a sandbox environment
  • What you need: an Ubuntu VM with 4 vCPUs & 16 GB RAM

  • 1-command installer that creates an RKE2 cluster with Opni installed and simulates a failure

    curl -sfL https://raw.githubusercontent.com/rancher/opni-docs/main/quickstart_files/install_opni.sh | sh -
    

The default username and password is admin/admin You must be in the Global Tenant mode if you are not already. Navigate to Dashboard then Opni Logs Dashboard.


Watch a demo of Opni:


What's next?
  • v0.1.1 (Released) allows you to view Opni's log anomaly insights only on a demo environment created on a VM
  • v0.1.2 (Released) allows you install Opni into your existing Kubernetes cluster and consume log insights from it
  • v0.1.3 (August 2021) - only 1 GPU required, changes to the Opni operator, log anomaly optimizations
  • v0.2.0 (Fall 2021) will introduce a custom UI, AI applied to metrics, kubernetes events, audit logs, and more!

alt text


License

Copyright (c) 2014-2020 Rancher Labs, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
logging/v1beta1
+kubebuilder:object:generate=true +groupName=logging.opni.io
+kubebuilder:object:generate=true +groupName=logging.opni.io
nfd/v1
+kubebuilder:object:generate=true +groupName=nfd.opni.io
+kubebuilder:object:generate=true +groupName=nfd.opni.io
nvidia/v1
+kubebuilder:object:generate=true +groupName=nvidia.opni.io
+kubebuilder:object:generate=true +groupName=nvidia.opni.io
v1beta1
+kubebuilder:validation:Optional Package v1beta1 contains API Schema definitions for the opni.io v1beta1 API group +kubebuilder:object:generate=true +groupName=opni.io +kubebuilder:validation:Optional +kubebuilder:validation:Optional
+kubebuilder:validation:Optional Package v1beta1 contains API Schema definitions for the opni.io v1beta1 API group +kubebuilder:object:generate=true +groupName=opni.io +kubebuilder:validation:Optional +kubebuilder:validation:Optional
cmd
dagger module
images
infra module
pkg
opnictl
Package opnictl contains the root of the Opnictl command tree.
Package opnictl contains the root of the Opnictl command tree.
opnictl/commands
Package commands contains the opnictl sub-commands.
Package commands contains the opnictl sub-commands.
opnictl/common
Package common contains utilities shared between the opnictl commands and the CLI logic that is not tied to any specific command.
Package common contains utilities shared between the opnictl commands and the CLI logic that is not tied to any specific command.
providers
Package providers provides methods to detect different Kubernetes distros.
Package providers provides methods to detect different Kubernetes distros.
util/opnictl
Package opnictl contains various utility and helper functions that are used by the Opnictl CLI.
Package opnictl contains various utility and helper functions that are used by the Opnictl CLI.
Package staging provides a manifest of Kubernetes YAML resources needed to deploy the Opni Manager.
Package staging provides a manifest of Kubernetes YAML resources needed to deploy the Opni Manager.
test
e2e

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL