Как разработчик, вы можете развернуть свои контейнеры Docker в локальном кластере Kubernetes на своем ноутбуке, используя minikube . Затем вы можете использовать расширение Google Cloud Code для кода Visual Studio.
Затем вы можете вносить изменения в код в реальном времени, и приложение будет автоматически развертываться в фоновом режиме.
- Установите kubectl — https://kubernetes.io/docs/tasks/tools/install-kubectl/
- Установить миникубе — https://kubernetes.io/docs/tasks/tools/install-minikube/
- Для пользователей Windows, я рекомендую подход Chocolaty
- Настройте Google Cloud Code для использования мини-куба.
- Разверните свое приложение в локальном кластере мини-кубов в коде Visual Studio
- Убедитесь, что вы добавили реестр вашего контейнера в файл .vscode \ launch.json — см. Приложение
Также убедитесь, что вы используете Visual Studio Code от имени администратора.
После развертывания вы можете внести изменения в свой код, и он будет автоматически развернут в кластере.
Не совсем то, что вы ищете? Тогда посмотрите
нашу коллекцию наших лучших статей о Kubernetes .
Создайте кластер мини-кубов в Windows (Hyper-V) и разверните простой веб-сервер
Оболочка
x
1
minikube start --vm-driver=hyperv
2
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
3
kubectl expose deployment hello-minikube --type=NodePort --port=8080
4
kubectl get pod
5
minikube service hello-minikube --url
6
minikube dashboard
Получите выходные данные из мини-куба hello-minikube –url
и просмотрите ваше веб-приложение / сервис.
аппендикс
Запуск кластера minikube и развертывание контейнера по умолчанию
VS Code Deployment
- Настройте свой реестр контейнеров в
.vscode\launch.json
(подробно описано ниже) - Нажмите Cloud Code в нижнем трее
- Нажмите «Бежать на Куберне»
- Откройте отдельную командную строку от имени администратора
.vscode \ launch.json:
JSON
x
1
{
2
"version": "0.2.0",
3
"configurations": [
4
{
5
"name": "Run on Kubernetes",
6
"type": "cloudcode.kubernetes",
7
"request": "launch",
8
"skaffoldConfig": "${workspaceFolder}\\skaffold.yaml",
9
"watch": true,
10
"cleanUp": true,
11
"portForward": true,
12
"imageRegistry": "romikocontainerregistry/minikube"
13
},
14
{
15
"podSelector": {
16
"app": "node-hello-world"
17
},
18
"type": "cloudcode",
19
"language": "Node",
20
"request": "attach",
21
"debugPort": 9229,
22
"localRoot": "${workspaceFolder}",
23
"remoteRoot": "/hello-world",
24
"name": "Debug on Kubernetes"
25
}
26
]
27
}
Оболочка
xxxxxxxxxx
1
minikube dashboard
Мы видим, что наш новый сервис разворачивается с помощью расширения VSCode Cloud Code. Всякий раз, когда мы вносим изменения в код, он автоматически развертывается.
Оболочка
x
1
minikube service nodejs-hello-world-external --url
Приведенная выше команда даст нам URL для просмотра веб-приложения.
Если я сейчас изменю текст на «Привет, мир!» он будет автоматически развернут. Просто обновите браузер.
Здесь, в строке состояния, мы можем видеть развертывания при обновлении кода.
Отладка
После развертывания приложения в Minikube вы можете начать отладку. Это довольно круто. По сути, ваша среда разработки теперь представляет собой полный стек Kubernetes со встроенной отладкой, обеспечивающей беспроблемную работу.
Проверьте https://cloud.google.com/code/docs/vscode/debug#nodejs для получения дополнительной информации.
Вы заметите, что в файле launch.json мы настраиваем порт отладчика и т. Д. Ниже я использую порт 9229. Поэтому все, что мне нужно сделать, это запустить приложение с помощью:
Оболочка
x
1
CMD [“node”, “–inspect=9229”, “app.js”]
Or, in the launch.json file, I can set set "args": ["-inspect=9229"]
. This is only supported in launch request type.
Also, ensure the Pod Selector is correct. You can use the pod name or label. You can confirm the pod name using the minikube dashboard.
x
{
"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"
}
]
}
Now we can do the following
- Click Run on Kubernetes
- Set a Break Point
- Click Debug on Kubernetes
Tips
- Run the command prompt, PowerShell and VSCode as Administrator
- Use Choco for Windows installs
- If you are going to reboot/sleep/shut down your machine. Please run:
xxxxxxxxxx
minikube stop
If you do not, you risk corrupting Hyper-V and you will get all sorts of issues.
Further Reading
Running Spring Boot Application on Kubernetes Minikube on Windows (Part 1)