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