Quản lý Cấu hình ứng dụng với ConfigMap trong Kubernetes
Tổng quan về ConfigMap
ConfigMap là một đối tượng API dùng để lưu trữ dữ liệu không bí mật dưới dạng cặp khóa-giá trị. Pod có thể sử dụng chúng như biến môi trường, tham số dòng lệnh hoặc tệp cấu hình trong storage.
Lưu ý: ConfigMap không cung cấp tính năng mã hóa. Để lưu trữ dữ liệu nhạy cảm, hãy sử dụng Secret hoặc công cụ bên thứ ba.
Con ...
Đăng vào ngày 24 tháng 8 lúc 16:50
Tìm hiểu sâu về Pod trong Kubernetes
Mỗi Pod có thể chứa một hoặc nhiều container. Các container này được chia thành hai loại:
Container chứa ứng dụng người dùng: Số lượng có thể thay đổi.
Container Pause: Đây là "container gốc" mà mọi Pod đều có. Nó có hai chức năng:
Đóng vai trò là cơ sở để đánh giá tình trạng sức khỏe tổng thể của Pod.
...
Đăng vào ngày 30 tháng 7 lúc 15:06
Sử dụng thẻ tùy chỉnh trong PyYAML để lấy giá trị biến môi trường
Giới thiệu
YAML thường được sử dụng cho các tệp cấu hình. Khi cần cấu hình tên người dùng và mật khẩu trong tệp YAML, việc ghi trực tiếp các thông tin này và tải lên kho lưu trữ mã nguồn có thể dễ dàng dẫn đến rò rỉ mật khẩu.
Để giải quyết vấn đề này, chúng ta có thể sử dụng thẻ tùy chỉnh (custom tag) trong PyYAML. Trong PyYAML, mỗi thẻ đại diệ ...
Đăng vào ngày 28 tháng 6 lúc 07:03
Bắt đầu với Spring Boot
Spring Boot là một framework giúp đơn giản hóa việc phát triển ứng dụng Java, đặc biệt trong môi trường web. Nó kế thừa triết lý "convention over configuration" từ Spring, cho phép khởi chạy ứng dụng chỉ với vài dòng code.
Cách Spring đơn giản hóa Java
Sử dụng POJO và dependency injection để giảm độ phức tạp.
Tích hợp sẵn các thư viện phổ ...
Đăng vào ngày 26 tháng 6 lúc 01:21
Cấu hình Docker Compose
Các mục cấu hình cấp cao
version: Chỉ định phiên bản của file cấu hình
services: Định nghĩa các dịch vụ cần chạy, bao gồm thông tin ảnh và cài đặt
networks: Cấu hình mạng dùng chung cho các dịch vụ
volumes: Định nghĩa các volume để lưu trữ dữ liệu
Ví dụ minh họa:
version: "3.8"
services:
redis:
image: redis:alpine
ports:
...
Đăng vào ngày 24 tháng 6 lúc 09:14
Các phương pháp phân tích dữ liệu XML, JSON và YAML trong Python
Trong phát triển phần mềm hiện đại, việc xử lý các định dạng dữ liệu là một yêu cầu phổ biến. Python cung cấp nhiều thư viện và công cụ để xử lý các định dạng khác nhau như XML, JSON và YAML. Mỗi định dạng đều có những ứng dụng cụ thể và ưu điểm, nhược điểm riêng. Bài viết này sẽ giới thiệu cách sử dụng Python để phân tích các loại dữ liệu này ...
Đăng vào ngày 24 tháng 6 lúc 04:11
Khởi tạo dự án Spring Boot 2.7.5 với cấu hình cơ bản
Cấu trúc dự án và phụ thuộc Maven
Một dự án Spring Boot tiêu chuẩn cần kế thừa spring-boot-starter-parent để quản lý phiên bản và cấu hình mặc định. Các starter như spring-boot-starter-web là bắt buộc nếu bạn xây dựng ứng dụng web, trong khi spring-boot-starter-test có thể thêm vào để hỗ trợ kiểm thử.
<?xml version="1.0" encoding="UTF-8"?&g ...
Đăng vào ngày 23 tháng 6 lúc 22:52
Ansible Ad-Hoc và Playbook: Hướng dẫn thực hành
Ad-Hoc: Thực thi lệnh tức thời với Ansible
Trong quản trị hệ thống, đôi khi cần thực hiện các tác vụ nhanh chóng trên nhiều máy chủ mà không cần xây dựng kịch bản phức tạp. Ansible cung cấp công cụ Ad-Hoc để giải quyết yêu cầu này — cho phép chạy một lệnh đơn lẻ hoặc sử dụng một module cụ thể lên tập hợp máy chủ được chỉ định.
Sử dụng Ad-Hoc t ...
Đăng vào ngày 22 tháng 6 lúc 20:31
Sử dụng kubectl patch để cập nhật không tương tác các tệp YAML trong Kubernetes
Mục lục- 1. Tạo và triển khai nginx-daemonset.yaml
Chỉnh sửa nginx-daemonset bằng lệnh edit để điều phối pod
Sử dụng patch để cập nhật động tệp YAML của pod mà không cần tương tác
3.1 Chuyển đổi trường YAML cần thêm thành JSON
3.2 Sử dụng patch để cập nhật pod
Các lệnh phổ biến của kubectl patch
Sử dụng kubectl patch để cập nhật đ ...
Đăng vào ngày 13 tháng 6 lúc 19:49
Triển khai thành phần mạng Calico trong cụm Kubernetes
Bối cảnh vấn đề
Quét cổng mạng bằng đoạn mã sau:
import socket
def check_port_availability(target, port):
connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
connection.connect((target, port))
print(f'Cổng {port} trên {target} đang mở')
except Exception as error:
pass
finally:
c ...
Đăng vào ngày 4 tháng 6 lúc 05:37