Minikube + Cloud Code + VSCode

cloudFun

Các developer có thể triển khai các Docker containers của mình đến cluster Kubernetes cục bộ trên laptop bằng minikube. Sau đó, có thể sử dụng tiện ích mở rộng Google Cloud Code cho Visual Studio Code.
Sau đó có thể thực hiện thay đổi thời gian thực cho code và ứng dụng sẽ tự động triển khai trong nền.
1. Cài đặt kubectl
https://kubernetes.io/docs/tasks/tools/install-kubectl/
2. Cài đặt minikube – https://kubernetes.io/docs/tasks/tools/install-minikube/
o Người dùng Windows được khuyên nên sử dụng cách thức Chocolaty
3. Cấu hình Google Cloud Code để sử dụng minikube.
4. Triển khai ứng dụng vào minikube cluster cục bộ trong Visual Studio Code
5. Đảm bảo rằng đã thêm container registry trong tệp vscode\launch.json
Ngoài ra, đảm bảo đang mở Visual Studio Code run as Administrator.
Sau khi được triển khai, có thể thay đổi code và nó sẽ tự động được triển khai vào cluster.

Tạo một minikube cluster trong Windows (Hyper-V) và triển khai một máy chủ web đơn giản
Mã:
minikube start --vm-driver=hyperv
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl get pod
minikube service hello-minikube --url
minikube dashboard
Lấy đầu ra từ minikube hello-minikube –url và mở bằng ứng dụng / web.
Phụ lục
Bắt đầu minikube cluster và triển khai một Container mặc định
image-1.png


Triển khai VS Code

• Thiết lập Container Registry trong .vscode\launch.json (chi tiết bên dưới)
• Nhấp vào Cloud Code ở khay dưới cùng
• Nhấp vào "Run on Kubernetes "
• Mở một command prompt ( nhớ rằng phải mở dạng run as administrator)
.vscode \ launch.json:
Mã:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Run on Kubernetes",
            "type": "cloudcode.kubernetes",
            "request": "launch",
            "skaffoldConfig": "${workspaceFolder}\\skaffold.yaml",
            "watch": true,
            "cleanUp": true,
            "portForward": true,
            "imageRegistry": "romikocontainerregistry/minikube"
        },
        {
            "podSelector": {
                "app": "node-hello-world"
            },
            "type": "cloudcode",
            "language": "Node",
            "request": "attach",
            "debugPort": 9229,
            "localRoot": "${workspaceFolder}",
            "remoteRoot": "/hello-world",
            "name": "Debug on Kubernetes"
        }
    ]
}
image-2.png


Mã:
minikube dashboard
image-3.png


Có thể thấy service mới đang được triển khai bởi tiện ích mở rộng VSCode Cloud Code. Bất cứ khi nào code được thay đổi, nó sẽ tự động triển khai.

Mã:
minikube service nodejs-hello-world-external --url
Lệnh trên sẽ cung cấp URL
Nếu bây giờ văn bản được thay đổi thành "Hello, world!" nó sẽ tự động triển khai. Chỉ cần làm mới trình duyệt mà thôi.
Trong thanh trạng thái, có thể thấy các triển khai khi cập nhật code.
image-4.png


Debug
Khi đã triển khai ứng dụng lên minikube, có thể bắt đầu debug. Điều này là khá là mới mẻ. Về cơ bản, môi trường phát triển bây giờ là một Kubernetes stack đầy đủ với debug tool đính kèm cho phép trải nghiệm liền mạch.
Xem thêm
https://cloud.google.com/code/docs/vscode/debug#nodejs để biết thêm thông tin.
Trong tệp launch.json, cổng debug đã được thiết lập. Dưới đây, cổng 9229 đang được sử dụng. Vì vậy, tất cả những gì cần làm là khởi động ứng dụng với:
Mã:
CMD [“node”, “–inspect=9229”, “app.js”]
Hoặc, trong tệp launch.json, có thể đặt "args": ["-inspect=9229"].Điều này chỉ được hỗ trợ trong loại yêu cầu khởi chạy.
Ngoài ra, đảm bảo Pod Selector là chính xác. Có thể sử dụng tên pod hoặc nhãn. Có thể xác nhận tên nhóm bằng bảng điều khiển minikube.
http://127.0.0.1:61668/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/pod?namespace=default
image-5.png


Mã:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Run on Kubernetes",
            "type": "cloudcode.kubernetes",
            "request": "launch",
            "skaffoldConfig": "${workspaceFolder}\\skaffold.yaml",
            "watch": true,
            "cleanUp": true,
            "portForward": true,
            "imageRegistry": "dccausbcontainerregistry/minikube",
            "args": ["--inspect=9229"]
        },
        {
            "name": "Debug on Kubernetes",
            "podSelector": {
                "app": "nodejs-hello-world"
            },
            "type": "cloudcode",
            "language": "Node",
            "request": "attach",
            "debugPort": 9229,
            "localRoot": "${workspaceFolder}",
            "remoteRoot": "/hello-world"
        }
    ]
}
Bây giờ chúng ta có thể làm như sau
1. Nhấp vào Run trên Kubernetes
2. Đặt Break Point
3. Nhấp vào Debug trên Kubernetes

image-6.png


Lời khuyên
• Chạy dấu nhắc lệnh, PowerShell và VSCode với tư cách Quản trị viên
• Sử dụng Choco cho cài đặt Windows
• Nếu muốn reboot/sleep/shut down. Hãy chạy:
Mã:
minikube stop
Nguồn: dzone
 
Top