OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes
2.0.1-preview.200
Prefix Reserved
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes --version 2.0.1-preview.200
NuGet\Install-Package OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes -Version 2.0.1-preview.200
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes" Version="2.0.1-preview.200" />
<PackageVersion Include="OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes" Version="2.0.1-preview.200" />
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes" />
paket add OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes --version 2.0.1-preview.200
#r "nuget: OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes, 2.0.1-preview.200"
#:package OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes@2.0.1-preview.200
#addin nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes&version=2.0.1-preview.200&prerelease
#tool nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes&version=2.0.1-preview.200&prerelease
OPC UA .NET Standard — Kubernetes Distributed Server Integration
OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes adds opt-in Kubernetes integration to OPCFoundation.NetStandard.Opc.Ua.Redundancy.Server.
Overview
The package keeps Kubernetes concerns outside the base high-availability package. It provides Lease-backed leader election, peer discovery from EndpointSlices, an HTTP readiness/liveness bridge driven by OPC UA ServiceLevel, and a strongly-consistent multi-node Raft consensus wiring (UseKubernetesRaftConsensus, RaftCs over NanoMsg with an optional file WAL).
Getting started
services.AddOpcUa()
.AddServer(...)
.UseDistributedAddressSpace(options => options.UseLeaderElection = true)
.UseKubernetesLeaderElection(options => options.LeaseName = "opcua-ha")
.UseKubernetesPeerDiscovery(options => options.ServiceName = "opcua-ha-headless")
.UseKubernetesReadiness(); // /readyz and /livez on port 4852
The readiness probe listens on KubernetesReadinessOptions.DefaultPort (4852) unless Port is set. The default stays off the ports web applications commonly use (8080, 9090, ...), which would collide with the application or a sidecar in the same pod.
For strong consistency, wire a Raft cluster from the StatefulSet ordinals and compose it with UseRedundancyConsistency:
services.AddOpcUa()
.AddServer(...)
.UseKubernetesRaftConsensus(o =>
{
o.HeadlessServiceName = "opcua-ha-headless";
o.ReplicaCount = 3; // static membership; odd for quorum
o.StoragePath = "/var/lib/opcua/raft"; // PersistentVolume mount for the WAL
})
.UseRedundancyConsistency(RedundancyConsistencyMode.Strong);
Target frameworks
net8.0, net9.0, net10.0. .NET Framework consumers use the base distributed package without Kubernetes integration.
Additional documentation
See the Kubernetes high availability deployment guide for RBAC, Service, StatefulSet, readiness, and time-sync guidance.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- BitFaster.Caching (>= 2.6.1)
- Crdt (>= 1.1.2)
- Crdt.Transport (>= 1.1.2)
- Microsoft.Bcl.TimeProvider (>= 10.0.12)
- Microsoft.Extensions.Configuration (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Diagnostics (>= 10.0.12)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Logging (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
- OPCFoundation.NetStandard.Opc.Ua.Redundancy.Server (>= 2.0.1-preview.200)
- RaftCs (>= 1.1.2)
- RaftCs.Storage.File (>= 1.1.2)
- RaftCs.Transport (>= 1.1.2)
- RaftCs.Transport.NanoMsg (>= 1.1.2)
- System.Threading.RateLimiting (>= 10.0.12)
-
net8.0
- BitFaster.Caching (>= 2.6.1)
- Crdt (>= 1.1.2)
- Crdt.Transport (>= 1.1.2)
- Microsoft.Bcl.TimeProvider (>= 10.0.12)
- Microsoft.Extensions.Configuration (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Diagnostics (>= 10.0.12)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Logging (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
- OPCFoundation.NetStandard.Opc.Ua.Redundancy.Server (>= 2.0.1-preview.200)
- RaftCs (>= 1.1.2)
- RaftCs.Storage.File (>= 1.1.2)
- RaftCs.Transport (>= 1.1.2)
- RaftCs.Transport.NanoMsg (>= 1.1.2)
- System.Collections.Immutable (>= 9.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.12)
- System.Formats.Asn1 (>= 10.0.12)
- System.Text.Json (>= 10.0.12)
- System.Threading.Channels (>= 10.0.12)
- System.Threading.RateLimiting (>= 10.0.12)
-
net9.0
- BitFaster.Caching (>= 2.6.1)
- Crdt (>= 1.1.2)
- Crdt.Transport (>= 1.1.2)
- Microsoft.Bcl.TimeProvider (>= 10.0.12)
- Microsoft.Extensions.Configuration (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Diagnostics (>= 10.0.12)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Logging (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
- OPCFoundation.NetStandard.Opc.Ua.Redundancy.Server (>= 2.0.1-preview.200)
- RaftCs (>= 1.1.2)
- RaftCs.Storage.File (>= 1.1.2)
- RaftCs.Transport (>= 1.1.2)
- RaftCs.Transport.NanoMsg (>= 1.1.2)
- System.Diagnostics.DiagnosticSource (>= 10.0.12)
- System.Formats.Asn1 (>= 10.0.12)
- System.Text.Json (>= 10.0.12)
- System.Threading.Channels (>= 10.0.12)
- System.Threading.RateLimiting (>= 10.0.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.1-preview.200 | 29 | 10/12/2026 |
| 2.0.0-preview.200 | 42 | 10/7/2026 |
| 2.0.0-preview.6 | 55 | 9/30/2026 |
| 2.0.0-preview.5 | 65 | 9/17/2026 |
| 2.0.0-preview.4 | 71 | 9/2/2026 |
| 2.0.0-preview.3 | 79 | 8/28/2026 |