As I have mentioned some time ago I strongly believe Kubernetes adoption should grow over time in Oracle Cloud Infrastructure. Container technology gives us a lot of elasticity and scalability. Application, especially based on microservices, could be easily deployed and can grow at scale. Moving out from the monolith approach into modern application development will use some variant of Kubernetes implementation. That is not a question to discuss. Therefore I think everyone should learn about docker and K8S as fast as possible.
Recently I have reviewed all of the GitHub repositories covering OCI Container Engine for Kubernetes (OKE) which is the foundation for my course here. All of them I have finally equipped with ARM support. As you maybe know ARM A1 platform is an essential element of OCI Free Tier. In each and every tenancy you can deploy 4 CPUs and 24GB of memory for free! In my configuration, you can base OKE on 3 nodes (1 OCPU, 6 GB of memory per worker node).
Here is a list of repositories and corresponding lessons in my course:
- OCI Container Engine for Kubernetes (aka OCI OKE) with Autoscaler – You can use the Kubernetes Cluster Autoscaler to automatically resize a cluster’s node pools based on application workload demands. By automatically resizing a cluster’s node pools, you can ensure application availability and optimize costs. Here is the repository covering Autoscaler: https://github.com/mlinxfeld/terraform-oci-oke-autoscaler
- OCI Container Engine for Kubernetes (aka OCI OKE) with Native POD networking – The OCI VCN-Native Pod Networking CNI plugin provides IP addresses to pods from a VCN’s CIDR block. The OCI VCN-Native Pod Networking CNI plugin enables other resources within the same subnet (or a different subnet) to communicate directly with pods in a Kubernetes cluster. Pod IP addresses are directly routable from other VCNs connected (peered) to that VCN, from on-premise networks, and from the internet. Here is the repository covering Native POD Networking: https://github.com/mlinxfeld/terraform-oci-oke-native-pod-networking
- OCI Container Engine for Kubernetes (aka OCI OKE) with OCI Load Balancer – When you define a Kubernetes service of type LoadBalancer to expose an application to the Internet or to a local network. Here is the repository covering LoadBalancer in OKE: https://github.com/mlinxfeld/terraform-oci-oke-lb
- OCI Container Engine for Kubernetes (aka OCI OKE) with image taken from Container Registry (OCIR) – Oracle Cloud Infrastructure Registry (also known as Container Registry) is an Oracle-managed registry that enables you to simplify your development to production workflow. Container Registry makes it easy for you as a developer to store, share, and manage container images (such as Docker images). Here is a repository covering OCIR usage with OKE: https://github.com/mlinxfeld/terraform-oci-oke-ocir
- OCI Container Engine for Kubernetes (aka OCI OKE) with OCI Block Volume as PVC – Container storage via a container’s root file system is ephemeral and can disappear upon container deletion and creation. To provide a durable location to prevent data from being lost, you can create and use persistent volumes to store data outside of containers. Here is a repository covering usage of OCI Block Volume as Persistent Volume Claim in OKE: https://github.com/mlinxfeld/terraform-oci-oke-pvc
- OCI Container Engine for Kubernetes (aka OCI OKE) with OCI File Storage as PVC – The File Storage service file systems are mounted inside containers running on clusters created by Container Engine for Kubernetes using a CSI (Container Storage Interface) driver deployed on the clusters. Here is the repository covering usage of File Storage service in OKE: https://github.com/mlinxfeld/terraform-oci-oke-pvc-fss
Martin, The Cook.