Kubernetes Architecture-part2

·

4 min read

Để kết nối vào một Kubernetes cluster, bạn có thể sử dụng công cụ kubectl, đây là công cụ chính thức được cung cấp bởi Kubernetes để tương tác với cluster. Dưới đây là các bước cơ bản để kết nối vào một Kubernetes cluster bằng kubectl:

  1. Cài đặt kubectl: Đầu tiên, bạn cần cài đặt kubectl trên máy tính của mình. Kubectl có thể được cài đặt thông qua các gói quản lý gói của hệ điều hành hoặc từ các nguồn khác như GitHub releases của Kubernetes.

    1. kubectl là công cụ dòng lệnh chính thức cho Kubernetes.

    2. Để sử dụng kubectl, bạn cần cài đặt nó trên máy cục bộ của mình.

    3. Sau khi cài đặt kubectl, bạn cần cấu hình nó để kết nối với cluster của mình.

    4. Điều này có thể được thực hiện bằng cách thiết lập biến môi trường KUBECONFIG trỏ đến tệp cấu hình kubectl.

    5. Tệp cấu hình kubectl chứa thông tin kết nối cho cluster của bạn, bao gồm địa chỉ API server, chứng chỉ và token xác thực.

  2. Lấy các thông tin xác thực: Để kết nối vào cluster, bạn cần có các thông tin xác thực như endpoint của API server, thông tin xác thực (ví dụ như file kubeconfig).

  3. Cấu hình kubectl: Bạn cần cấu hình kubectl để nó biết làm thế nào để kết nối vào cluster. Cách phổ biến nhất là sử dụng một file kubeconfig, file này chứa thông tin về cluster, người dùng, và các thông tin xác thực khác.

    Nếu bạn đã có file kubeconfig, bạn có thể đặt biến môi trường KUBECONFIG để chỉ định đường dẫn đến file kubeconfig của mình:

     export KUBECONFIG=/path/to/your/kubeconfig
    
  4. Kiểm tra kết nối: Bạn có thể kiểm tra xem kubectl đã được cấu hình đúng chưa bằng cách chạy lệnh:

     kubectl cluster-info
    

    Lệnh này sẽ hiển thị thông tin về cluster và xác minh rằng kubectl đã kết nối thành công vào cluster.

  5. Sử dụng kubectl: Bây giờ bạn đã kết nối thành công vào cluster, bạn có thể sử dụng kubectl để thực hiện các hoạt động như triển khai ứng dụng, quản lý các tài nguyên, và xem trạng thái của cluster.

Nhớ rằng để kết nối vào một Kubernetes cluster, bạn cần có quyền truy cập và các thông tin xác thực phù hợp được cung cấp bởi người quản trị hệ thống hoặc quản trị cluster.

Dưới đây là một ví dụ về nội dung của một file kubeconfig và một số giải thích cơ bản về các phần quan trọng của nó:

apiVersion: v1
kind: Config
preferences: {}

clusters:
- name: eks-cluster
  cluster:
    server: https://<eks-api-server-address>
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURVRENDQWVGQmdRR... (CA certificate data)
- name: aks-cluster
  cluster:
    server: https://<aks-api-server-address>
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURVRENDQWVGQmdRR... (CA certificate data)

contexts:
- name: eks-context
  context:
    cluster: eks-cluster
    user: eks-user
- name: aks-context
  context:
    cluster: aks-cluster
    user: aks-user

users:
- name: eks-user
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      command: aws-iam-authenticator
      args:
        - "token"
        - "-i"
        - "<eks-cluster-name>"

- name: aks-user
  user:
    client-certificate-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS... (Client certificate data)
    client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS... (Client key data)

Giải thích:

  • apiVersion: Phiên bản của cấu hình kubeconfig, thông thường là v1.

  • clusters: Danh sách các cluster mà bạn có thể kết nối đến. Trong mỗi cluster, bạn cần cung cấp thông tin về CA certificate và địa chỉ của Kubernetes API server. Trong ví dụ này, chúng ta có hai cluster: eks-clusteraks-cluster. Mỗi cluster có thông tin về địa chỉ API server và dữ liệu của chứng chỉ CA.

  • contexts: Danh sách các ngữ cảnh (contexts) mà bạn có thể sử dụng. Mỗi ngữ cảnh kết hợp một cluster và một người dùng (user). rong trường hợp này, chúng ta có hai ngữ cảnh: eks-contextaks-context, mỗi ngữ cảnh kết hợp một cluster và một người dùng.

  • current-context: Xác định ngữ cảnh hiện tại mà kubectl sẽ sử dụng. Khi bạn sử dụng kubectl, nó sẽ sử dụng cluster và người dùng từ ngữ cảnh hiện tại.

  • users: Danh sách các người dùng mà bạn có thể sử dụng để xác thực khi kết nối vào cluster. Mỗi người dùng có thể có thông tin về chứng chỉ client và khóa client.

Trong ví dụ trên:

  • Cluster có tên my-cluster có địa chỉ của Kubernetes API server là https://<api_server_address> và dữ liệu của chứng chỉ CA.

  • Ngữ cảnh có tên my-context kết hợp cluster là my-cluster và người dùng là my-user.

  • Người dùng có tên my-user có thông tin về chứng chỉ client và khóa client.

Khi sử dụng kubectl, bạn có thể chọn ngữ cảnh và kết nối vào cluster bằng cách sử dụng lệnh kubectl config use-context <context_name>.