NeonForge Documentation
website·Indexed 31 days ago
https://docs.neonforge.com/docs/neonkube/Documentation for NeonForge products, including NeonKUBE for deploying and managing Kubernetes clusters on AWS, Azure, and on-premise hypervisors; the OperatorSDK for building, testing, and packaging Kubernetes Operators in .NET; and NeonSDK, an open-source collection of general-purpose libraries.
What's inside NeonForge
- NeonKUBE is a full-stack, production-ready Kubernetes distribution designed to provide a consistent developer experience across laptops, on-premise servers, and the cloud. Unlike basic Kubernetes, NeonKUBE layers curated open-source components onto the core to handle cluster deployment and management. It supports deployment to Windows workstations, XenServer, and XCP-ng.
Overview of the OperatorSDK for .NET
The OperatorSDK is a toolkit designed for developers to build, test, and package Kubernetes Operators using the .NET framework. It allows for the creation of application-specific controllers that extend the Kubernetes API to automate the deployment, configuration, and management of complex applications, replacing manual human operational tasks.Overview of NeonCLI (neon)
neonis a command-line tool used to configure and manage the nodes of a NeonKUBE cluster. It is included with NeonDESKTOP. The CLI provides a unified interface for cluster life-cycle management, utility tools, and acts as a wrapper for standardkubectlandhelmcommands.neonOverview of NeonSDK and Neon libraries
NeonSDK is an open-source project licensed under Apache 2.0. It provides a collection of general-purpose class libraries distributed as NuGet packages, collectively referred to as the Neon libraries.Deploy Kubernetes clusters using Neon Cluster Definitions
NeonDESKTOP and NeonCLI use Cluster Definitions—YAML files that describe nodes, networking, hosting credentials, and configuration—to deploy Kubernetes clusters. While NeonDESKTOP has a built-in definition for local desktop clusters, any other deployment (Hyper-V, XenServer, XCP-ng, AWS, or Azure) requires a custom YAML cluster definition.Manage cluster security and certificates with neon-cluster-operator
The
neon-cluster-operatoris a core service in every NeonKUBE cluster responsible for maintaining security and lifecycle management. It automates two critical security functions:- Certificate Rotation: Periodically generates new cryptographic keys and certificates for the API server, etcd database, and kubelet agents to ensure secure, authenticated communication and replace expired or compromised credentials.
- Security Updates: Monitors for and applies patches or fixes to address vulnerabilities in the cluster software or operating system across all nodes, either automatically or on demand.
Access default operator performance metrics
Neon Forge operators automatically emit a collection of performance metrics for each controller by default. A sample Grafana dashboard configuration is available to visualize these metrics via theoperator-dashboard.jsonasset.Prerequisites for NeonKUBE deployment on XenServer/XCP-ng
To deploy NeonKUBE, you need a machine running XenServer or XCP-ng (v8.2+ required) on AMD64 architecture.
Minimum hardware requirements:
- CPU: 4 cores
- Memory: 16+ GB
- Disk: 500GB SSD
Ensure you have the IP address of the machine and the root password available.
Choose a persistence type in NeonKUBE
NeonKUBE provides several storage options depending on the application's performance and access requirements:
- Network File System (NFS): Supports
ReadWriteMany. Best for small applications requiring shared file access. Note that NFS is relatively slow and unsuitable for high-performance operations. - Block Storage: Dynamically provisioned volumes where each pod receives a separate Persistent Volume. Available engines include:
- OpenEBS cStor: Enterprise-grade storage featuring synchronous replication, snapshots, clones, thin provisioning, and high resiliency.
- OpenEBS Jiva: A lightweight distributed storage engine suitable for smaller clusters.
- OpenEBS LocalPV: Provisions Kubernetes Local Volumes. Offers the highest performance but reduced availability; ideal for distributed databases.
- Object Storage: High-performance, S3-compatible storage provided by Minio.
- Network File System (NFS): Supports
Manage NeonDESKTOP cluster operations
Once the cluster is deployed, you can manage it using the NeonDESKTOP taskbar menu or theneoncommand line tool. Available operations include starting, stopping, pausing, removing the cluster, and displaying dashboards.Install the Neon Operator SDK
Add the Neon Operator SDK to your .NET project using the dotnet CLI. Note that the--prereleaseflag is required for the current version.dotnet add package Neon.Operator --prereleaseDefine Dependent Resources for Reconciliation
Dependent resources are Kubernetes objects created by the operator as a result of reconciling a primary resource. Watching these dependents allows the operator to re-reconcile the primary resource if a dependent object changes.
Dependents can be defined using the
[DependentResource<T>]attribute or viaResourceManagerOptions.DependentResourcesinStartup.cs(which requires[Controller(Ignore = true)]).// Attribute-based definition [DependentResource<V1Pod>] [DependentResource<V1Service>] public class EtcdController : ResourceControllerBase<V1EtcdCluster> { } // Manual configuration in Startup.cs services.AddKubernetesOperator() .AddController<EtcdController>( options: new ResourceManagerOptions() { DependentResources = new List<IDependentResource>() { new DependentResource<V1Pod>(), new DependentResource<V1Service>() } });