Chuyển đến nội dung chính

Day 1: Cài đặt minikube - Docker Desktop

Kubernetes là gì

Kubernetes là một nền tảng nguồn mở, khả chuyển, có thể mở rộng để quản lý các ứng dụng được đóng gói và các service, giúp thuận lợi trong việc cấu hình và tự động hoá việc triển khai ứng dụng. Kubernetes là một hệ sinh thái lớn và phát triển nhanh chóng. Các dịch vụ, sự hỗ trợ và công cụ có sẵn rộng rãi.

Tên gọi Kubernetes có nguồn gốc từ tiếng Hy Lạp, có ý nghĩa là người lái tàu hoặc hoa tiêu. Google mở mã nguồn Kubernetes từ năm 2014. Kubernetes xây dựng dựa trên một thập kỷ rưỡi kinh nghiệm mà Google có được với việc vận hành một khối lượng lớn workload trong thực tế, kết hợp với các ý tưởng và thực tiễn tốt nhất từ cộng đồng

K8s là gì?

Lúc mới đầu mình cũng thắc mắc không biết K8s là gì? Tuy nhiên nó đơn giản chỉ là viết tắt của Kubernetes (K-8 chữ cái-s). Trang chủ của Kubernetes là https://k8s.io hay https://kubernetes.io/ 

Những cách để cài đặt K8s

K8s là một hệ thống, gồm nhiều thành phần tương tác với nhau. Tuy không tới nỗi phức tạp như cài một hệ thống cloud IaaS như OpenStack, nhưng cũng không phải chỉ gõ 3, 5 cái là xong. Vậy là người ta đưa ra hàng chục cách khác nhau để cài K8s, đang kể nhất có:

  1. Minikube để cài 1 cluster test chơi chơi trên máy của bạn
  2. Kubeadm đang trong giai đoạn phát triển, để cài trên hệ thống máy vật lý / máy ảo dùng Ubuntu 16.04 hay CentOS 7
  3. Kargo là phần mềm dựa trên Ansible để cài trên rất nhiều nơi bao gồm cả máy vật lý/máy ảo/AWS/GCE
  4. Dùng SaltStack để cài https://github.com/kubernetes/kubernetes/tree/master/cluster/saltbase/
  5. Cài bằng tay trên CoreOS Container Linux
  6. Kops để cài trên AWS (Amazon cloud)
  7. Và rất nhiều các giải pháp khác nữa xem tại đây

Cài đặt Docker Desktop

Đầu tiên bạn cần kiểm tra xem máy bạn có bật Hyper-V chưa.

Bấm Windows => gõ System Information

Nếu máy bạn chưa bận Hyper-V thì ở dòng Hyper-V - Virtualization Enabled in Firmware  sẽ có giá trị là No

Trường hợp bạn dùng Windows Home,  bạn cần làm theo các bước sau đây để cài đặt Hyper-V

Mở notepadd++, tạo file hv.bat với nội dung như sau:

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hv.txt
for /f %%i in ('findstr /i . hv.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hv.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause
```C

Sau khi lưu xong, bạn kích chuột phải vào tệp > chọn Run As Administrator (sẽ mất một khoản thời để cài đặt chương trình). Sau khi hoàn thành, bạn khởi động lại máy tính của mình.

Download và cài đặt Docker for Windows: https://desktop.docker.com/win/stable/Docker Desktop Installer.exe

Cài đặt minikube

Tìm hiều sơ quá 1 chút thì Minikube là một bộ cài đăt K8s bằng cách tạo ra một máy ảo trên máy tính của bạn và triển khai một single-node Kubernetes cluster(cluster mà chỉ có 1 node).

Minikube có thể chạy trên đa nên tảng Linux, macOS, Windows nên bạn có thể dễ dàng cài đặt và sử dụng mà không gặp bất cứ khó khăn nào về về platform. 

Link tham khảo: https://minikube.sigs.k8s.io/docs/start/

Để test thêm tính năng LoadBalancers, PersistentVolumes, bạn có thể sử dụng NodePort, HostPath PersisentVolumes và một số tiện ích bổ sung như DNS, dashbaord, CNI, v.v. để kiểm tra ứng dụng ở local

Đầu tiên, bạn cần cài đặt Chocolatey (nếu máy bạn chưa có). Bản thân mình thấy việc sử dụng Chocolatey sẽ tiện hơn nhiều so với Powershell khi cài đặt chương trình.

Hướng dẫn cài đặt Chocolatey: https://nhatkyhoctap.blogspot.com/2022/06/command-line-powershell-chocolatey.html

Cài đặt minikube:
choco install minikube
Để kiểm tra phiên bản minikube
minikube version
Khởi động minikube
minikube start
Start và stop để tránh bị chiếm RAM:
minikube start --vm-driver=hyperv
minikube stop

Tham khảo

Hướng dẫn cài đặt: https://minikube.sigs.k8s.io/docs/start/

Tham khảo thêm các bài viết: https://www.john-cd.com/cheatsheets/Containers/Minikube_Install_on_Windows/ 

https://viblo.asia/p/tim-hieu-co-ban-ve-kubernetes-k8s-part-2-minikube-XL6lA2Mp5e

https://www.altaro.com/hyper-v/install-hyper-v-powershell-module/#How_to_Install_the_Hyper-V_PowerShell_Module_with_PowerShell

Cài đặt Windows 11 Home: https://quantrimang.com/cai-hyper-v-tren-windows-11-185201

Nhận xét

  1. Start và stop để tránh bị chiếm RAM:
    - minikube start --vm-driver=hyperv
    - minikube stop

    Trả lờiXóa
  2. Run PowerShell with Administration right

    Trả lờiXóa
  3. To make hyperv the default driver:

    minikube config set driver hyperv

    Trả lờiXóa

Đăng nhận xét

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.