Kubernetes Documentation

Kubernetes is prepared for the project, but kubeadm needs a full VM instead of this LXC VPS.

What Kubernetes Is

Kubernetes is a container orchestration system. It schedules containers as Pods, keeps replicas running, performs rolling updates and exposes applications using Services and Ingress.

Core Objects

ObjectMeaning
PodSmallest deployable unit. Usually one application container.
DeploymentDefines desired application state and replica count.
ReplicaSetKeeps the requested number of Pods alive.
ServiceStable virtual IP and load balancer for Pods.
IngressHTTP routing based on hostname and path.

Why kubeadm Is Blocked Here

The current VPS is detected as LXC. kubeadm needs full control of cgroups, bridge networking, iptables and kernel modules such as br_netfilter. This host does not expose that module inside the guest.

Prepared Kubernetes Files

/opt/cloud-platform/k8s/namespace.yaml
/opt/cloud-platform/k8s/website.yaml
/opt/cloud-platform/k8s/api.yaml
/opt/cloud-platform/k8s/ingress.yaml
/opt/cloud-platform/scripts/install-kubeadm-single-node.sh

Future Kubernetes Traffic Flow

Client -> DNS -> Nginx or public load balancer -> Ingress Controller -> Service -> Pod replica

Commands On Full VM

/opt/cloud-platform/scripts/install-kubeadm-single-node.sh
kubectl get nodes
kubectl apply -f /opt/cloud-platform/k8s/
kubectl get pods,svc,ingress -n cloud-platform
kubectl scale deployment website -n cloud-platform --replicas=5
kubectl rollout restart deployment website -n cloud-platform