Skip to content

OKE Kubernetes on Oracle Cloud Free Tier

Kubernetes on Oracle Cloud Always Free tier using managed control plane and GitOps.

OKE Basic Cluster

Managed Kubernetes control plane. Two ARM-based worker nodes.

4 OCPUs + 24GB RAM

Ampere A1 ARM instances. Two worker nodes with 2 OCPU and 12GB RAM each.

GitOps with ArgoCD

All resources deployed via Git. App-of-Apps pattern for managing applications.

Security

OCI Vault for secrets, Let’s Encrypt TLS certificates, Bearer token authentication.

flowchart TB
    subgraph Internet
        User((Users))
        GitHub[(GitHub<br/>GitOps Repo)]
    end

    subgraph OCI["Oracle Cloud Infrastructure (Always Free)"]
        LB[Load Balancer<br/>10 Mbps]

        subgraph OKE["OKE Basic Cluster"]
            subgraph CP["Control Plane (Managed)"]
                API[Kubernetes API]
            end

            subgraph Workers["Worker Nodes (2x ARM)"]
                subgraph Node1["Node 1: 2 OCPU / 12GB"]
                    ArgoCD[ArgoCD]
                    Envoy[Envoy Gateway]
                    ESO[External Secrets]
                    CertMgr[Cert Manager]
                end

                subgraph Node2["Node 2: 2 OCPU / 12GB"]
                    Gemma[Gemma LLM]
                    Docs[Documentation]
                    Apps[Your Apps]
                end
            end
        end

        Vault[(OCI Vault)]
        DNS[External DNS]
    end

    subgraph External
        CF[Cloudflare DNS]
        LE[Let's Encrypt]
        HF[HuggingFace]
    end

    User -->|HTTPS| LB
    LB --> Envoy
    GitHub -->|Sync| ArgoCD
    ArgoCD --> Workers
    Vault --> ESO
    DNS --> CF
    CertMgr --> LE
    Gemma -.-> HF
ComponentTechnologyPurpose
InfrastructureTerraformDeclarative OCI resource provisioning
KubernetesOKE BasicFree managed control plane
GitOpsArgoCDContinuous deployment from Git
IngressEnvoy GatewayGateway API with load balancing
DNSExternal DNS + CloudflareAutomatic DNS record management
TLSCert Manager + Let’s EncryptAutomatic certificate issuance
SecretsExternal Secrets + OCI VaultSecure secret synchronization
LLMllama.cpp + Gemma 3 1BSelf-hosted AI with OpenAI API
Terminal window
git clone https://github.com/nsudhanva/k8s-oracle.git
cd k8s-oracle/tf-oke
OKE BasicK3s on VM
Control PlaneManaged (Free)Self-managed on VM
Worker ResourcesFull 4 OCPU / 24GBReduced by control plane overhead
MaintenanceOracle handles upgradesManual upgrades required
StorageOCI Block Volume CSILocal path provisioner
NetworkingOCI VCN integrationManual CNI setup

This documentation site runs on the cluster. Try the self-hosted LLM:

Terminal window
curl https://gemma.k8s.sudhanva.me/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gemma","messages":[{"role":"user","content":"Hello!"}]}'