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

1. Giới thiệu

Bài tập thực hành này giới thiệu về mặt kỹ thuật cách 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 quá trình quản lý GKE truyền thống, các nhà khai thác dịch vụ sẽ dịch 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 các tệp kê khai YAML bằng văn bản theo cách thủ công. Bài tập thực hành 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 quá trình 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 phức tạp 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ụ và quy trình làm việc nội bộ cho phé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 sự phức tạp về 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 vàng tiêu 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 việc 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 từ cửa sổ dòng lệnh. Không giống như chatbot dựa trên web tiêu chuẩn, 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 làm việc hiện có dựa trên shell. Công cụ này cho phép bạn chuyển trực tiếp đầu ra từ các lệnh khác vào mô hình và thực thi các hướng dẫn mà không cần rời khỏi môi trường dòng lệnh.
  • 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ể nhìn thấy 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 mặt bạn. Công cụ này đóng vai trò là cầu nối giữa công cụ suy luận của mô hình và API GKE thực tế.

Mục tiêu của bài tập thực hành

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

  1. Định cấu hình môi trường: Truy cập vào 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 câu lệnh 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 tệp kê khai 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 của AI để tổng hợp nhật ký và sự kiện nhằm xác định nguyên nhân gốc rễ của lỗi triển khai và đề xuất các biện pháp khắc phục kỹ thuật cụ thể.

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

Bạn phải định cấu hình đúng cách môi trường Google Cloud thì Gemini CLI mới có thể tương tác với các tài nguyên của bạn. Việc thiết lập này đảm bảo rằng dự án của bạn có các quyền chính xác 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 bài tập thực hành này, chúng ta sẽ sử dụng Cloud Shell, một môi trường dòng lệnh dựa trên trình duyệt do Google Cloud cung cấp. Chúng ta sử dụng Cloud Shell vì môi trường này được định cấu hình sẵn với tất cả các công cụ cần thiết, bao gồm Google Cloud CLI (gcloud), kubectl và Gemini CLI, giúp bạn tiết kiệm thời gian cài đặt các công cụ này trên máy 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ư lời nhắc dòng lệnh >_).
  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 Continue (Tiếp tục).

Chọn một dự án

Trong dòng lệnh Cloud Shell, hãy đảm bảo 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 bài tập thực hành này trong Bảng điều khiển.
  2. Ghi lại Mã dự án. Bạn có thể đặt dự án trong shell hiện tại bằng cách chạy: gcloud config set project [YOUR_PROJECT_ID]

Bật API

Các tính năng của Kubernetes và 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 chạy các dịch vụ cơ bản của Google Cloud xử lý việc quản lý vùng chứa, mô hình tạo sinh và 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. API này là bắt buộc đối với mọi hoạt động ở 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 Gemini để tạo văn bản và suy luận.
  • cloudresourcemanager.googleapis.com: Bắt buộc để 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ì API 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ó sự cố xảy ra.

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

Cloud Shell bao gồm Gemini CLI theo mặc định, khiến đây trở thành 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 để công cụ này 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. Bước định cấu hình này rất quan trọng vì nó thiết lập 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 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 hoạt động 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 hướng dẫn trước đó 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ụ này có thể nhìn thấy môi trường của bạn:

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

Công 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 bất cứ lúc nào bằng cách nhập /quit.

Lưu ý: Nếu gặp vấn đề về dung lượng với Gemini 2.5 Pro, bạn có thể chuyển sang Gemini 2.5 Flash bằng cách mở Gemini với

gemini -m gemini-2.5-flash

hoặc sử dụng

/model

lệnh trong giao diện.

Kết nối tiện ích GKE MCP

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 tập hợp cụ thể các công cụ và hàm (chẳng hạn như "list clusters" (liệt kê cụm) hoặc "get pod logs" (nhận 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 tiện ích 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 điều hướng 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 và để AI xử lý việc chuyển đổi 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à quá trình tạo môi trường GKE thực tế.

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

Trước khi tạo một cụm, bạn cần chọn một kiến trúc phù hợp với nhu cầu của mình. GKE cung cấp 2 chế độ chính: Standard (Tiêu chuẩn), nơi bạn có toàn quyền kiểm soát các nút cơ bản và Autopilot (Tự động lái), nơi Google quản lý các nút và bạn thanh toán dựa trên các tài nguyên mà các pod của bạn yêu cầu. Hãy thử một truy vấn đơn giản để hiểu sự khác biệt giữa 2 chế độ và suy nghĩ xem nên sử dụng chế độ 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 về 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ó các ràng buộc phức tạp về mạng? Thử nghiệm các câu lệnh khác.

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

Sau khi xem xét so sánh và đưa ra lựa chọn, bạn có thể hướng dẫn tác nhân xây dựng 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 các 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 việc thiết lập mặt phẳng điều khiển, mạng riêng ảo và cấu hình nút ban đầu, thường mất 8–10 phút. Không đóng phiên Gemini CLI.

Bạn có thể hỏi về trạng thái cụm, thao tác này sẽ tận dụng lại máy chủ GKE MCP để trả về thông tin cập 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 tác nhân AI cho kỹ thuật nền tảng là khả năng thực hiện các hoạt động kiểm tra và kiểm tra "trước chuyến bay" trên cấu hình của bạn. Thay vì triển khai tệp kê khai và đợi tệp đó gặp lỗi, bạn có thể sử dụng tác nhân để xác minh rằng YAML của bạn có tính 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ụm.

Tạo tệp kê khai

Yêu cầu tác nhân tạo tệp kê khai triển khai. Vì tác nhân hiểu rõ về phiên bản và giản đồ API Kubernetes, nên tác nhân sẽ tạo YAML được định dạng đúng cách 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ể sử dụng tác nhân để 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ề 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.

Thực thi triển khai

Sau khi quá trình cung cấp cụm từ 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. 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 thông tin 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 sự cố bằng Gemini CLI. Công cụ này luôn sẵn sàng hỗ trợ 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 một 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 lộ trình cụ thể để giải quyết.

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

Để kiểm tra khả năng chẩn đoán của tác nhân, chúng ta sẽ cố tình tạo trạng thái lỗi. Trong một thẻ dòng lệnh riêng, hãy chạy lệnh này để cập nhật quá trình triển khai bằng 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 ý: Quá trình triển khai của bạn có thể 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, không thành công vì không tìm thấy thẻ và các pod 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 đó, công cụ này sẽ sử dụng các công cụ có sẵn để kiểm tra các pod bị lỗi. Tác nhân 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 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 việc luôn đi trước 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à 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 như công cụ trạng thái cụm và công cụ đề xuất.

7. Kết luận

Bài tập thực hành 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 trực tiếp tác nhân AI vào quy trình làm việc của dòng lệnh thông qua Gemini CLI và MCP, bạn đã chuyển từ vai trò người viết lệnh theo cách thủ công sang vai trò người chỉ đạo ý định. Phương pháp này cho phép các nhóm nền tảng mở rộng quy mô kiến thức chuyên môn 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ư 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 bài tập thực hành

  • Khả năng kết nối: Bạn đã kết nối thành công Gemini CLI với API GKE bằng Giao thức ngữ cảnh mô hình, giúp mô hình AI có thể nhìn thấy trực tiếp 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, tránh phải ghi nhớ các cờ CLI phức tạp.
  • Phát triển: Bạn đã tạo, kiểm tra 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 các phương pháp hay nhất đã được tuân thủ 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 quá trình triển khai bị lỗi, 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

Để ngăn chặn các khoản phí Google Cloud 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, 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 bài tập thực hành khác.

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

Các bước tiếp theo

Nội dung bạn nên đọc thêm: