Bảng điều khiển giao diện người dùng web cho Kubernetes

theanh

Administrator
Nhân viên
Bảng điều khiển Kubernetes cung cấp giao diện người dùng dựa trên web cho cụm. Người ta có thể triển khai các ứng dụng trên cụm bằng bảng điều khiển cũng như khắc phục sự cố cho các ứng dụng hiện có trong cụm. Bảng điều khiển cũng cung cấp thông tin chi tiết về các tài nguyên trong cụm. Bảng điều khiển được Kubernetes cung cấp chính thức. Người ta có thể tạo, sửa đổi, cập nhật và xóa các đối tượng Kubernetes bằng bảng điều khiển.

Trong bài viết này, chúng tôi sẽ cài đặt bảng điều khiển chính thức do Kubernetes cung cấp và thiết lập tài khoản dịch vụ để truy cập vào bảng điều khiển đó. Trước khi tiếp tục với bài viết này, chúng tôi giả định rằng bạn đã quen thuộc với Kubernetes và có một Kubernetes Cluster.

Điều kiện tiên quyết​

  1. Kubernetes Cluster có ít nhất 1 worker node.
    Nếu bạn muốn tìm hiểu cách tạo Kubernetes Cluster, 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 Worker Node trên AWS Ubuntu 18.04 EC2 Instances.
  2. Hiểu biết cơ bản về Kubernetes.

Chúng ta sẽ làm gì?​

  1. Triển khai Kubernetes Dashboard.
  2. Thiết lập ServiceAccount để truy cập Kubernetes Dashboard.
  3. Truy cập Kubernetes Dashboard.

Triển khai Kubernetes Dashboard​

Để triển khai Kubernetes dashboard, chúng ta có thể tải xuống tệp đối tượng của nó từ Github. Sử dụng lệnh sau để tải xuống tệp đối tượng. Tệp này chứa các định nghĩa cho Namespace, ServiceAccount, Service, Secret, ConfigMap, Role, ClusterRole, RoleBinding, ClusterRoleBinding, Deployment và Service.
Mã:
pwd
Mã:
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22203%22%3E%3C/svg%3E


Đổi tên tệp và thay đổi loại dịch vụ thành NodePort. Tham khảo ảnh chụp màn hình sau.
Mã:
mv recommended.yamlkubernetes-dashboard-deployment.yml
Mã:
vim kubernetes-dashboard-deployment.yml

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22398%22%3E%3C/svg%3E


Sau khi bạn đã thay đổi loại dịch vụ thành NodePort, đã đến lúc tạo tất cả các đối tượng chịu trách nhiệm triển khai bảng điều khiển Kubernetes.
Mã:
kubectl apply -f kubernetes-dashboard-deployment.yml
Kiểm tra việc triển khai, Pod và Dịch vụ đã được tạo bởi lệnh trên. Lệnh trên cũng tạo Namespace, ServiceAccount, Service, Secret, ConfigMap, Role, ClusterRole, RoleBinding, ClusterRoleBinding, Deployment và Dịch vụ.
Mã:
kubectl get deployments -n kubernetes-dashboard
Mã:
kubectl get svc
Mã:
kubectl get pods -n kubernetes-dashboard
Mã:
kubectl get svc -n kubernetes-dashboard

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22387%22%3E%3C/svg%3E


Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng Dịch vụ Bảng điều khiển Kubernetes có loại "NodePort" đã được tạo. Điều đó có nghĩa là bảng điều khiển sẽ khả dụng trên bất kỳ IP nào của các nút trên NodePort "32304". Bạn có thể thấy một cổng khác cho dịch vụ trên cụm của mình.

Sử dụng lệnh sau để lấy IP của các nút mà bạn sẽ cần trong các bước sau.
Mã:
kubectl get nodes -o wide

Thiết lập ServiceAccount để truy cập Kubernetes Dashboard​

Để truy cập Kubernetes Dashboard, bạn cần có một mã thông báo. Để tạo mã thông báo, trước tiên chúng ta cần tạo ServiceAccount

Tạo một tệp mới và thêm nội dung sau vào đó để tạo ServiceAccount. Bạn cũng có thể tải xuống tệp đối tượng từ myKho lưu trữ Github.
Mã:
cat admin-sa.yml
Mã:
apiVersion: v1
kind: ServiceAccount
metadata: name: rahul-admin namespace: kube-system
Một lần bạn có tệp đối tượng, hãy thực hiện lệnh sau để tạo ServiceAccount.
Mã:
kubectl apply -f admin-sa.yml

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22255%22%3E%3C/svg%3E


Bây giờ bạn cần liên kết ServiceAccount "rahul-admin" với vai trò cụm "cluster-admin". Tạo một tệp mới với nội dung sau để tạo ClusterRoleBinding hoặc nhấp vàođây để tải xuống tệp đối tượng từ kho lưu trữ Github của tôi.
Mã:
vim admin-rbac.yml
< /none_replace-dd47a1bd-4d0e-4e8b-9935-0dc4162542e6>
Mã:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata: name: rahul-admin
roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin
subjects: - kind: ServiceAccount name: rahul-admin namespace: kube-system
Thực hiện lệnh sau để tạo "ClusterRoleBinding".
Mã:
kubectl apply -f admin-rbac.yml

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22343%22%3E%3C/svg%3E


Bây giờ chúng ta có "ClusterRole" --> "cluster-admin" được liên kết với "ServiceAccount" --> "rahul-admin".

Bây giờ chúng ta đã sẵn sàng để lấy mã thông báo để sử dụng để đăng nhập vào bảng điều khiển Kubernetes. Để lấy mã thông báo, hãy thực hiện các lệnh sau.
Mã:
SA_NAME="rahul-admin"
Mã:
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${SA_NAME} | awk '{print $1}')

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22280%22%3E%3C/svg%3E


Trong ảnh chụp màn hình ở trên, bạn có thể thấy một mã thông báo được sử dụng để đăng nhập vào bảng điều khiển Kubernetes. Sao chép mã thông báo này và nhấn vào URL bảng điều khiển trên "NodeIP:NodePort".

Tại đây, NodeIP là IP của bất kỳ nút nào trong cụm và NodePort là Cổng (trong trường hợp này là 32304, trong trường hợp của bạn, bạn có thể có một cổng khác) của dịch vụ chúng tôi đã tạo.

Khi bạn nhấn vào URL "NodeIP:NodePort", bạn sẽ thấy một màn hình như sau. Tại đây, hãy chọn tùy chọn "Token", nhập Token mà chúng tôi đã lấy ở bước trên và nhấp vào nút "Sign in".

Truy cập Bảng điều khiển Kubernetes​


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22314%22%3E%3C/svg%3E


Sau khi đăng nhập thành công, bạn sẽ thấy Bảng điều khiển Kubernetes như sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22425%22%3E%3C/svg%3E


Ở đầu màn hình, bạn thậm chí có thể thay đổi Không gian tên và xem các tài nguyên trong đó. Bây giờ bạn đã sẵn sàng khám phá Kubernetes Dashboard.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22422%22%3E%3C/svg%3E

Kết luận​

Trong bài viết này, chúng tôi đã triển khai tất cả các đối tượng Kubernetes cần thiết để có Dashboard trong cụm. Chúng tôi đã tạo ServiceAccount và ClusterRoleBinding để có Token truy cập KubernetesDashboard vì không thể truy cập đơn giản. Dashboard có thể giúp bạn hiểu về cụm và xem tất cả các đối tượng có trong cụm.
 
Back
Bên trên