bí mật kubernetes
Bí mật Kubernetes là một đối tượng lưu trữ thông tin xác thực nhạy cảm như mật khẩu, mã thông báo hoặc khóa. Một bí mật được tạo tự động bởi mặt phẳng điều khiển và được điền dưới dạng mã thông báo tài khoản dịch vụ hoặc được tạo thủ công bởi người dùng. cấp độ truy cập vào một cụm có quyền truy cập vào “bí mật” cho cụm đó. Cách tốt nhất là luân phiên các bí mật một cách thường xuyên hoặc khi cần thiết (tức là một nhân viên rời khỏi công ty hoặc vai trò, các biện pháp bảo mật chung, v.v.) Hướng dẫn này xem xét các bước cần thiết để xoay vòng bí mật mã thông báo tài khoản dịch vụ được tạo tự động trong hệ thống kube bằng kubectl, cũng như cách xoay vòng lke-admin-token của bạn thông qua Linode CLI.
Lưu ý rằng hướng dẫn trong hướng dẫn này chỉ áp dụng cho bí mật mã thông báo tài khoản dịch vụ trong hệ thống kube; tùy thuộc vào cấu hình ứng dụng của bạn, có thể có thêm bí mật do người dùng tạo trong các không gian tên khác mà bạn có thể muốn xóa hoặc xoay theo cách thủ công.
Trước khi bạn bắt đầu
Bạn sẽ cần cài đặt công cụ dòng lệnh kubectl và cấu hình hệ thống cục bộ để giao tiếp với cụm của mình. Để thực hiện việc này, bạn phải tải xuống tệp kubeconfig của cụm và lưu đường dẫn tệp của nó vào biến môi trường $KUBECONFIG. : Truy cập và tải xuống kubeconfig của bạn
Xoay bí mật của cụm của bạn
Xoay vòng bí mật mã thông báo tài khoản dịch vụ trong không gian tên kube-system
Sau khi biến môi trường $KUBECONFIG cục bộ của bạn được định cấu hình bằng tệp kubeconfig của cụm, hãy làm theo các bước sau để luân chuyển các bí mật mã thông báo tài khoản dịch vụ được tạo tự động trong cụm của bạn.
- Liệt kê các bí mật trong không gian tên hệ thống kube của cụm của bạn và lọc theo mã thông báo tài khoản dịch vụ để xem các bí mật được mặt phẳng điều khiển tự động tạo:
kubectl -n kube-system get secrets --field-selector="type=kubernetes.io/service-account-token"
Bạn sẽ thấy đầu ra tương tự như sau:

Lưu ý đối với Kubernetes phiên bản 1.26
Trong Kubernetes phiên bản 1.26, có thêm các bí mật về mã thông báo tài khoản dịch vụ được tạo tự động bổ sung ngoài những bí mật có trong kết quả đầu ra ở trên.
- Xóa những secrets.
kubectl -n kube-system delete secrets --field-selector="type=kubernetes.io/service-account-token"
Bạn sẽ nhận được xác nhận rằng các bí mật đã bị xóa:

- Khi secrets thông báo tài khoản dịch vụ của bạn đã bị xóa, bạn sẽ không còn quyền truy cập vào cụm của mình bằng kubeconfig hiện tại. Để lấy lại quyền truy cập, bạn cần phải tạo lại kubeconfig và xuất lại biến môi trường cục bộ của mình bằng cách sử dụng các bước bên dưới trong phần này. Tạo lại Kubeconfig của bạn.
Tạo lại kubeconfig của bạn
Để đẩy nhanh quá trình tái tạo bí mật sau khi xóa và lấy lại quyền truy cập vào cụm của mình, bạn có thể tạo lại kubeconfig. Quá trình này cũng sẽ tạo lại bí mật lke-admin-token trong kube-system. Lưu ý rằng các bước này sử dụng Linode CLI và tuân theo Kubernetes. Cụm Tạo lại hướng dẫn từ tài liệu API của chúng tôi. Xem tài liệu API của chúng tôi để biết các lệnh API tương ứng.
- Xem danh sách các cụm Kubernetes của bạn để lấy số ID của cụm bạn muốn nhắm mục tiêu:
linode-cli lke clusters-list
ID cụm có thể được tìm thấy trong cột id:

Tạo lại tệp kubeconfig của cụm bằng cách sử dụng ID cụm có được ở bước 1. Thay thế {{< placeholder “12345” >}} bằng số ID của cụm của bạn:
linode-cli lke regenerate {{< placeholder "12345" >}} --kubeconfig=true --servicetoken=true
Tải xuống tệp kubeconfig mới của bạn từ Trình quản lý đám mây bằng cách điều hướng đến phần Kubernetes, nhấp vào dấu chấm lửng tùy chọn khác của cụm và chọn Tải xuống Kubeconfig. Có thể mất vài phút để tệp kubeconfig mới có sẵn.
Ngoài ra, bạn có thể sử dụng Linode CLI để xem kubeconfig mới và ghi đè lên tệp kubeconfig.yaml hiện có, thay thế {{< placeholder “12345” >}} bằng ID cụm của bạn và {{< placeholder “~/Downloads/kubeconfig.yaml ” >}} bằng đường dẫn tệp tới kubeconfig hiện tại của bạn:
linode-cli –json lke kubeconfig-view 12345 | jq -r ‘.[].kubeconfig’ | base64 -d > ~/Downloads/kubeconfig.yaml
Nếu chọn tải xuống kubeconfig mới thông qua Trình quản lý đám mây, bạn sẽ cần phải định cấu hình lại kubeconfig bằng cách lưu đường dẫn tệp vào biến môi trường $KUBECONFIG. Thay thế {{< placeholder “~/Downloads/kubeconfig.yaml” >}} bằng. đường dẫn tệp cho tệp kubeconfig mới của bạn:
export KUBECONFIG={{< placeholder "~/Downloads/kubeconfig.yaml" >}}
X- ác minh rằng bạn có quyền truy cập vào cụm của mình bằng cách xem các nút của bạn:
kubectl get nodes
- Xóa tệp kubeconfig cũ sau khi bạn đã xác minh quyền truy cập vào cụm của mình.
- Bây giờ, kubeconfig mới đã được tạo và định cấu hình, bí mật mã thông báo tài khoản dịch vụ và bí mật mã thông báo lke-admin-token của bạn đã được luân chuyển.
Các phương pháp hay nhất bổ sung
Hướng dẫn này xem xét các bước để xoay vòng bí mật trong không gian tên hệ thống kube được sử dụng bởi mặt phẳng điều khiển do lke quản lý. Cách tốt nhất là bạn nên sử dụng các không gian tên riêng biệt cho mọi mã thông báo và bí mật tài khoản dịch vụ dành riêng cho ứng dụng.
Tùy thuộc vào cấu hình và trường hợp sử dụng cụ thể của bạn, có thể có các bước bảo mật bổ sung mà bạn muốn thực hiện đối với mã thông báo tài khoản dịch vụ dành riêng cho ứng dụng của mình sau khi bí mật của bạn đã được luân chuyển, bao gồm khởi động lại nhóm hoặc nút tái chế
Khởi động lại Pod
xem pod:
kubectl get pods
Khởi động lại pod
kubectl rollout restart
Tái chế các nút của bạn
Khi tái chế nút công nhân, Phiên bản điện toán tương ứng sẽ bị xóa và thay thế bằng một nút mới thông qua Trình quản lý đám mây bằng cách sử dụng hướng dẫn trong hướng dẫn Quản lý nút và nhóm nút của chúng tôi tại đây: Recycle Nodes
Nguồn: https://techdocs.akamai.com/cloud-computing/docs/rotate-kubernetes-secrets