AI kỹ thuật nền tảng với GKE và Gemini CLI

1. Giới thiệu

Phòng thí nghiệm này giới thiệu về kỹ thuật sử dụng Gemini CLI và máy chủ Giao thức ngữ cảnh mô hình (MCP) của GKE để quản lý cơ sở hạ tầng. Trong hoạt động quản lý GKE truyền thống, các toán tử sẽ dịch thủ công các yêu cầu về cơ sở hạ tầng thành các lệnh gcloud và định nghĩa ứng dụng thành tệp kê khai YAML được viết. Phòng thí nghiệm này minh hoạ một phương pháp khác: sử dụng giao diện tương tác kết nối ý định bằng ngôn ngữ tự nhiên với việc thực thi kỹ thuật trên Google Kubernetes Engine (GKE). Sự thay đổi này là một phần của xu hướng rộng hơn trong kỹ thuật nền tảng, trong đó trọng tâm chuyển từ việc xây dựng các tập lệnh tự động hoá cứng nhắc sang quản lý các tác nhân thông minh có thể xử lý các chi tiết tinh tế của hoạt động cơ sở hạ tầng.

Khái niệm cốt lõi

  • Kỹ thuật nền tảng: Đây là hoạt động xây dựng và duy trì các công cụ cũng như quy trình làm việc nội bộ, giúp nhà phát triển phần mềm quản lý cơ sở hạ tầng của riêng họ mà không cần phải là chuyên gia về mọi dịch vụ đám mây cơ bản. Mục tiêu là giảm thiểu các rào cản kỹ thuật trong khi vẫn duy trì tính nhất quán và bảo mật. Bằng cách tạo một lộ trình chuẩn hoá, các nhóm nền tảng đảm bảo rằng nhà phát triển ứng dụng có thể triển khai một cách an toàn và nhanh chóng, trong khi nhóm nền tảng vẫn duy trì quyền kiểm soát đối với hoạt động quản trị và chi phí.
  • Gemini CLI: Đây là một giao diện dòng lệnh cho phép bạn tương tác trực tiếp với các mô hình Gemini ngay trên thiết bị của mình. Không giống như chatbot dựa trên web thông thường, CLI được thiết kế để tồn tại trong môi trường phát triển của bạn, giúp bạn dễ dàng tích hợp AI vào các quy trình công việc hiện có dựa trên shell. Công cụ này cho phép bạn chuyển đầu ra từ các lệnh khác trực tiếp vào mô hình và thực thi các chỉ dẫn mà không cần rời khỏi môi trường thiết bị đầu cuối.
  • Giao thức ngữ cảnh mô hình (MCP): MCP là một tiêu chuẩn mở cho phép mô hình AI kết nối với các công cụ hoặc nguồn dữ liệu cụ thể. Nếu không có MCP, mô hình AI chỉ biết những gì được huấn luyện và không thể xem các tài nguyên cụ thể của bạn. Với máy chủ GKE MCP, Gemini CLI có thể chủ động truy vấn API của dự án Google Cloud, kiểm tra trạng thái của các cụm và thực thi các lệnh thay cho bạn. Thư viện này đóng vai trò là cầu nối giữa công cụ suy luận của mô hình và GKE API thực tế.

Mục tiêu của Lab

Khi kết thúc phiên đào tạo này, bạn sẽ có thể:

  1. Định cấu hình môi trường: Truy cập Cloud Shell và xác thực tiện ích GKE MCP để cho phép Gemini CLI tương tác với các tài nguyên của bạn trên Google Cloud.
  2. Thiết kế cơ sở hạ tầng: Sử dụng các lời nhắc tương tác để xác định cấu hình cụm tối ưu dựa trên chi phí, chi phí quản lý và yêu cầu về khối lượng công việc.
  3. Quản lý tài nguyên: Tạo, kiểm tra và triển khai manifest Kubernetes (Triển khai, Dịch vụ, v.v.) bằng ngôn ngữ tự nhiên.
  4. Phân tích hoạt động: Sử dụng khả năng tổng hợp nhật ký và sự kiện của AI để xác định nguyên nhân gốc của lỗi triển khai và đề xuất các giải pháp kỹ thuật cụ thể.

2. Thiết lập dự án

Bạn phải thiết lập môi trường Google Cloud đúng cách thì Gemini CLI mới có thể tương tác với các tài nguyên của bạn. Chế độ thiết lập này đảm bảo rằng dự án của bạn có các quyền phù hợp và tất cả các dịch vụ phụ trợ cần thiết đều sẵn sàng nhận yêu cầu từ tác nhân AI.

Mở Cloud Shell

Trong lớp học lập trình này, chúng ta sẽ sử dụng Cloud Shell, một môi trường thiết bị đầu cuối dựa trên trình duyệt do Google Cloud cung cấp. Chúng tôi sử dụng Cloud Shell vì công cụ này được định cấu hình sẵn với tất cả các công cụ mà chúng ta cần, bao gồm cả Google Cloud CLI (gcloud), kubectl và Gemini CLI. Nhờ đó, bạn sẽ tiết kiệm được thời gian cài đặt các công cụ này trên máy tính cục bộ.

  1. Chuyển đến Google Cloud Console.
  2. Nhìn vào tiêu đề ở trên cùng bên phải của bảng điều khiển rồi nhấp vào nút Activate Cloud Shell (Kích hoạt Cloud Shell) (nút này trông giống như một dấu nhắc của thiết bị đầu cuối >_).
  3. Một phiên dòng lệnh sẽ mở ra ở cuối cửa sổ trình duyệt. Nếu được nhắc, hãy nhấp vào Tiếp tục.

Chọn một dự án

Trong thiết bị đầu cuối Cloud Shell, hãy đảm bảo rằng bạn đang làm việc trong đúng dự án.

  1. Chọn một dự án hiện có hoặc tạo một dự án mới dành riêng cho phòng thí nghiệm này trong Bảng điều khiển.
  2. Ghi lại Mã dự án. Bạn có thể thiết lập dự án trong shell hiện tại bằng cách chạy: gcloud config set project [YOUR_PROJECT_ID]

Bật API

Kubernetes và các tính năng AI không được bật theo mặc định cho các dự án mới. Việc bật các API này sẽ khởi động các dịch vụ Google Cloud cơ bản xử lý việc quản lý vùng chứa, các mô hình tạo sinh và hoạt động ghi nhật ký tập trung.

👉💻 Chạy lệnh sau trong Cloud Shell để bật các API này. Quá trình này có thể mất một phút.

gcloud services enable \
    container.googleapis.com \
    generativelanguage.googleapis.com \
    cloudresourcemanager.googleapis.com \
    logging.googleapis.com
  • container.googleapis.com: API Google Kubernetes Engine. Đây là yêu cầu bắt buộc đối với mọi thao tác ở cấp cụm, bao gồm cả việc tạo, cập nhật và xoá cụm.
  • generativelanguage.googleapis.com: API cho phép Gemini CLI giao tiếp với các mô hình ngôn ngữ lớn của Gemini để tạo văn bản và suy luận.
  • cloudresourcemanager.googleapis.com: Cần thiết để tác nhân kiểm tra siêu dữ liệu ở cấp dự án, xác minh mã dự án và quản lý quyền IAM.
  • logging.googleapis.com: Cần thiết cho việc khắc phục sự cố, vì miền này cho phép máy chủ MCP tìm nạp và phân tích nhật ký từ các vùng chứa của bạn khi có vấn đề xảy ra.

3. Định cấu hình Gemini CLI

Cloud Shell có Gemini CLI theo mặc định, nên đây là môi trường lý tưởng cho quy trình làm việc này. Bước đầu tiên là định cấu hình để nó hoạt động như một "tác nhân" có cả quyền và các công cụ cụ thể cần thiết để quản lý môi trường GKE của bạn. Bước định cấu hình này rất quan trọng vì nó thiết lập mối kết nối an toàn giữa logic của AI và cơ sở hạ tầng đám mây thực tế của bạn.

Bắt đầu Gemini CLI

Trong cửa sổ dòng lệnh Cloud Shell, hãy tạo một thư mục làm việc mới và chạy Gemini CLI. Thao tác này sẽ bắt đầu một phiên mà bạn có thể trò chuyện liên tục với mô hình. Không giống như các lệnh một lần, chế độ tương tác duy trì một cửa sổ ngữ cảnh ghi nhớ các chỉ dẫn trước đó của bạn và trạng thái của dự án.

👉💻 Chạy các lệnh sau:

mkdir -p ~/gke-lab
cd ~/gke-lab
gemini

Sau khi vào bên trong, hãy kiểm tra khả năng nhận biết cơ bản của công cụ để đảm bảo công cụ có thể nhận biết môi trường của bạn:

  • 👉💬 Câu lệnh: Which Google Cloud project is currently active in this shell?

Thao tác này có thể yêu cầu bạn xác nhận việc thực thi lệnh gcloud cho bạn, sau đó bạn có thể chấp nhận.

Bạn có thể rời khỏi giao diện này bất cứ lúc nào bằng cách nhập /quit.

Lưu ý: Nếu gặp vấn đề về hạn mức sử dụng Gemini 2.5 Pro, bạn có thể chuyển sang dùng Gemini 2.5 Flash bằng cách mở Gemini bằng

gemini -m gemini-2.5-flash

hoặc sử dụng

/model

trong giao diện.

Kết nối Tiện ích MCP của GKE

Theo mặc định, Gemini CLI là một công cụ đa năng và không có kiến thức cụ thể về cách tương tác với các cụm của bạn. Bạn phải cài đặt tiện ích GKE MCP. Tiện ích này hoạt động như một trình bổ trợ xác định một bộ công cụ và chức năng cụ thể (chẳng hạn như "liệt kê các cụm" hoặc "lấy nhật ký pod") mà mô hình có thể gọi khi cần thực hiện một tác vụ.

👉💻 Chạy các lệnh sau để cài đặt tiện ích GKE và mở lại Gemini CLI:

gemini extensions install https://github.com/GoogleCloudPlatform/gke-mcp.git
gemini

Bạn có thể xác minh rằng tính năng này đã được bật đúng cách bằng cách nhập lại Gemini CLI và nhập:

/extensions

4. Cung cấp cơ sở hạ tầng

Việc cung cấp cơ sở hạ tầng truyền thống thường liên quan đến việc tìm hiểu tài liệu phức tạp hoặc viết hàng trăm dòng mã cấu hình. Bằng cách sử dụng một tác nhân, bạn có thể tập trung vào việc mô tả các yêu cầu của mình và để AI xử lý việc dịch thuật kỹ thuật thành các lệnh gọi API chính xác. Phần này minh hoạ cách sử dụng tác nhân cho cả giai đoạn lập kế hoạch và giai đoạn tạo môi trường GKE thực tế.

Lập kế hoạch và so sánh về kỹ thuật

Trước khi tạo một cụm, bạn cần chọn một cấu trúc phù hợp với nhu cầu của mình. GKE cung cấp 2 chế độ chính: Chuẩn, trong đó bạn có toàn quyền kiểm soát các nút cơ bản và Autopilot, trong đó Google quản lý các nút và bạn thanh toán dựa trên tài nguyên mà các nhóm của bạn yêu cầu. Hãy thử một truy vấn đơn giản để hiểu rõ sự khác biệt giữa hai loại này và suy nghĩ xem nên dùng loại nào cho một trường hợp sử dụng cụ thể.

  • 👉💬 Câu lệnh: I need to run a standard 3-tier web application. Compare GKE Standard and GKE Autopilot. Focus on the operational effort for a small team and the cost structure for small workloads.

Hãy thử hỏi về các ý tưởng khác liên quan đến cơ sở hạ tầng. Điều gì sẽ xảy ra nếu bạn đang triển khai khối lượng công việc suy luận AI, cần một thứ gì đó ở quy mô rất lớn hoặc có những hạn chế phức tạp về mạng? Thử nghiệm với các câu lệnh khác.

Thực thi việc tạo cụm

Sau khi xem xét thông tin so sánh và đưa ra lựa chọn, bạn có thể hướng dẫn trợ lý tạo cụm. Tác nhân sẽ phân tích yêu cầu của bạn và gọi công cụ create_cluster từ máy chủ GKE MCP để triển khai một môi trường sẵn sàng cho hoạt động sản xuất dựa trên những yêu cầu đó.

  • 👉💬 Câu lệnh: Create a GKE Standard zonal cluster named 'gke-lab' in us-central1-a with 1 node with 4 CPUs. The cluster should have Workload Identity enabled.

Lưu ý: Việc cung cấp cụm GKE bao gồm thiết lập lớp điều khiển, mạng riêng ảo và cấu hình nút ban đầu. Quá trình này thường mất từ 8 đến 10 phút. Đừng đóng phiên Gemini CLI.

Bạn có thể hỏi về trạng thái của cụm. Thao tác này sẽ tận dụng máy chủ GKE MCP để trả về thông tin mới nhất.

  • 👉💬 Câu lệnh: Is the new GKE cluster created and ready to use, yet?

5. Triển khai và xác thực

Một lợi ích chính của việc sử dụng một tác nhân AI cho hoạt động kỹ thuật nền tảng là khả năng thực hiện các hoạt động kiểm tra và đánh giá "trước khi bay" đối với cấu hình của bạn. Thay vì triển khai một tệp kê khai và chờ tệp đó không thành công, bạn có thể sử dụng tác nhân để xác minh rằng tệp YAML của bạn có tính hợp lệ về mặt kỹ thuật và tuân thủ các chính sách bảo mật của tổ chức trước khi tệp đó đến được cụm.

Tạo tệp kê khai

Yêu cầu tác nhân tạo một tệp kê khai triển khai. Vì tác nhân hiểu rõ phiên bản và giản đồ API Kubernetes, nên tác nhân này sẽ tạo ra YAML có định dạng chính xác và bao gồm tất cả các trường cần thiết để triển khai thành công.

  • 👉💬 Câu lệnh: Generate a Kubernetes YAML manifest for an Nginx web server. I need 3 replicas. Set a memory limit of 256Mi and a CPU limit of 500m. Also, include a Service of type LoadBalancer to make it accessible via the internet. Save the manifest as web-server.yaml

Xác thực kỹ thuật và kiểm tra bảo mật

Việc tạo YAML theo cách thủ công thường dẫn đến các cấu hình chạy với nhiều đặc quyền hơn mức cần thiết hoặc thiếu các tính năng cơ bản về độ tin cậy. Bạn có thể dùng tác nhân này để kiểm tra tệp kê khai vừa tạo nhằm đảm bảo tệp đó đáp ứng các tiêu chuẩn hiện đại về tính bảo mật và khả năng phục hồi.

  • 👉💬 Câu lệnh: Review the Nginx manifest you just created. Does it include resource requests (not just limits)? Does it specify a non-root user for the container? Add a Pod Disruption Budget to ensure high availability during cluster maintenance. Make any necessary modifications to the file, and tell me what changes were made.

Triển khai thực thi

Sau khi quá trình cấp phát cụm ở phần trước hoàn tất, hãy yêu cầu Gemini CLI áp dụng cấu hình cho cụm mới của bạn. Tác nhân sẽ sử dụng các công cụ của mình để giao tiếp với máy chủ API Kubernetes và tạo các tài nguyên được yêu cầu.

  • 👉💬 Câu lệnh: Deploy the audited Nginx manifest to the 'gke-lab' cluster. Use the kubectl command to do this.

Kiểm tra trạng thái theo thời gian thực

Thay vì chạy nhiều lệnh kubectl get pods hoặc kubectl describe, bạn có thể yêu cầu tác nhân cung cấp bản tóm tắt bằng ngôn ngữ tự nhiên về tiến trình triển khai.

  • 👉💬 Câu lệnh: Are the Nginx pods running? Provide the external IP address assigned to the LoadBalancer once it is available.

Bạn gặp phải vấn đề?

Nếu các dịch vụ Nginx có vẻ không triển khai thành công, hãy thử khắc phục vấn đề bằng Gemini CLI. Công cụ này sẽ giúp bạn!

  • 👉💬 Câu lệnh: The Nginx deployment doesn't start up as expected. Can you help troubleshoot?

6. Bảo trì và khắc phục sự cố

Một trong những khía cạnh có giá trị nhất của nền tảng dựa trên AI là khả năng thực hiện các hoạt động "Ngày 2". Khi một hệ thống gặp lỗi, thách thức thường là tìm kiếm trong hàng nghìn dòng nhật ký để tìm ra lỗi quan trọng. Bằng cách sử dụng Gemini CLI với MCP, bạn có thể cho phép tác nhân tổng hợp nhật ký, sự kiện và thông báo trạng thái để cung cấp cho bạn thông tin chẩn đoán cấp cao và một đường dẫn cụ thể để giải quyết vấn đề.

Chèn lỗi theo cách thủ công

Để kiểm thử khả năng chẩn đoán của tác nhân, chúng ta sẽ cố ý tạo ra một trạng thái lỗi. Trong một thẻ thiết bị đầu cuối riêng, hãy chạy lệnh này để cập nhật việc triển khai bằng một hình ảnh vùng chứa không tồn tại. Thao tác này mô phỏng một lỗi thường gặp của con người: lỗi chính tả trong thẻ trong trình chứa.

👉💻 Chạy lệnh sau bên ngoài Gemini CLI:

kubectl set image deployment/nginx nginx=nginx:invalid-version-xyz123

Lưu ý: Có thể chế độ triển khai của bạn không được gọi chính xác là "nginx". Bạn có thể xác minh điều này bằng cách chạy

kubectl get deployments

Kubernetes sẽ cố gắng kéo hình ảnh này, nhưng không thành công vì không tìm thấy thẻ và các nhóm sẽ chuyển sang trạng thái ImagePullBackOff.

Phân tích bằng Gemini CLI

Quay lại phiên Gemini CLI. Thay vì tìm kiếm trong bảng điều khiển Cloud Logging theo cách thủ công, hãy yêu cầu tác nhân tìm và giải thích lỗi.

  • 👉💬 Câu lệnh: The Nginx deployment on my 'gke-lab' cluster has stopped working. Use your tools to inspect the cluster state, check the recent events, and explain exactly why the pods are failing to start.

Điều gì xảy ra ở đây: Gemini CLI sẽ nhận thấy rằng quá trình triển khai không ổn định. Sau đó, nó sẽ sử dụng các công cụ có sẵn để kiểm tra những pod không hoạt động. Nhân viên hỗ trợ sẽ xác định lỗi kéo, giải thích rằng thẻ không hợp lệ và đề xuất bạn quay lại một hình ảnh tốt đã biết.

Bảo trì và đánh giá rủi ro

Việc bảo trì nền tảng bao gồm cả việc chuẩn bị trước cho các bản nâng cấp và ngừng sử dụng. Bạn có thể yêu cầu tác nhân đóng vai trò là một SRE và đánh giá tình trạng cũng như tuổi thọ của cụm.

  • 👉💬 Câu lệnh: Is my cluster 'gke-lab' running the latest version of GKE? Check for available upgrades and let me know if any of my current resources use deprecated APIs that would break during an upgrade.

Điều này có thể dẫn đến việc Gemini gọi các công cụ máy chủ GKE MCP, chẳng hạn như công cụ trạng thái và đề xuất cụm.

7. Kết luận

Phòng thí nghiệm này đã minh hoạ một cách mới để tương tác với cơ sở hạ tầng đám mây. Bằng cách tích hợp một tác nhân AI trực tiếp vào quy trình làm việc trên thiết bị đầu cuối thông qua Gemini CLI và MCP, bạn đã chuyển từ người viết lệnh thủ công sang người chỉ đạo ý định. Cách tiếp cận này cho phép các nhóm nền tảng mở rộng chuyên môn của mình bằng cách cung cấp một giao diện thông minh xử lý các chi tiết lặp đi lặp lại và dễ xảy ra lỗi trong quá trình quản lý Kubernetes, trong khi kỹ sư là con người tập trung vào kiến trúc cấp cao và giải quyết vấn đề.

Tóm tắt về phòng thí nghiệm

  • Khả năng kết nối: Bạn đã kết nối thành công Gemini CLI với GKE API bằng Giao thức ngữ cảnh mô hình, giúp mô hình AI có thể trực tiếp nắm bắt trạng thái dự án của bạn.
  • Cơ sở hạ tầng: Bạn đã sử dụng ngôn ngữ tự nhiên để thiết kế và cung cấp một cụm GKE, nhờ đó không cần phải ghi nhớ các cờ CLI phức tạp.
  • Phát triển: Bạn đã tạo, kiểm tra tính bảo mật và triển khai các tài nguyên Kubernetes mà không cần chỉnh sửa YAML theo cách thủ công, đảm bảo rằng bạn đã tuân thủ các phương pháp hay nhất ngay từ đầu.
  • Hoạt động: Bạn đã sử dụng AI để phân tích nguyên nhân gốc rễ của một hoạt động triển khai bị lỗi, giúp giảm đáng kể thời gian trung bình để khôi phục bằng cách cho phép AI tóm tắt nhật ký và sự kiện.

Dọn dẹp

Để tránh bị tính phí liên tục cho các tài nguyên được tạo trong bài tập thực hành này trên Google Cloud, bạn có thể hướng dẫn tác nhân xoá cụm.

Lưu ý: Bỏ qua bước này nếu bạn dự định sử dụng lại cụm GKE cho một phòng thí nghiệm khác.

  • 👉💬 Câu lệnh: Delete the 'gke-lab' cluster and any associated resources.

Các bước tiếp theo

Đề xuất đọc thêm: