The focus of this internship is on mastering Container Orchestration technology, from the minimalist K3s version for Lab/Edge environments to the standard K8s for enterprises.
Required knowledge to grasp
Solid Docker knowledge: Must complete the Docker module before participating in this lesson.
Microservices knowledge: Understand why orchestration, load management, and automatic system scaling are needed.
K8s Core components: Definition and role of Pod, Deployment, Service (ClusterIP, NodePort, LoadBalancer), Ingress, and ConfigMap/Secret.
Execution sequence
Request resource allocation: Log in to https://dev.mdcgroup.vn, request allocation of a cluster of 03 Linux Servers (01 Master Node, 02 Worker Nodes).
Deploy K3s Lab cluster: Proceed with installing K3s (Rancher's lightweight version) on the server cluster to get familiar with the basic Master-Worker architecture.
Install management tools: Configure kubectl on your personal computer for remote connection and cluster management. Install a graphical interface (e.g., Lens or K9s).
Deploy the first application: Write a YAML file to deploy a web application as a Pod and Deployment. Practice scaling up/down the number of replicas.
Configure Networking & Public services: Create K8s Services for Pods to communicate with each other; Configure Ingress Controller to route traffic from the Internet to internal applications.
Upgrade to standard K8s (optional if capable): Research how to create a cluster using kubeadm to gain a deeper understanding of the underlying K8s system layer.
Result acceptance
Multiple-choice test: Answer the K8s multiple-choice test on the internal server.
Questions & Proposals: Provide a practical comparison of performance and resource consumption between K3s and K8s after deployment.
Report results: Submit YAML configuration source code and cluster status report (kubectl get all -A) to management.
Weekend discussion: Participate in discussions and explain the deployment process with the Mentor.