Technology 📅 Aug 25, 2026 👁️ 268 views

Oracle Kubernetes Engine (OKE) Complete Guide: Architecture, Setup, Networking, Security & Best Practices

A
Admin User

admin

Oracle Kubernetes Engine (OKE) Complete Guide

Architecture, Setup, Networking, Security & Best Practices for Oracle Cloud Infrastructure

If your team is running anything meaningful on Oracle Cloud Infrastructure, sooner or later Kubernetes enters the conversation — and that means Oracle Kubernetes Engine (OKE). It's OCI's managed Kubernetes service, and while it doesn't get the same tutorial coverage as EKS or GKE, it's a mature, well-integrated platform once you understand how the pieces connect.

This guide covers the architecture, networking model, security layers, and the practical setup steps — everything you need before your first production cluster goes live, without wading through documentation written for people who already know the answer.

What Is Oracle Kubernetes Engine (OKE)?

OKE (also called Container Engine for Kubernetes) is Oracle's fully managed Kubernetes offering. Oracle runs and patches the control plane for you — no master nodes to provision, no etcd cluster to babysit, no 2am page when the API server needs a security update. What you manage is your workloads, your node pools, and the networking configuration wrapped around the cluster.

$0
control plane cost
3
node deployment models
CNCF
certified conformant

The real appeal for teams already on OCI is how tightly it integrates with everything else — IAM, block storage, load balancers, and the container registry all plug in natively, so you're not bolting on a dozen third-party controllers just to get a working cluster.

OKE Architecture Explained

OKE is built from a handful of layers that each do one job well:

  • Control plane. Owned and operated entirely by Oracle, including the Kubernetes API server, scheduler, and etcd — provisioned across multiple availability domains by default, with no separate charge for it.
  • Worker nodes. The compute instances that actually run your pods. You choose the shape — virtual machine or bare metal, standard or GPU-optimized — based on the workload.
  • Node pools. Worker nodes grouped by shape, image, and configuration. Most real clusters run more than one pool: a general-purpose pool, maybe a GPU pool, and often a small pool reserved for system-critical workloads.
  • Kubernetes API. A standard, unmodified Kubernetes API — kubectl, Terraform, CI/CD pipelines, and the OCI Console all talk to it the same way they'd talk to any other conformant cluster.
  • OCI integration. IAM for authentication, OCI Container Registry for images, Block Volume and File Storage for persistent data, and the native OCI Load Balancer for exposing services — all wired in without extra controllers to install and maintain.
Worth knowing: the control plane itself is free on OKE — you're only billed for the worker node compute, storage, and load balancers you actually provision.

OKE Cluster Types: Managed vs Virtual Nodes

AspectManaged NodesVirtual Nodes
Node provisioningYou choose shape and sizeFully serverless, no nodes to manage
OS patchingShared responsibilityFully handled by OCI
Best forPredictable, steady-state workloadsSpiky, unpredictable, bursty workloads
GPU / specialized hardwareSupportedNot supported
DaemonSetsFully supportedLimited support

Most teams start with managed nodes because they give a good balance of control and convenience. Virtual nodes are worth reaching for once you're tired of pre-provisioning capacity for traffic you can't predict.

How a Request Actually Reaches Your Cluster

A simplified view of the path:

kubectl / CI-CD | v Kubernetes API Server (managed by Oracle) | v OKE Control Plane (scheduler · etcd) | v Worker Node Pool (Compute · GPU · Bare Metal) | v OCI Services Layer (VCN · Load Balancer · Block Volume · IAM · Registry)

How OKE Networking Works

Networking trips up more new OKE users than anything else on this list, mostly because it leans on general OCI networking concepts rather than inventing something Kubernetes-specific.

  • VCN (Virtual Cloud Network). Every OKE cluster lives inside a VCN — your isolated network space in OCI. Plan this before creating the cluster; retrofitting network design onto a running cluster is painful.
  • Subnets. Clusters typically use separate subnets for the API endpoint, worker nodes, and load balancers. Keep worker nodes in private subnets and only expose what genuinely needs public access.
  • Load Balancers. When you create a Kubernetes Service of type LoadBalancer, OKE automatically provisions an OCI Load Balancer and wires it up — no manual configuration on the OCI side.
  • Network Security Groups (NSGs). Firewall rules at the resource level, controlling exactly what traffic reaches your nodes, pods, and load balancers. A surprising number of "my pod can't be reached" issues trace back to an NSG rule rather than anything inside Kubernetes.

OKE Cluster Setup — Step by Step

Step 1: Create the Cluster

Using the OCI CLI, pointed at a VCN you've already planned out:

bashoci ce cluster create \ --name my-oke-cluster \ --compartment-id <compartment_ocid> \ --vcn-id <vcn_ocid> \ --kubernetes-version v1.29.1 \ --service-lb-subnet-ids '["<lb_subnet_ocid>"]'

Step 2: Add a Node Pool

bashoci ce node-pool create \ --cluster-id <cluster_ocid> \ --compartment-id <compartment_ocid> \ --name pool-1 \ --node-shape "VM.Standard.E4.Flex" \ --node-shape-config '{"ocpus":2,"memoryInGBs":16}' \ --size 3 \ --node-image-id <image_ocid>

Step 3: Configure kubectl Access

bashoci ce cluster create-kubeconfig \ --cluster-id <cluster_ocid> \ --file $HOME/.kube/config \ --region us-ashburn-1 \ --token-version 2.0.0 kubectl get nodes

If your nodes show a Ready status, the cluster is live and talking to kubectl correctly.

Step 4: Set Baseline Namespaces and RBAC

Before deploying real workloads, establish namespaces, RBAC roles, and any baseline policies. It's far easier to set these conventions early than retrofit them onto a cluster already running production traffic.

Deploying an Application on OKE

Once the cluster is up, deployment follows standard Kubernetes patterns. Push your image to the OCI Container Registry, then apply a deployment manifest:

yamlapiVersion: apps/v1 kind: Deployment metadata: name: app-server spec: replicas: 3 selector: matchLabels: app: app-server template: metadata: labels: app: app-server spec: containers: - name: app-server image: <region>.ocir.io/<namespace>/app-server:latest ports: - containerPort: 8080
bashkubectl apply -f deployment.yaml kubectl expose deployment app-server --type=LoadBalancer --port=80 --target-port=8080

The expose command triggers OKE to provision a public OCI Load Balancer automatically — no separate load balancer setup required.

OKE Security Architecture

IAM. Access to the cluster itself — who can create, delete, or modify it — is governed by OCI IAM policies, separate from what happens inside Kubernetes.
RBAC. Once inside the cluster, standard Kubernetes RBAC controls what each user or service account can actually do — which namespaces they touch, which resources they can read or modify.
Secrets. Kubernetes Secrets handle API keys and credentials, with optional integration into OCI Vault for teams that want centralized, audited secret management instead of base64-encoded values sitting in etcd.
Network security. Beyond NSGs, Kubernetes NetworkPolicies control pod-to-pod traffic, and OKE supports fully private clusters where the API endpoint isn't exposed to the public internet at all.

OKE Storage Options

Storage TypeAccess ModeBest For
Block VolumeSingle pod (ReadWriteOnce)Databases, stateful apps needing low-latency disk
File Storage ServiceMultiple pods (ReadWriteMany)Shared content, logs, config directories
Object StorageAPI / S3-compatibleBackups, static assets, unstructured data

OKE Autoscaling & High Availability

The Cluster Autoscaler adds or removes worker nodes based on pending pod demand, while the Horizontal Pod Autoscaler scales pod replicas based on CPU, memory, or custom metrics. For high availability, spread node pools across multiple availability domains where your region supports it, so a single-AD outage doesn't take the whole cluster down. Pair that with pod disruption budgets and readiness probes, and the cluster handles node failures and traffic spikes with very little manual intervention.

Monitoring and Logging

OKE integrates with OCI Monitoring and OCI Logging out of the box, giving you metrics and log aggregation without deploying a separate stack. That said, many teams still layer Prometheus and Grafana on top for more granular, Kubernetes-native dashboards, and route logs to OCI Logging Analytics or a third-party tool depending on what the rest of the organization already uses.

OKE with OCI Load Balancer

Worth calling out on its own: when a Service of type LoadBalancer is created, OKE talks directly to the OCI Load Balancer service to provision, configure listeners, and register backend nodes automatically. You control behavior through Service annotations — flexible shapes, SSL termination, health check paths — without ever leaving your Kubernetes manifests.

OKE Best Practices

  • Keep worker nodes in private subnets and only expose what genuinely needs public access.
  • Use separate node pools for different workload types instead of one large, generic pool.
  • Set resource requests and limits on every deployment — unbounded pods are the fastest way to destabilize a cluster.
  • Enable the Cluster Autoscaler rather than manually resizing node pools.
  • Audit IAM policies and RBAC bindings regularly rather than treating them as set-and-forget.
  • Provision clusters through Terraform or OpenTofu so environments stay reproducible.

Common OKE Issues and Troubleshooting

Nodes stuck in Not Ready usually trace back to networking — check NSG rules and subnet route tables first. Pods failing to pull images often mean a Container Registry permissions issue rather than anything wrong with the cluster itself. LoadBalancer services stuck in Pending typically point to a service limit being hit or a misconfigured load balancer subnet. When in doubt, kubectl describe on the resource in question, paired with the OCI Console's work request history, usually surfaces the real cause faster than guessing.

OKE vs Amazon EKS vs Azure AKS

AspectOKEEKSAKS
Control plane costFreeHourly charge per clusterFree (Standard tier billed)
Free tierGenerous Always Free computeLimitedLimited
Serverless nodesVirtual nodesFargateVirtual nodes (ACI)
Ecosystem depthSmaller, growingLargest third-party tooling ecosystemStrong Microsoft ecosystem integration
Best fitOCI-first teams, database-heavy workloadsAWS-native environmentsAzure AD / Windows-heavy environments

If you're already OCI-first, OKE is the natural default — the cost advantage and native integration are hard to ignore. If you're evaluating from scratch, the decision usually comes down to which cloud the rest of your infrastructure already lives on.

Frequently Asked Questions

Is Oracle Kubernetes Engine free?

The OKE control plane itself is free. You only pay for the underlying compute, storage, and load balancers your worker nodes and services consume — and OCI's Always Free tier can cover small clusters entirely.

What's the difference between managed nodes and virtual nodes in OKE?

Managed nodes give you control over shape and sizing with shared operational responsibility. Virtual nodes are fully serverless — no node provisioning or patching at all — at the cost of some flexibility around GPU workloads and DaemonSets.

Can I use standard Kubernetes tools with OKE?

Yes. OKE exposes a standard, conformant Kubernetes API, so kubectl, Helm, Terraform, OpenTofu, and any CNCF-ecosystem tool work without modification.

How does OKE handle high availability?

The control plane runs across multiple availability domains automatically. For your own workloads, spreading node pools across ADs and using pod disruption budgets keeps applications resilient to node or AD-level failures.

Is OKE a good choice compared to EKS or AKS?

It depends on where the rest of your infrastructure lives. OKE tends to win on cost and OCI-native integration, EKS on ecosystem breadth, and AKS on Microsoft-stack integration.

Conclusion

OKE isn't flashy, but it's a capable, well-integrated managed Kubernetes service that removes a lot of the operational overhead teams used to handle themselves. Get the networking and security foundations right early, lean on the built-in OCI integrations instead of reinventing them, and it holds up well for anything from small internal tools to production-grade, multi-service applications.

Whether you're standing up a single cluster or coordinating multi-region OKE deployments for an enterprise workload, the fundamentals covered here — architecture, networking, security, and setup — are the foundation everything else builds on.

If you want to go deeper into Kubernetes and Infrastructure as Code on Oracle Cloud, including hands-on labs and certification-aligned training, KP Expert's OCI and Kubernetes courses cover this in a lot more depth than a single blog post can.

Recently Enrolled

Student enrolled in this course.

View course
Explore Courses

Latest from @kp__expert

Follow on Instagram
Loading Instagram posts...

AI Course Assistant

Share your details and goals to get the best course recommendations.

Recommended Courses

Select a course name to view full details.

Course Details
Enrollment & Contact
  • Review selected course and confirm your enrollment request.
  • Click checkout to move into the full payment process.
  • After payment submission, your enrollment is processed by our team.
Admissions Contact
Email: info@kpexpert.com
Phone: +91 92708 37105
Your submitted details
Name, email and phone will appear here.
Your request has been submitted successfully. Our team will contact you shortly.