# 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`