Cách đơn giản nhất để đưa 1 environment vào trong container trên k8s.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: gitpod/openvscode-server:1.101.1
env:
- name: DB_PASSWORD
value: password-ahihi
Giới thiệu về cách Kubernetes giúp quản lý cấu hình và bảo mật các thông tin quan trọng (secret) trong quá trình triển khai ứng dụng
1) ConfigMap trong Kubernetes
ConfigMap là một công cụ giúp bạn lưu trữ và sử dụng các cấu hình cho ứng dụng mà không cần phải thay đổi mã nguồn của ứng dụng. Cấu hình có thể là các thông số như cổng (port), đường dẫn đến file, hoặc bất kỳ giá trị nào mà ứng dụng của bạn cần.
- Tạo ConfigMap từ dòng lệnh:
-
kubectl create configmap db-config --from-literal=database-url=http://mydb.com kubectl get configmap kubectl describe configmap db-config -
apiVersion: v1 kind: ConfigMap metadata: name: db-config data: database-url: http://mydb.com
-
- Tạo ConfigMap từ File:
-
vi schedule.txt ##### Content #### schedules: - name: ping-google command: ping 8.8.8.8 #### Command #### kubectl create configmap app-config --from-file=schedule.txt kubectl get configmap kubectl describe configmap app-config
-
- Điều này giúp: “Nhờ vào ConfigMap, chúng ta có thể dễ dàng thay đổi cấu hình mà không cần phải rebuild lại container.
2) Quản lý Secret trong Kubernetes
Secret là công cụ giúp bảo vệ thông tin nhạy cảm như mật khẩu, token, hoặc khóa API. Thay vì lưu trữ các giá trị này trong mã nguồn hoặc ConfigMap (mà có thể dễ dàng bị lộ), Secret giúp mã hóa và bảo mật thông tin đó.
- Tạo Secret từ dòng lệnh
-
kubectl create secret generic db-password --from-literal=username=myUsername --from-literal=password=mySecretPassword kubectl get secret kubectl describe secret db-password -
apiVersion: v1 kind: Secret metadata: name: db-password type: Opaque data: username: bXlVc2VybmFtZQ== password: bXlTZWNyZXRQYXNzd29yZA==
-