Kiểm soát truy cập dựa trên vai trò (RBAC) được sử dụng để chỉ định quyền truy cập vào máy tính hoặc tài nguyên mạng trong Kubernetes Cluster.
Trong bài viết này, chúng ta sẽ hiểu những điều cơ bản về RBAC và tạo các Đối tượng Role, ClusterRole, RoleBinding và ClusterRoleBinding.
Sau đó, chúng ta sẽ tạo tệp kubeconfig để cấp quyền truy cập hạn chế cho một người dùng cụ thể trên không gian tên đã chọn.
Nhưng trước khi tiến hành, chúng ta hãy hiểu những điều cơ bản trước.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22270%22%3E%3C/svg%3E
Tạo một tệp mới để tạo RoleBinding cho phép Vai trò "pod-reader" cho người dùng "jane" trong "mặc định" không gian tên.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22308%22%3E%3C/svg%3E
Tạo một tệp để tạo ClusterRole có thể được sử dụng để cấp quyền truy cập get, watch và list cho secrets trong bất kỳ không gian tên cụ thể nào hoặc trên tất cả các không gian tên tùy thuộc vào cách nó được ràng buộc.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22254%22%3E%3C/svg%3E
Tạo một tệp mới để tạo ClusterRoleBinding cho phép bất kỳ người dùng nào trong nhóm "người quản lý" đọc bí mật trong bất kỳ không gian tên.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22242%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22716%22%3E%3C/svg%3E
Lấy danh sách các RoleBindings và ClusterRoleBindings hiện có từ cụm.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22573%22%3E%3C/svg%3E
Bây giờ hãy tạo một Role, RoleBinding và ClusterRole ClusterRoleBinding bằng cách sử dụng các tệp chúng ta đã tạo ở trên các bước.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22178%22%3E%3C/svg%3E
Sử dụng các lệnh sau để xác minh xem các đối tượng đã được đã tạo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22166%22%3E%3C/svg%3E
Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng Role, RoleBinding và ClusterRole, ClusterRoleBinding đã được tạo.
Trên các nút chính, hãy tạo một khóa và yêu cầu ký chứng chỉ (CSR) bằng cách sử dụng openssl.
Tạo tệp định nghĩa đối tượng CertificateSigningRequest chứa CSR mà chúng ta đã tạo ở bước trên. Trong tệp bên dưới, thêm đầu ra của lệnh "cat bob-k8s.csr | base64 | tr -d '\n'" vào thuộc tính "request".
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22240%22%3E%3C/svg%3E
Tạo đối tượng CertificateSigningRequest trong Kubernetes chứa CSR mà chúng tôi đã tạo ở trên bước.
Bây giờ chúng ta muốn chấp thuận đối tượng CSR (CertificateSigningRequest) mà chúng ta đã tạo ở trên bước.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22160%22%3E%3C/svg%3E
Trong ảnh chụp màn hình ở trên, bạn có thể thấy CSR đã được Phê duyệt, Đã cấp.
Lấy chứng chỉ có trong trường ‘status.certificate’ của CSR đối tượng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22345%22%3E%3C/svg%3E
Lấy chứng chỉ CA cụm là yêu cầu tiếp theo cho tệp kubeconfig của Bob và lưu vào "k8s-ca.crt" tập tin.
Thiết lập cấu hình cụm trong tệp kubeconfig của Bob. Tất cả các chi tiết này sẽ được đưa từ kubeconfig hiện tại của chúng tôi bằng lệnh bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22218%22%3E%3C/svg%3E
Thiết lập người dùng sẽ nhập khóa và chứng chỉ của Bob vào cấu hình tập tin.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22384%22%3E%3C/svg%3E
Tạo ngữ cảnh cho tệp cấu hình "Bob" bằng cách sử dụng lệnh sau lệnh.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22409%22%3E%3C/svg%3E
Tạo không gian tên cho Bob
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22291%22%3E%3C/svg%3E
Chỉ định ngữ cảnh mà Bob sẽ sử dụng cho các lệnh kubectl của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22446%22%3E%3C/svg%3E
Sao chép "bob-k8s-config" từ nút chính vào tệp ".kube/config" trong thư mục gốc của Bob và kiểm tra kubeconfig của Bob bằng cách chạy ‘kubectl phiên bản’.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22281%22%3E%3C/svg%3E
Kiểm tra quyền bằng cách thực hiện các lệnh sau từ người dùng máy móc.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22120%22%3E%3C/svg%3E
Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng người dùng "Bob" không thể thực hiện bất kỳ thao tác nào vì không có quyền truy cập nào được cấp cho người dùng đó.
Chỉ định vai trò cụm 'admin' mặc định cho Bob để tạo hầu hết các loại đối tượng Kubernetes trong không gian tên của anh ta. Vai trò này "bob-admin" sẽ cấp quyền truy cập quản trị cho người dùng "Bob" trên không gian tên "bob" bằng cách sử dụng "admin" ClusterRole.
Thực hiện lệnh sau trên máy chủ chính nút.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22132%22%3E%3C/svg%3E
Lấy không gian tên được tạo cho Bob.
Bây giờ, thực hiện tất cả các lệnh sau từ người dùng máy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2295%22%3E%3C/svg%3E
Trong ảnh chụp màn hình ở trên, bạn có thể thấy người dùng "Bob" không thể liệt kê các tài nguyên "không gian tên".
Tạo một Pod trong không gian tên "bob" được đặt làm không gian tên mặc định trong kubeconfig của Bob tập tin.
Kiểm tra không gian tên hiện tại được đặt làm không gian tên mặc định
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22165%22%3E%3C/svg%3E
Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng "Bob" có thể tạo một Pod trong không gian tên "bob" vì chúng ta đã liên kết vai trò "admin" với người dùng "Bob" cho không gian tên "bob".
Hãy thử tạo một pod trong không gian tên "mặc định" mà Bob không có bất kỳ quyền nào. Vì chúng tôi đã cho phép người dùng "Bob" chỉ có thể tạo các đối tượng trong không gian tên "bob", nên người dùng Bob sẽ không thể tạo bất kỳ tài nguyên nào trong bất kỳ không gian tên nào khác ngoài "bob".
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2272%22%3E%3C/svg%3E
Kiểm tra không gian tên được đặt làm không gian tên mặc định trong tệp kubeconfig. Điều này cho thấy không gian tên "bob" được đặt làm không gian tên mặc định trong tệp cấu hình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2291%22%3E%3C/svg%3E
Trong bài viết này, chúng ta sẽ hiểu những điều cơ bản về RBAC và tạo các Đối tượng Role, ClusterRole, RoleBinding và ClusterRoleBinding.
Sau đó, chúng ta sẽ tạo tệp kubeconfig để cấp quyền truy cập hạn chế cho một người dùng cụ thể trên không gian tên đã chọn.
Nhưng trước khi tiến hành, chúng ta hãy hiểu những điều cơ bản trước.
- Role hoặc ClusterRole bao gồm một tập hợp các quyền.
- Role thiết lập các quyền trong một không gian tên cụ thể và ClusterRole là một tài nguyên không có không gian tên.
- Liên kết vai trò cấp các quyền được xác định trong một vai trò cho một người dùng hoặc một tập hợp người dùng trong khi ClusterRoleBinding cấp quyền truy cập đó trên toàn cụm
- RoleBinding có thể tham chiếu đến bất kỳ Vai trò nào trong cùng một không gian tên. Ngoài ra, RoleBinding có thể tham chiếu đến ClusterRole và liên kết ClusterRole đó với không gian tên của RoleBindin
- Akubeconfigfile là tệp được sử dụng để cấu hình quyền truy cập vào Kubernetes từ công cụ dòng lệnh kubectl.
Mã:
Note: Refer screenshots to avoid any confusion before executing the commands. (ubuntu@master =master node andubuntu@ip-172-31-25-70= user machine)
Điều kiện tiên quyết
- Cụm Kubernetes có ít nhất 1 nút worker.
Nếu bạn muốn tìm hiểu cách tạo Cụm Kubernetes, hãy nhấp vào đây. Hướng dẫn này sẽ giúp bạn tạo cụm Kubernetes với 1 Master và 2 Node trên AWS Ubuntu EC2 Instances.
Chúng ta sẽ làm gì?
- Tạo các tệp đối tượng Role, Role Binding, Cluster Role, Cluster Role Binding.
- Tạo các đối tượng Role, Role Binding, Cluster Role, Cluster Role Binding trong cụm.
- Cung cấp quyền truy cập cho người dùng bằng tệp kubeconfig.
- Tóm tắt về quá trình tạo tệp kubeconfig.
Tạo các tệp đối tượng Role, Role Binding, Cluster Role, Cluster Role Binding.
Tạo tệp để tạo Rolein không gian tên "mặc định" có thể được sử dụng để cấp quyền truy cập get, watch và list cho vỏ.
Mã:
vim my-role.yml
Mã:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata: namespace: default name: pod-reader
rules:
- apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list"]
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22270%22%3E%3C/svg%3E
Tạo một tệp mới để tạo RoleBinding cho phép Vai trò "pod-reader" cho người dùng "jane" trong "mặc định" không gian tên.
Mã:
vim my-role-binding.yml
Mã:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata: name: read-pods namespace: default
subjects:
- kind: User name: jane apiGroup: rbac.authorization.k8s.io
roleRef: kind: Role name: pod-reader apiGroup: rbac.authorization.k8s.io
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22308%22%3E%3C/svg%3E
Tạo một tệp để tạo ClusterRole có thể được sử dụng để cấp quyền truy cập get, watch và list cho secrets trong bất kỳ không gian tên cụ thể nào hoặc trên tất cả các không gian tên tùy thuộc vào cách nó được ràng buộc.
Mã:
vim my-cluster-role.yml
Mã:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata: name: secret-reader
rules:
- apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list"]
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22254%22%3E%3C/svg%3E
Tạo một tệp mới để tạo ClusterRoleBinding cho phép bất kỳ người dùng nào trong nhóm "người quản lý" đọc bí mật trong bất kỳ không gian tên.
Mã:
vim my-cluster-role-binding.yml
Mã:
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata: name: read-secrets-global
subjects:
- kind: Group name: manager apiGroup: rbac.authorization.k8s.io
roleRef: kind: ClusterRole name: secret-reader apiGroup: rbac.authorization.k8s.io
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22242%22%3E%3C/svg%3E
Tạo các đối tượng aRole, Role Binding, Cluster Role, Cluster Role Binding.
Lấy danh sách các Role và ClusterRole hiện có từ cụm.
Mã:
kubectl get roles
Mã:
kubectl get clusterroles
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22716%22%3E%3C/svg%3E
Lấy danh sách các RoleBindings và ClusterRoleBindings hiện có từ cụm.
Mã:
kubectl get rolebinding
Mã:
kubectl get clusterrolebinding
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22573%22%3E%3C/svg%3E
Bây giờ hãy tạo một Role, RoleBinding và ClusterRole ClusterRoleBinding bằng cách sử dụng các tệp chúng ta đã tạo ở trên các bước.
Mã:
kubectl create -f my-role.yml
Mã:
kubectl create -f my-cluster-role.yml
Mã:
kubectl create -f my-cluster-role-binding.yml
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22178%22%3E%3C/svg%3E
Sử dụng các lệnh sau để xác minh xem các đối tượng đã được đã tạo.
Mã:
kubectl get roles | grep pod-reader
Mã:
kubectl get clusterroles | grep secret-reader
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22166%22%3E%3C/svg%3E
Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng Role, RoleBinding và ClusterRole, ClusterRoleBinding đã được tạo.
Cung cấp quyền truy cập cho người dùng bằng tệp kubeconfig(config).
Bây giờ, trong phần này, chúng ta sẽ tạo một tệp cấu hình có thể chia sẻ với người dùng. Tại đây, để kiểm tra tình huống này, chúng ta sẽ tạo một người dùng "bob" trên máy chủ Linux và chia sẻ tệp cấu hình này với người dùng "bob". Sau đó, chúng tôi sẽ thử thực hiện các hoạt động được phép và không được phép đối với người dùng đó. Chúng tôi sẽ liên kết một ClusterRole quản trị với người dùng "bob" để cấp quyền truy cập vào tất cả các đối tượng trong không gian tên "bob".Trên các nút chính, hãy tạo một khóa và yêu cầu ký chứng chỉ (CSR) bằng cách sử dụng openssl.
Mã:
pwd
Mã:
mkdir user-bob
Mã:
openssl req -new -newkey rsa:4096 -nodes -keyout bob-k8s.key -out bob-k8s.csr -subj "/CN=bob/O=devops"
Mã:
cat bob-k8s.csr | base64 | tr -d '\n'
Mã:
vim k8s-csr.yaml
Mã:
cat k8s-csr.yaml
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22240%22%3E%3C/svg%3E
Tạo đối tượng CertificateSigningRequest trong Kubernetes chứa CSR mà chúng tôi đã tạo ở trên bước.
Mã:
kubectl get csr
Mã:
kubectl get csr
Mã:
kubectl get csr
Mã:
kubectl get csr
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22160%22%3E%3C/svg%3E
Trong ảnh chụp màn hình ở trên, bạn có thể thấy CSR đã được Phê duyệt, Đã cấp.
Lấy chứng chỉ có trong trường ‘status.certificate’ của CSR đối tượng.
Mã:
ls -lt
Mã:
ls -lt
Mã:
cat bob-k8s-access.crt
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22345%22%3E%3C/svg%3E
Lấy chứng chỉ CA cụm là yêu cầu tiếp theo cho tệp kubeconfig của Bob và lưu vào "k8s-ca.crt" tập tin.
Mã:
ls -lt
Mã:
ls -lt
Mã:
cat k8s-ca.crt
Thiết lập cấu hình cụm trong tệp kubeconfig của Bob. Tất cả các chi tiết này sẽ được đưa từ kubeconfig hiện tại của chúng tôi bằng lệnh bên dưới.
Mã:
ls -lt
Mã:
ls -lt
Mã:
cat bob-k8s-config
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22218%22%3E%3C/svg%3E
Thiết lập người dùng sẽ nhập khóa và chứng chỉ của Bob vào cấu hình tập tin.
Mã:
ls -lt
Mã:
ls -lt
Mã:
cat bob-k8s-config
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22384%22%3E%3C/svg%3E
Tạo ngữ cảnh cho tệp cấu hình "Bob" bằng cách sử dụng lệnh sau lệnh.
Mã:
ls -lt
Mã:
ls -lt
Mã:
cat bob-k8s-config
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22409%22%3E%3C/svg%3E
Tạo không gian tên cho Bob
Mã:
kubectl get ns
Mã:
kubectl create ns bob
Mã:
kubectl label ns bob user=bob env=sandbox
Mã:
kubectl get ns -o wide
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22291%22%3E%3C/svg%3E
Chỉ định ngữ cảnh mà Bob sẽ sử dụng cho các lệnh kubectl của mình.
Mã:
cat bob-k8s-config
Mã:
cat bob-k8s-config
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22446%22%3E%3C/svg%3E
Sao chép "bob-k8s-config" từ nút chính vào tệp ".kube/config" trong thư mục gốc của Bob và kiểm tra kubeconfig của Bob bằng cách chạy ‘kubectl phiên bản’.
Mã:
vim .kube/config #All the output of "cat bob-k8s-config" command ran on the master node and save it to /home/bob/.kube/config on the user machine.
Mã:
kubectl version #Execute this on the user machine
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22281%22%3E%3C/svg%3E
Kiểm tra quyền bằng cách thực hiện các lệnh sau từ người dùng máy móc.
Mã:
kubectl get nodes
Mã:
kubectl get pods
Mã:
kubectl get deployments
Mã:
kubectl get all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22120%22%3E%3C/svg%3E
Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng người dùng "Bob" không thể thực hiện bất kỳ thao tác nào vì không có quyền truy cập nào được cấp cho người dùng đó.
Chỉ định vai trò cụm 'admin' mặc định cho Bob để tạo hầu hết các loại đối tượng Kubernetes trong không gian tên của anh ta. Vai trò này "bob-admin" sẽ cấp quyền truy cập quản trị cho người dùng "Bob" trên không gian tên "bob" bằng cách sử dụng "admin" ClusterRole.
Thực hiện lệnh sau trên máy chủ chính nút.
Mã:
kubectl create rolebinding bob-admin --namespace=bob --clusterrole=admin --user=bob
Mã:
kubectl get rolebinding
Mã:
kubectl get clusterrole | grep admin
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22132%22%3E%3C/svg%3E
Lấy không gian tên được tạo cho Bob.
Bây giờ, thực hiện tất cả các lệnh sau từ người dùng máy.
Mã:
kubectl get ns
Mã:
kubectl get ns bob
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2295%22%3E%3C/svg%3E
Trong ảnh chụp màn hình ở trên, bạn có thể thấy người dùng "Bob" không thể liệt kê các tài nguyên "không gian tên".
Tạo một Pod trong không gian tên "bob" được đặt làm không gian tên mặc định trong kubeconfig của Bob tập tin.
Mã:
kubectl run nginx --image=nginx
Mã:
kubectl get pods -o wide
Mã:
kubectl config get-contexts
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22165%22%3E%3C/svg%3E
Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng "Bob" có thể tạo một Pod trong không gian tên "bob" vì chúng ta đã liên kết vai trò "admin" với người dùng "Bob" cho không gian tên "bob".
Hãy thử tạo một pod trong không gian tên "mặc định" mà Bob không có bất kỳ quyền nào. Vì chúng tôi đã cho phép người dùng "Bob" chỉ có thể tạo các đối tượng trong không gian tên "bob", nên người dùng Bob sẽ không thể tạo bất kỳ tài nguyên nào trong bất kỳ không gian tên nào khác ngoài "bob".
Mã:
kubectl run nginx-2 --image=nginx --namespace=default
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2272%22%3E%3C/svg%3E
Kiểm tra không gian tên được đặt làm không gian tên mặc định trong tệp kubeconfig. Điều này cho thấy không gian tên "bob" được đặt làm không gian tên mặc định trong tệp cấu hình.
Mã:
kubectl config view --minify | grep namespace:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2291%22%3E%3C/svg%3E
Tóm tắt về việc tạo tệp Kubeconfig
- Tạo yêu cầu ký khóa và chứng chỉ (CSR) bằng openssl.
- Tạo tệp định nghĩa đối tượng CertificateSigningRequest.
- Tạo đối tượng CertificateSigningRequest.
- Phê duyệt CSR (CertificateSigningRequest).
- Lấy chứng chỉ của đối tượng CSR.
- Lấy chứng chỉ CA cụm.
- Thiết lập cấu hình cụm trong tệp kubeconfig.
- Thiết lập người dùng.
- Tạo ngữ cảnh.
- Tạo không gian tên cho người dùng.
- Chỉ định ngữ cảnh trong tệp kubeconfig.
- Truyền kubeconfig cho người dùng.
- Kiểm tra quyền bằng tệp cấu hình của người dùng
- Chỉ định vai trò cho người dùng
- Kiểm tra lại quyền bằng tệp cấu hình của người dùng.