Ingress được sử dụng để quản lý lưu lượng truy cập đến ứng dụng và cũng để chấm dứt SSL. Ngược lại, bí mật được sử dụng để lưu trữ thông tin bí mật và chứng chỉ TLS cho ứng dụng.
Bài đăng này sẽ minh họa:
- Bí mật Kubernetes là gì?
- Điều kiện tiên quyết: Tạo khóa riêng và chứng chỉ
- Làm cách nào để tạo TLS bí mật trong Kubernetes?
- Làm cách nào để tạo bí mật thông qua tệp Yaml?
- Làm cách nào để nhúng bí mật với Kubernetes Pod?
- Phần kết luận
Bí mật Kubernetes là gì?
Bí mật là một trong những tài nguyên Kubernetes, được sử dụng để lưu trữ thông tin bí mật như thông tin đăng nhập của người dùng, khóa, chứng chỉ hoặc mã thông báo. Các bí mật có thể được tạo riêng lẻ và kết nối với các nhóm. Nó ngăn nhà phát triển cung cấp dữ liệu bí mật trong mã và cũng cung cấp thêm một lớp bảo mật. Các loại bí mật khác nhau có thể được tạo ra và sử dụng. Các bí mật được sử dụng phổ biến nhất là:
Bí mật chung: Các bí mật chung được sử dụng để lưu trữ thông tin cơ bản như mật khẩu, mã thông báo, khóa API, khóa OAuth, v.v.
Bí mật TLS: Bí mật TLS được sử dụng để lưu trữ khóa riêng và chứng chỉ được CA ký. Để đảm bảo tính bảo mật của các ứng dụng chạy bên trong Kubernetes và đảm bảo liên lạc trong cụm, người dùng thường cần tạo và nhúng các bí mật TLS vào nhóm.
Đăng ký Docker: Nó được sử dụng để lưu trữ thông tin xác thực đăng ký docker để dễ dàng lấy hình ảnh từ sổ đăng ký.
Điều kiện tiên quyết: Tạo khóa riêng và chứng chỉ
Để tạo chứng chỉ và khóa riêng nhằm cải thiện bảo mật, hãy sử dụng OpenSSL để tạo CSR (yêu cầu ký chứng chỉ) và khóa riêng. Sau đó, sử dụng CSR để tạo chứng chỉ tự ký hoặc CA.
Để sử dụng các lệnh OpenSSL trên Windows, người dùng phải cài đặt Git. Vì mục đích này, hãy theo dõi liên kết của chúng tôi “ Cài đặt git trên Windows ' bài báo.
Sau khi cài đặt git, hãy làm theo hướng dẫn bên dưới để tạo khóa riêng và chứng chỉ đã ký.
Bước 1: Khởi chạy Git Bash Terminal
Thực hiện tìm kiếm “ Git Bash ” trong menu Bắt đầu và khởi chạy thiết bị đầu cuối:
Để kiểm tra thư mục hiện tại, hãy sử dụng “ pwd ' yêu cầu:
pwdHiện tại, chúng tôi đang làm việc trong thư mục %USERPROFILE%:
Bước 2: Tạo thư mục mới
Tạo một thư mục mới để lưu chứng chỉ và khóa riêng:
mkdir chứng chỉĐiều hướng đến thư mục mới được tạo bằng cách sử dụng “ đĩa CD ' yêu cầu:
đĩa CD chứng chỉ
Bước 3: Tạo khóa riêng
Bây giờ, tạo khóa riêng thông qua lệnh đã cho. Tại đây, khóa riêng được tạo sẽ được lưu trong “ mycert.key ”:
mã khóa openssl -thuật toán RSA -ngoài mycert.key
Bước 4: Tạo CSR
Để tạo CSR (yêu cầu dịch vụ chứng chỉ) để nhận chứng chỉ đã ký, hãy sử dụng lệnh đã cho:
yêu cầu openssl -mới -chìa khóa mycert.key -ngoài mycert.csr
Bước 5: Tạo chứng chỉ
Cuối cùng, sử dụng khóa riêng và CSR đã tạo, tạo chứng chỉ và lưu nó vào “ mycert.crt ' tài liệu. Với mục đích này, hãy thực hiện lệnh dưới đây:
openssl x509 -req -TRONG mycert.csr -ký hiệu mycert.key -ngoài mycert.crt -ngày 365
Sau khi tạo chứng chỉ TLS, người dùng có thể tạo TLS bí mật bằng cách làm theo phần bên dưới.
Làm cách nào để tạo TLS bí mật trong Kubernetes?
Để đảm bảo bảo mật ứng dụng và liên lạc an toàn trong và ngoài cụm Kubernetes, chứng chỉ TLS (Transport Layer Security) rất cần thiết được sử dụng trong mã hóa dữ liệu. Bí mật Kubernetes cho phép chúng tôi nhúng chứng chỉ TLS với các nhóm đang chạy thông qua TLS bí mật. Để tạo TLS bí mật trong Kubernetes, hãy làm theo hướng dẫn sau.
Bước 1: Khởi động cụm Minikube
Để khởi động cụm minikube, trước tiên, hãy khởi chạy Windows PowerShell với tư cách quản trị viên. Sau đó, tạo và chạy cụm bằng cách sử dụng lệnh “ bắt đầu minikube ' yêu cầu:
bắt đầu minikube
Bước 2: Nhận nút
Truy cập nút Kubernetes để kiểm tra xem cụm đã được khởi động hay chưa:
minikube nhận các nút
Bước 3: Tạo TLS bí mật
Tạo bí mật TLS trong Kubernetes bằng cách sử dụng “ kubectl create secret
Bước 4: Nhận bí mật
Để xác nhận, hãy liệt kê bí mật Kubernetes bằng lệnh đã cho:
kubectl có được bí mậtỞ đây, bạn có thể thấy chúng tôi đã tạo một cách hiệu quả một “ bản demo bí mật ' nó bao gồm ' 2 ” giá trị dữ liệu:
Bước 5: Mô tả bí mật
Để xem cách dữ liệu được xem hoặc lưu trữ bí mật, hãy mô tả bí mật bằng cách sử dụng “ kubectl mô tả bí mật
Bạn có thể thấy các giá trị được lưu trữ theo byte và không thể xem trực tiếp không giống như Kubernetes ConfigMaps:
Làm cách nào để tạo TLS bí mật thông qua tệp Yaml?
Để tạo TLS bí mật thông qua tệp yaml, trước tiên, hãy tạo “ bí mật.yml ” tập tin, thêm chứng chỉ được mã hóa tls base64 bên trong ' tls.crt ” và thêm phím khóa mã hóa base64 bên trong ' tls.key ”.
Để trình diễn, hãy làm theo các bước được liệt kê.
Bước 1: Tạo tệp Yaml
Tạo một tập tin có tên “ bí mật.yml ” và dán mã đã cho:
apiPhiên bản : v1dữ liệu :
tls.crt : 'chứng chỉ được mã hóa base64'
tls.key : 'khóa mã hóa base64'
loại : Bí mật
metadata :
tên : mytls-bí mật
không gian tên : mặc định
kiểu : kubernetes.io/tls
Trong đoạn mã trên, hãy thay thế các giá trị khóa “tls.crt” và “tls.key” bằng chứng chỉ gốc và các giá trị khóa của bạn:
Bước 2: Tạo bí mật
Bây giờ, hãy áp dụng tệp yaml bí mật thông qua “ kubectl áp dụng -f
Kết quả đầu ra cho thấy chúng ta đã tạo thành công “ mytls-bí mật ” sử dụng tệp yaml:
Lưu ý: Xem Chứng chỉ TLS và Khóa riêng
Để xem chứng chỉ được mã hóa base64 và sử dụng nó trong tệp yaml, hãy chạy lệnh “ cat <đường dẫn đến tệp chứng chỉ> | cơ sở64 ” lệnh trong thiết bị đầu cuối git bash:
con mèo mycert.crt | cơ sở64 Để xem khóa được mã hóa base64, hãy sử dụng “ cat
Làm cách nào để nhúng TLS bí mật với Kubernetes Pod?
Sau khi tạo TSL bí mật, người dùng có thể nhúng nó vào nhóm Kubernetes. Để làm như vậy, hãy sử dụng các hướng dẫn sau.
Bước 1: Tạo tệp Yaml
Tạo một tập tin có tên “ pod.yml ” và dán đoạn mã bên dưới vào tệp:
apiPhiên bản: v1loại: Pod
metadata:
Tên: demo-pod
thông số kỹ thuật:
hộp đựng:
- tên: html-cont
hình ảnh: rafia098 / html-img: 1.0
envTừ:
- bí mậtRef:
Tên: demo-bí mật
Trong đoạn trích trên:
- “ loại ” key chỉ định tài nguyên Kubernetes mà người dùng đang tạo.
- “ tên Phím ” sẽ đặt tên nhóm.
- “ hộp đựng ” key sẽ lưu trữ thông tin vùng chứa.
- “ tên Phím ” bên dưới phím “container” sẽ đặt tên vùng chứa.
- “ hình ảnh Phím ” sẽ cung cấp ứng dụng hoặc hình ảnh vùng chứa để tạo và khởi động ứng dụng bên trong vùng chứa.
- “ envTừ ” sẽ đặt biến môi trường từ các tài nguyên Kubernetes khác. Ở đây, để nhúng TLS bí mật vào một nhóm, “ bí mậtRef ” được sử dụng để cung cấp một tài liệu tham khảo bí mật. Để nhúng TLS bí mật ở trên, hãy chỉ định tên của bí mật trong khóa “tên”.
Bước 2: Tạo hoặc nâng cấp Pod
Tiếp theo, mở thư mục chứa “ pod.yml ” tập tin được tạo:
đĩa CD C:\Users\Dell\Documents\Kubernetes\Secret
Áp dụng tệp yaml để tạo hoặc cấu hình lại nhóm bằng cách sử dụng nút “ kubectl áp dụng ' yêu cầu:
kubectl áp dụng -f pod.yml
Bước 3: Truy cập Kubernetes Pods
Để xác minh, hãy liệt kê các nhóm Kubernetes:
kubectl lấy podỞ đây, bạn có thể thấy chúng tôi đã tạo ra “ nhóm demo ” thành công:
Bước 4: Mô tả Pod
Để kiểm tra xem nhóm có nhúng TLS bí mật hay không, hãy mô tả nhóm bằng lệnh bên dưới:
kubectl mô tả pod demo-podĐầu ra bên dưới cho thấy chúng tôi đã nhúng thành công bí mật TLS với pod:
Chúng tôi đã đề cập đến cách tạo TLS bí mật và nhúng nó vào ứng dụng Kubernetes đang chạy trong nhóm.
Phần kết luận
Để tạo TLS bí mật trong Kubernetes, trước tiên, hãy tạo chứng chỉ có chữ ký TLS và khóa riêng. Sau đó, khởi động cụm Kubernetes và chạy “ kubectl create secret