Mạng, Cân bằng tải và Bảo mật

Nhập môn Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Thêm về Label và Selector

Label:

  • Cặp Key/Value gắn vào đối tượng Kubernetes như Pod hoặc Node
  • Dùng để tổ chức các tập con đối tượng
  • Có thể chỉnh sửa bất kỳ lúc nào
  • Ví dụ:
    • environment: prod
    • app: my_cool_app
    • has_GPU: true

Selector:

  • Dùng để nhận diện đối tượng qua label
  • Ví dụ:

    • ...    
      selector:
          environment: prod
          app: my_cool_app
      ...
      
    • ...
      nodeSelector:
        has_GPU: true
      ...
      
Nhập môn Kubernetes

Mạng và Service

Kubernetes Services

  • Mỗi Pod có một IP toàn cụm (địa chỉ internet) riêng
  • Dùng cho giao tiếp giữa các Pod
  • Không hữu ích lắm, vì Pod có thể khởi động lại bất kỳ lúc nào và nhận IP mới
  • Service dùng để gắn Pod và cung cấp kết nối ổn định
Nhập môn Kubernetes

Manifest Service

Kubernetes Servicesl

apiVersion: v1
kind: Service
metadata:
  name: Kubernetes_Service_2
spec:
  type: ...
  selector:
    app: app2 
  ...
Nhập môn Kubernetes

Cân bằng tải

Cân bằng tải

  • Load balancer trong Kubernetes phân phối tải giữa các Pod
  • Tránh dồn tải không đều, tăng hiệu suất và giảm thời gian phản hồi

  • Ví dụ:

    • cung cấp một dịch vụ từ nhiều Pod
    • load balancer sẽ phân phối tải đều cho các Pod
Nhập môn Kubernetes

Cân bằng tải trong Kubernetes

apiVersion: v1
kind: Service
metadata:
  name: <service name>
spec:
  type: LoadBalancer
  selector:
    <key1>: <value1>
    <key2>: <value2>
  ...
  • Load balancer thường được Nhà cung cấp Kubernetes (Cloud Provider) cấu hình sẵn
  • Không cần khai báo manifest bổ sung cho load balancer — sẽ tự động được tạo và gắn vào service
Nhập môn Kubernetes

Ingress

Kubernetes Ingress

  • Đối tượng Ingress dùng để định tuyến yêu cầu HTTP/HTTPS (lưu lượng) từ ngoài cụm vào các service trong cụm
  • Quy tắc Ingress xác định yêu cầu nào do service nào phục vụ
  • Thường dùng cùng cân bằng tải
Nhập môn Kubernetes

Bảo mật Kubernetes

  • Bảo mật trong kiến trúc IT hiện đại rất quan trọng nhưng phức tạp, có nhiều khía cạnh
  • Kubernetes có đầy đủ thành phần để bảo vệ ứng dụng chạy trên đó,

    ví dụ:

    • API "Secret" cho đối tượng nhạy cảm như mật khẩu, token, khóa, v.v.
    • công cụ và API để bật mã hóa giao tiếp mạng
    • phương thức xác thực người dùng
    • kiểm soát truy cập dựa trên vai tròthuộc tính ("RBAC" và "ABAC")
Nhập môn Kubernetes

Ayo berlatih!

Nhập môn Kubernetes

Preparing Video For Download...