---
# System prepended metadata

title: Hello Minikube
tags: [Kubernetes Tutorials Exercises]

---

# Chạy 1 app cơ bản Kubernetes bằng cách sử dụng Minikube

* **Điều kiện tiên quyết**: Đã cài đặt kubectl, minikube

## Objectives:
* Deploy a sample application to minikube.
* Run the app
* View the application logs.

## Các bước triển khai:
* Khởi tạo Kubernetes Cluster:
    * Lệnh: `minikube start`
* Mở dashboard: 
    * Thao tác này cho phép dashboard add-on và cho phép truy cập vào proxy trong 1 web tiêu chuẩn.
    * Lệnh: `minikube dashboard`
* Tạo 1 deployment
    * Pods tập hợp của 1 hoặc nhiều container kết hợp với nhau nhằm mục đích quản trị và networking.
    * Và trong 1 deployment sẽ có 1 hoặc nhiều Pods. Trong ví dụ này sử dụng 1 pod và 1 container. Việc tạo depolyment sẽ quản lý các pods
    * Lệnh: `kubectl create ` sẽ tạo deployment
    * Ví dụ: `kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080` sẽ tạo 1 deployment chứa container image để chạy web server.
    * Lệnh view deployment: `kubectl get deployments`
    * Lệnh view pods: `kubectl get pods`
    * Lệnh view cluster event: `kubectl get events`
    * Lệnh view `kubectl` configuration: `kubectl config view`
    * Lệnh view application logs cho container trong pods: `kubectl logs <your pod>`
* Expose application ra public:
    * Mục đích của việc làm này là để application của bạn có thể truy cập từ public dưới dạng Kubernetes service, thay vì trong internal IP.
    * Lệnh `kubectl expose`.
    * Ví dụ: `kubectl expose deployment hello-node --type=LoadBalancer --port=8080`. Lệnh này sẽ expose deployment này ra public, và tag `--type=Loadbalancer` giúp expose ra ngoài Kubernetes Cluster. Ngoài ra application sẽ nghe từ cổng 8080.
    * Lệnh view service: `kubectl get services`
    * Lệnh `minikube service hello-node` sẽ mở browser và trả về app response.
* Enable addons 
    * Mục đích để thêm các addons vào Kubernetes service
    * Lệnh list tất cả addons: `minikube addons list`
    * Lệnh enable 1 addon: Ví dụ: `minikube addons enable metrics-server`
    * Lệnh view pods và services: `kubectl get pod,svc -n kube-system`
    * Lệnh disable 1 addon: `minikube addons disable metrics-server`
* Clean up
    * Nếu bạn không sử dụng thì hãy clear tất cả
    * Lệnh clean resource. Ví dụ:
    * `kubectl delete service hello-node`
    * `kubectl delete deployment hello-node`
    * Lệnh stop cluster: `minikube stop`
    * Lệnh delete minikube VM: `minikube delete`