Nền tảng Kubernetes mã nguồn mở và miễn phí Kubesphere cùng quản lý ứng dụng gốc đám mây đã được CNCF xác minh. Đây là nền tảng container Kubernetes cấp doanh nghiệp với nhiều tính năng phong phú và được thiết kế riêng cho triển khai đa đám mây lai. Theo mặc định, Kubesphere bao gồm các hoạt động CNTT tự động toàn bộ ngăn xếp và được hợp lý hóa với quy trình làm việc DevOps. Nó có thể được triển khai tới cụm Kubernetes hiện có hoặc các bản phân phối Linux hoặc bạn cũng có thể thiết lập Kubernetes của mình với Kubesphere được bao gồm thông qua KubeKey, một công cụ dòng lệnh cho Linux để triển khai, cập nhật và mở rộng cụm Kubernetes tự động.
Kubesphere cung cấp giao diện người dùng web đồ họa trực quan để quản lý cụm Kubernetes. Nó cũng đi kèm với các công cụ CI/CD có thể cắm được như jenkins cho phép bạn thiết lập đường ống CI/CD tự động. Nó cũng cung cấp Source-to-Image (S2I) để tự động xây dựng các hình ảnh container có thể tái tạo từ mã nguồn và Binary-to-Image (B2I) để xây dựng các hình ảnh container có thể tái tạo từ tệp nhị phân (Jar, War, tệp nhị phân).
Bài viết này sẽ hướng dẫn triển khai Kubernetes và Kubesphere trên máy chủ Ubuntu 22.04. Bạn sẽ sử dụng nhiều máy chủ Ubuntu cho lần triển khai này và bạn sẽ sử dụng ứng dụng KubeKey do Kubesphere cung cấp để triển khai tự động cụm Kubernetes và Kubesphere.
Bây giờ hãy mở tệp '/etc/hosts' bằng lệnh trình chỉnh sửa nano sau.
Thêm thông tin chi tiết về địa chỉ IP máy chủ và tên máy chủ vào tệp.
Lưu tệp và đóng trình soạn thảo khi hoàn tất.
Tiếp theo, nhập lệnh sau để tạo người dùng mới có tên là 'ubuntu' và thiết lập mật khẩu cho người dùng mới 'ubuntu'. Khi được nhắc, hãy nhập mật khẩu của bạn và lặp lại.
Cuối cùng, hãy chạy lệnh sau để cho phép người dùng 'ubuntu' thực thi 'sudo' mà không cần mật khẩu. Người dùng 'ubuntu' ở đây sẽ được sử dụng để cài đặt các gói phụ thuộc, vì vậy bạn phải đảm bảo người dùng có thể trở thành root mà không cần mật khẩu.
Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22713%22%20height=%22315%22%3E%3C/svg%3E
Tiếp theo, kết nối với máy chủ 'node1' thông qua lệnh 'ssh' bên dưới. Sau khi lệnh được thực thi, bạn sẽ được đăng nhập vào 'node1' mà không cần xác thực mật khẩu.
Bây giờ hãy nhập lệnh apt sau để cập nhật và làm mới chỉ mục gói Ubuntu của bạn. Sau đó, cài đặt một số gói phụ thuộc cơ bản. Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22583%22%3E%3C/svg%3E
Cuối cùng, kết nối với máy chủ 'node2' thông qua lệnh 'ssh' bên dưới.
Sau khi kết nối, hãy nhập lệnh sau để cập nhật chỉ mục gói kho lưu trữ. Sau đó, cài đặt một số gói phụ thuộc thông qua lệnh 'apt install'.
Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22572%22%3E%3C/svg%3E
Tại thời điểm này, bạn đã định cấu hình máy chủ của mình để cài đặt Kubernetes và Kubesphre. Trong phần tiếp theo, bạn sẽ tải xuống tệp nhị phân của KubeKey sẽ được sử dụng để khởi tạo cụm Kubernetes và cài đặt Kubesphere.
Nhập lệnh sau để tải xuống tệp nhị phân của KubeKey vào thư mục làm việc hiện tại của bạn. Khi quá trình hoàn tất, bạn sẽ thấy tệp 'kk' trong thư mục của mình.
Bây giờ hãy chạy lệnh sau để làm cho tệp 'kk' có thể thực thi được.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22164%22%3E%3C/svg%3E
Sau đó, chạy tệp nhị phân 'kk' để xác minh phiên bản hiện tại và danh sách các tham số khả dụng trên KubeKey.
Dưới đây là kết quả tương tự sẽ được in ra trên màn hình thiết bị đầu cuối của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22382%22%3E%3C/svg%3E
Sau khi KubeKey được tải xuống, tiếp theo bạn sẽ bắt đầu cấu hình triển khai Kubernetes và Kubesphere thông qua KubeKey.
Đối với triển khai Kubernetes và Kubesphre nhiều nút, bạn cần tạo một tập lệnh YAML sẽ xác định cấu hình của máy chủ.
Thực hiện lệnh 'kk' sau để tạo cấu hình YAML mới. Trong ví dụ này, bạn sẽ tạo một tập lệnh YAML mới 'deployment-kubesphre.yml' và chỉ định phiên bản Kubernetes là v1.24.2 và Kubesphere là v3.3.1.
Bạn sẽ thấy đầu ra như sau 'Tạo tệp cấu hình KubeKey thành công'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22121%22%3E%3C/svg%3E
Bây giờ hãy mở tệp YAML 'deployment-kubesphre.yml' bằng lệnh trình chỉnh sửa nano sau.
Thay đổi tên cụm trong tham số 'metadata: testdeployment' và thay đổi chi tiết địa chỉ IP của máy chủ, người dùng và khóa riêng để đăng nhập vào máy chủ mục tiêu. Cuối cùng, trên 'roleGroup', hãy chỉ định máy chủ nào sẽ được sử dụng làm mặt phẳng điều khiển và các nút công nhân.
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E
Đối với ví dụ này, bạn sẽ tạo một Cụm Kubernetes có tên là 'testdeployment' với ba máy chủ Ubuntu khác nhau.
Sau khi tạo và cấu hình tệp YAML và xây dựng triển khai Kubernetes và Kubesphre, hãy chuyển sang các bước sau để bắt đầu triển khai.
Thực thi tệp nhị phân Kubekey 'kk' bên dưới để bắt đầu triển khai Kubernetes và Kubesphere với tệp YAML 'deployment-kubesphre.yml'.
Đầu tiên, KubeKey sẽ kiểm tra các yêu cầu chi tiết cho quá trình cài đặt Kubernetes. Khi thành công, bạn sẽ được nhắc xác nhận quá trình cài đặt. Nhập yes và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22377%22%3E%3C/svg%3E
Việc này sẽ mất khoảng 5-10 phút để hoàn tất triển khai. Khi hoàn tất, bạn sẽ thấy một đầu ra tương tự như thế này được in ra trên thiết bị đầu cuối của mình. Ngoài ra, bạn sẽ nhận được tên người dùng và mật khẩu quản trị mặc định có thể được sử dụng để đăng nhập vào Kubesphere.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Bây giờ hãy mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ 'chính' theo sau là cổng '30880' (tức là: http://192.168.5.35:30880/). Bạn sẽ thấy trang đăng nhập Kubepshre.
Nhập tên người dùng là 'admin' và mật khẩu mặc định là 'P@88w0rd', sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22745%22%20height=%22527%22%3E%3C/svg%3E
Sau khi đăng nhập, bạn sẽ được yêu cầu thay đổi mật khẩu mặc định cho người dùng Kubepshre là 'admin'. Nhập mật khẩu mới của bạn và nhấp vào Gửi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22523%22%20height=%22670%22%3E%3C/svg%3E
Khi hoàn tất, bạn sẽ thấy bảng điều khiển quản trị Kubesphere. Trên trang bảng điều khiển, bạn sẽ nhận được phiên bản hiện tại của Kubesphere v3.3.1 và cụm Kubernetes khả dụng là 1.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22442%22%3E%3C/svg%3E
Tiếp theo, nhấp vào menu Nền tảng ở trên cùng bên trái, sau đó chọn Quản lý cụm.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22307%22%3E%3C/svg%3E
Dưới đây là thông tin chi tiết về cụm Kubernetes mà bạn đã cài đặt với nhiều máy chủ Ubuntu, máy chủ 'master', node1 và node2.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22440%22%3E%3C/svg%3E
Bây giờ hãy nhấp vào menu Nodes để biết thông tin chi tiết về các node khả dụng trên cụm Kubernetes. Bên dưới, bạn có thể thấy có ba node khác nhau trên cụm Kubernetes. Máy chủ 'chủ' được sử dụng làm cả mặt phẳng điều khiển và nút công nhân.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22335%22%3E%3C/svg%3E
Bây giờ hãy nhấp vào Thành phần hệ thống để biết thông tin chi tiết về các thành phần đã cài đặt trên triển khai Kubernetes và Kubesphere của bạn. Bạn có thể thấy các danh mục thành phần khác nhau, Kubesphere, Kubernetes và Monitoring.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22329%22%3E%3C/svg%3E
Tiếp theo, quay lại phiên đầu cuối của máy chủ 'master' và chạy lệnh 'kubectl' sau đây để lấy danh sách các nút khả dụng trên Kubernetes của bạn cụm.
Bạn sẽ nhận được đầu ra tương tự như sau - Có ba nút khả dụng trên cụm Kubernetes, nút chính được sử dụng làm mặt phẳng điều khiển và nút 1 và nút 2 được sử dụng làm nút công nhân.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22506%22%20height=%22173%22%3E%3C/svg%3E
Nhập lệnh sau để lấy thông tin chi tiết về từng nút trên cụm Kubernetes.
Dưới đây, bạn có thể thấy chi tiết về mặt phẳng điều khiển Kubernetes trên máy chủ 'chủ'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22261%22%3E%3C/svg%3E
Dưới đây là chi tiết về nút công nhân trên Máy chủ node1.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22223%22%3E%3C/svg%3E
Dưới đây là thông tin chi tiết về nút công nhân trên máy chủ node2.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22218%22%3E%3C/svg%3E
Cuối cùng, nhập lệnh sau để lấy danh sách các pod đang chạy trên cụm Kubernetes của bạn.
Trong đầu ra sau, bạn có thể thấy nhiều không gian tên 'kube-system', 'kubesphere-system', 'kubesphere-control-system' và 'kubesphere-monitoring-system' có sẵn trên cụm Kubernetes của bạn với tất cả các pod đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22566%22%3E%3C/svg%3E
Lúc này, bạn đã triển khai cụm Kubernetes và Kubesphere với nhiều nút máy chủ Ubuntu. Bạn cũng đã truy cập bảng điều khiển quản trị Kubesphere và thay đổi mật khẩu quản trị viên mặc định.
Với những điều này, giờ đây bạn có thể triển khai ứng dụng của mình lên Kubernetes và Kubesphere. Ở bước tiếp theo, bạn sẽ triển khai máy chủ web Nginx đơn giản lên Kubernetes để đảm bảo cài đặt Kubernetes và Kubesphere của bạn thành công.
Chạy lệnh sau để tạo một triển khai mới cho máy chủ web Nginx. Trong ví dụ này, chúng ta sẽ tạo Nginx Pod mới dựa trên hình ảnh "nginx:alpine" với hai bản sao.
Bây giờ, hãy tạo một loại dịch vụ mới "NodePort" để triển khai Nginx bằng lệnh kubectl sau. Lệnh này sẽ tạo một dịch vụ Kubernetes mới có tên "nginx" với loại "NodePort" và hiển thị cổng "80" cho Pod.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22158%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh kubectl sau để kiểm tra danh sách các pod đang chạy trên cụm Kubernetes của bạn. Và bạn sẽ thấy hai pod Nginx đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22564%22%20height=%22148%22%3E%3C/svg%3E
Bây giờ hãy kiểm tra danh sách các dịch vụ khả dụng trên Kubernetes bằng lệnh sau. Bạn sẽ thấy loại dịch vụ "nginx" NodePort đã hiển thị cổng "80" và cổng "32241" trên máy chủ Kubernetes. Dịch vụ NodePort sẽ luôn hiển thị cổng nằm trong phạm vi xxx-xxxx trên các máy chủ Kubernetes (các nút làm việc).
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22700%22%20height=%22151%22%3E%3C/svg%3E
Chạy lệnh curl bên dưới để truy cập Nginx của bạn triển khai.
Dưới đây là đầu ra của trang index.html pod Nginx được hiển thị trên máy chủ 'master'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22734%22%20height=%22538%22%3E%3C/svg%3E
Dưới đây là đầu ra của mã nguồn index.html từ "node1".
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22711%22%20height=%22533%22%3E%3C/svg%3E
Và bên dưới là mã index.html từ "node2".
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22716%22%20height=%22542%22%3E%3C/svg%3E
Bây giờ quay lại bảng điều khiển quản trị Kubesphere. Nhấp vào Application Workloads, sau đó nhấp vào Workloads. Và bạn sẽ thấy triển khai có tên là 'nginx' có sẵn với hai pod đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22347%22%3E%3C/svg%3E
Nhấp vào triển khai 'nginx' để biết thông tin chi tiết về triển khai của bạn. Bạn sẽ thấy triển khai 'nginx' đi kèm với hai bản sao và bản sao của hai pod đó đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Tiếp theo, nhấp vào menu Dịch vụ để có danh sách các dịch vụ có sẵn trên cụm Kubernetes của bạn. Bạn sẽ thấy dịch vụ có tên là 'nginx' và 'Kubernetes' có sẵn trên cụm của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22309%22%3E%3C/svg%3E
Nhấp vào dịch vụ 'nginx' để biết thông tin chi tiết về dịch vụ. Dưới đây là một trang tương tự sẽ được hiển thị trên bảng điều khiển Kubesphere của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22444%22%3E%3C/svg%3E
Với điều này, bạn đã hoàn tất việc triển khai các pod Nginx vào cụm Kubernetes và xác minh các chi tiết triển khai từ bảng điều khiển quản trị kubesphere.
Ngoài ra, bạn đã cài đặt và cấu hình thành công Kubesphere làm bảng điều khiển quản trị web Kubernets. Bạn đã học được cách sử dụng cơ bản của Kubesphere để xem cụm Kubernetes và triển khai, pod và dịch vụ.
Để tìm hiểu thêm về Kubesphere, hãy truy cập tài liệu chính thức của Kubesphere. Đối với Kubernetes, hãy truy cập tài liệu chính thức của Kubernets.
Kubesphere cung cấp giao diện người dùng web đồ họa trực quan để quản lý cụm Kubernetes. Nó cũng đi kèm với các công cụ CI/CD có thể cắm được như jenkins cho phép bạn thiết lập đường ống CI/CD tự động. Nó cũng cung cấp Source-to-Image (S2I) để tự động xây dựng các hình ảnh container có thể tái tạo từ mã nguồn và Binary-to-Image (B2I) để xây dựng các hình ảnh container có thể tái tạo từ tệp nhị phân (Jar, War, tệp nhị phân).
Bài viết này sẽ hướng dẫn triển khai Kubernetes và Kubesphere trên máy chủ Ubuntu 22.04. Bạn sẽ sử dụng nhiều máy chủ Ubuntu cho lần triển khai này và bạn sẽ sử dụng ứng dụng KubeKey do Kubesphere cung cấp để triển khai tự động cụm Kubernetes và Kubesphere.
Điều kiện tiên quyết
Để chạy và hoàn thành hướng dẫn này, bạn sẽ cần các yêu cầu sau:- Ba máy chủ Linux chạy Ubuntu 22.04 - Bạn sẽ sử dụng một máy chủ làm mặt phẳng điều khiển Kubernetes và hai máy chủ làm nút công nhân.
- Một người dùng không phải root có quyền quản trị viên sudo/root.
Thiết lập máy chủ và người dùng
Trước khi cài đặt Kubernetes và Kubesphere, bạn phải thiết lập tệp '/etc/hosts' và tạo một người dùng mới không cần mật khẩu sudo trên tất cả các máy chủ của mình. Vì vậy, hãy đảm bảo chạy các lệnh sau trên tất cả các máy chủ Ubuntu của bạn.Bây giờ hãy mở tệp '/etc/hosts' bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/hosts
Mã:
192.168.5.35 master master
192.168.5.121 node1 node1
192.168.5.122 node2 node2
Tiếp theo, nhập lệnh sau để tạo người dùng mới có tên là 'ubuntu' và thiết lập mật khẩu cho người dùng mới 'ubuntu'. Khi được nhắc, hãy nhập mật khẩu của bạn và lặp lại.
Mã:
sudo useradd -m -s /bin/bash ubuntu
sudo passwd ubuntu
Mã:
cat ~/.ssh/known_hosts
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22713%22%20height=%22315%22%3E%3C/svg%3E
Tiếp theo, kết nối với máy chủ 'node1' thông qua lệnh 'ssh' bên dưới. Sau khi lệnh được thực thi, bạn sẽ được đăng nhập vào 'node1' mà không cần xác thực mật khẩu.
Mã:
ssh ubuntu@node1
Mã:
sudo apt update
sudo apt install curl socat conntrack ebtables ipset
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22583%22%3E%3C/svg%3E
Cuối cùng, kết nối với máy chủ 'node2' thông qua lệnh 'ssh' bên dưới.
Mã:
ssh ubuntu@node2
Mã:
sudo apt update
sudo apt install curl socat conntrack ebtables ipset
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22572%22%3E%3C/svg%3E
Tại thời điểm này, bạn đã định cấu hình máy chủ của mình để cài đặt Kubernetes và Kubesphre. Trong phần tiếp theo, bạn sẽ tải xuống tệp nhị phân của KubeKey sẽ được sử dụng để khởi tạo cụm Kubernetes và cài đặt Kubesphere.
Tải xuống KubeKey trên Master Node
Trong phần này, bạn sẽ tải xuống tệp nhị phân KubeKey vào máy chủ 'master'. KubeKey là một tệp nhị phân duy nhất cho phép bạn triển khai cụm Kubernetes và/hoặc với bảng điều khiển quản trị KubeSphere. Nó cũng hỗ trợ các tiện ích bổ sung gốc trên đám mây, nhiều nút và HA (Tính khả dụng cao).Nhập lệnh sau để tải xuống tệp nhị phân của KubeKey vào thư mục làm việc hiện tại của bạn. Khi quá trình hoàn tất, bạn sẽ thấy tệp 'kk' trong thư mục của mình.
Mã:
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.2 sh -
Mã:
chmod +x kk
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22164%22%3E%3C/svg%3E
Sau đó, chạy tệp nhị phân 'kk' để xác minh phiên bản hiện tại và danh sách các tham số khả dụng trên KubeKey.
Mã:
./kk version
./kk help
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22382%22%3E%3C/svg%3E
Sau khi KubeKey được tải xuống, tiếp theo bạn sẽ bắt đầu cấu hình triển khai Kubernetes và Kubesphere thông qua KubeKey.
Tạo cấu hình triển khai Kubernetes và Kubesphere
KubeKey có thể được sử dụng để triển khai triển khai chỉ Kubernetes hoặc với KubeSphere. Nó cũng hỗ trợ cả triển khai Kubernetes đơn lẻ và triển khai nhiều nút.Đối với triển khai Kubernetes và Kubesphre nhiều nút, bạn cần tạo một tập lệnh YAML sẽ xác định cấu hình của máy chủ.
Thực hiện lệnh 'kk' sau để tạo cấu hình YAML mới. Trong ví dụ này, bạn sẽ tạo một tập lệnh YAML mới 'deployment-kubesphre.yml' và chỉ định phiên bản Kubernetes là v1.24.2 và Kubesphere là v3.3.1.
Mã:
./kk create config -f deployment-kubesphre.yml --with-kubernetes v1.24.2 --with-kubesphere v3.3.1
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22121%22%3E%3C/svg%3E
Bây giờ hãy mở tệp YAML 'deployment-kubesphre.yml' bằng lệnh trình chỉnh sửa nano sau.
Mã:
nano deployment-kubesphre.yml
Mã:
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
name: testdeployment
spec:
hosts:
- {name: master, address: 192.168.5.35, internalAddress: 192.168.5.35, user: ubuntu, privateKeyPath: "~/.ssh/id_ed25519"}
- {name: node1, address: 192.168.5.121, internalAddress: 192.168.5.121, user: ubuntu, privateKeyPath: "~/.ssh/id_ed25519"}
- {name: node2, address: 192.168.5.122, internalAddress: 192.168.5.122, user: ubuntu, privateKeyPath: "~/.ssh/id_ed25519"}
roleGroups:
etcd:
- master
control-plane:
- master
worker:
- node1
- node2
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E
Đối với ví dụ này, bạn sẽ tạo một Cụm Kubernetes có tên là 'testdeployment' với ba máy chủ Ubuntu khác nhau.
- master làm etcd và mặt phẳng điều khiển.
- node1 và node2 sẽ được sử dụng làm các nút công nhân.
Sau khi tạo và cấu hình tệp YAML và xây dựng triển khai Kubernetes và Kubesphre, hãy chuyển sang các bước sau để bắt đầu triển khai.
Triển khai Kubernetes và Kubesphere
Trong phần này, bạn sẽ triển khai cả Kubernetes và Kubesphre với kiến trúc đa nút thông qua KubeKey và tập lệnh YAML 'deployment-kubesphre.yml'.Thực thi tệp nhị phân Kubekey 'kk' bên dưới để bắt đầu triển khai Kubernetes và Kubesphere với tệp YAML 'deployment-kubesphre.yml'.
Mã:
./kk create cluster -f deployment-kubesphre.yml
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22377%22%3E%3C/svg%3E
Việc này sẽ mất khoảng 5-10 phút để hoàn tất triển khai. Khi hoàn tất, bạn sẽ thấy một đầu ra tương tự như thế này được in ra trên thiết bị đầu cuối của mình. Ngoài ra, bạn sẽ nhận được tên người dùng và mật khẩu quản trị mặc định có thể được sử dụng để đăng nhập vào Kubesphere.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Bây giờ hãy mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ 'chính' theo sau là cổng '30880' (tức là: http://192.168.5.35:30880/). Bạn sẽ thấy trang đăng nhập Kubepshre.
Nhập tên người dùng là 'admin' và mật khẩu mặc định là 'P@88w0rd', sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22745%22%20height=%22527%22%3E%3C/svg%3E
Sau khi đăng nhập, bạn sẽ được yêu cầu thay đổi mật khẩu mặc định cho người dùng Kubepshre là 'admin'. Nhập mật khẩu mới của bạn và nhấp vào Gửi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22523%22%20height=%22670%22%3E%3C/svg%3E
Khi hoàn tất, bạn sẽ thấy bảng điều khiển quản trị Kubesphere. Trên trang bảng điều khiển, bạn sẽ nhận được phiên bản hiện tại của Kubesphere v3.3.1 và cụm Kubernetes khả dụng là 1.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22442%22%3E%3C/svg%3E
Tiếp theo, nhấp vào menu Nền tảng ở trên cùng bên trái, sau đó chọn Quản lý cụm.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22307%22%3E%3C/svg%3E
Dưới đây là thông tin chi tiết về cụm Kubernetes mà bạn đã cài đặt với nhiều máy chủ Ubuntu, máy chủ 'master', node1 và node2.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22440%22%3E%3C/svg%3E
Bây giờ hãy nhấp vào menu Nodes để biết thông tin chi tiết về các node khả dụng trên cụm Kubernetes. Bên dưới, bạn có thể thấy có ba node khác nhau trên cụm Kubernetes. Máy chủ 'chủ' được sử dụng làm cả mặt phẳng điều khiển và nút công nhân.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22335%22%3E%3C/svg%3E
Bây giờ hãy nhấp vào Thành phần hệ thống để biết thông tin chi tiết về các thành phần đã cài đặt trên triển khai Kubernetes và Kubesphere của bạn. Bạn có thể thấy các danh mục thành phần khác nhau, Kubesphere, Kubernetes và Monitoring.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22329%22%3E%3C/svg%3E
Tiếp theo, quay lại phiên đầu cuối của máy chủ 'master' và chạy lệnh 'kubectl' sau đây để lấy danh sách các nút khả dụng trên Kubernetes của bạn cụm.
Mã:
kubectl get nodes
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22506%22%20height=%22173%22%3E%3C/svg%3E
Nhập lệnh sau để lấy thông tin chi tiết về từng nút trên cụm Kubernetes.
Mã:
kubectl describe node
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22261%22%3E%3C/svg%3E
Dưới đây là chi tiết về nút công nhân trên Máy chủ node1.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22223%22%3E%3C/svg%3E
Dưới đây là thông tin chi tiết về nút công nhân trên máy chủ node2.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22218%22%3E%3C/svg%3E
Cuối cùng, nhập lệnh sau để lấy danh sách các pod đang chạy trên cụm Kubernetes của bạn.
Mã:
kubectl get pods --all-namespaces
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22566%22%3E%3C/svg%3E
Lúc này, bạn đã triển khai cụm Kubernetes và Kubesphere với nhiều nút máy chủ Ubuntu. Bạn cũng đã truy cập bảng điều khiển quản trị Kubesphere và thay đổi mật khẩu quản trị viên mặc định.
Với những điều này, giờ đây bạn có thể triển khai ứng dụng của mình lên Kubernetes và Kubesphere. Ở bước tiếp theo, bạn sẽ triển khai máy chủ web Nginx đơn giản lên Kubernetes để đảm bảo cài đặt Kubernetes và Kubesphere của bạn thành công.
Triển khai Pod lên Kubernetes và Kubesphere
Trong ví dụ này, bạn sẽ triển khai pod Nginx lên cụm Kubernetes và Kubesphere.Chạy lệnh sau để tạo một triển khai mới cho máy chủ web Nginx. Trong ví dụ này, chúng ta sẽ tạo Nginx Pod mới dựa trên hình ảnh "nginx:alpine" với hai bản sao.
Mã:
kubectl create deployment nginx --image=nginx:alpine --replicas=2
Mã:
kubectl create service nodeport nginx --tcp=80:80
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22158%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh kubectl sau để kiểm tra danh sách các pod đang chạy trên cụm Kubernetes của bạn. Và bạn sẽ thấy hai pod Nginx đang chạy.
Mã:
kubectl get pods
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22564%22%20height=%22148%22%3E%3C/svg%3E
Bây giờ hãy kiểm tra danh sách các dịch vụ khả dụng trên Kubernetes bằng lệnh sau. Bạn sẽ thấy loại dịch vụ "nginx" NodePort đã hiển thị cổng "80" và cổng "32241" trên máy chủ Kubernetes. Dịch vụ NodePort sẽ luôn hiển thị cổng nằm trong phạm vi xxx-xxxx trên các máy chủ Kubernetes (các nút làm việc).
Mã:
kubectl get svc
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22700%22%20height=%22151%22%3E%3C/svg%3E
Chạy lệnh curl bên dưới để truy cập Nginx của bạn triển khai.
Mã:
curl 10.233.14.102
curl node1:32241
curl node2:32241
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22734%22%20height=%22538%22%3E%3C/svg%3E
Dưới đây là đầu ra của mã nguồn index.html từ "node1".
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22711%22%20height=%22533%22%3E%3C/svg%3E
Và bên dưới là mã index.html từ "node2".
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22716%22%20height=%22542%22%3E%3C/svg%3E
Bây giờ quay lại bảng điều khiển quản trị Kubesphere. Nhấp vào Application Workloads, sau đó nhấp vào Workloads. Và bạn sẽ thấy triển khai có tên là 'nginx' có sẵn với hai pod đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22347%22%3E%3C/svg%3E
Nhấp vào triển khai 'nginx' để biết thông tin chi tiết về triển khai của bạn. Bạn sẽ thấy triển khai 'nginx' đi kèm với hai bản sao và bản sao của hai pod đó đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Tiếp theo, nhấp vào menu Dịch vụ để có danh sách các dịch vụ có sẵn trên cụm Kubernetes của bạn. Bạn sẽ thấy dịch vụ có tên là 'nginx' và 'Kubernetes' có sẵn trên cụm của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22309%22%3E%3C/svg%3E
Nhấp vào dịch vụ 'nginx' để biết thông tin chi tiết về dịch vụ. Dưới đây là một trang tương tự sẽ được hiển thị trên bảng điều khiển Kubesphere của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22444%22%3E%3C/svg%3E
Với điều này, bạn đã hoàn tất việc triển khai các pod Nginx vào cụm Kubernetes và xác minh các chi tiết triển khai từ bảng điều khiển quản trị kubesphere.
Kết luận
Trong hướng dẫn này, bạn đã triển khai cụm Kubernetes và Kubesphre trên nhiều máy chủ Ubuntu 22.04. Bạn đã triển khai Kubernetes bằng một công cụ tự động hóa có tên là 'KubeKey' do Kubesphere phát triển. Bạn cũng đã học được cấu hình cơ bản của máy chủ Ubuntu để triển khai Kubernetes.Ngoài ra, bạn đã cài đặt và cấu hình thành công Kubesphere làm bảng điều khiển quản trị web Kubernets. Bạn đã học được cách sử dụng cơ bản của Kubesphere để xem cụm Kubernetes và triển khai, pod và dịch vụ.
Để tìm hiểu thêm về Kubesphere, hãy truy cập tài liệu chính thức của Kubesphere. Đối với Kubernetes, hãy truy cập tài liệu chính thức của Kubernets.