Нажмите здесь для оригинального поста
Предварительные условия
Не будет прикрывать процесс установки Docker Desktop и включить WSL2 Backend Здесь в этом блоге. Предположение состоит в том, что читатели могут понять процесс из данных ресурсов самостоятельно. Я мог бы охватить эти темы подробно, если в будущих блогах достаточно спроса.
Убедитесь, что вы работаете Контейнеры Linux Backend
в Docker Desktop после установки его.
Minikube Start.
Миникуба Настройки локальной кластеры Kubernetes для разработки на локальном хосте (в данном случае Windows).
Поскольку мы будем использовать локальный докер изображения и обход необходимости подтолкнуть в реестр Docker, а затем указывать то же самое во время развертывания на Kubernetes, INSECURE-реестр = 10.0.0.0/24
используется.
Почему 10.0.0.0/24.
? Проверить
Запустите следующую команду, чтобы запустить локальную кластер Kubernetes в PowerShell (предпочтительно администратор PowerShell)
minikube start --insecure-registry="10.0.0.0/24"
Образец вывода
❯ minikube start --insecure-registry="10.0.0.0/24" * minikube v1.18.1 on Microsoft Windows 10 Pro 10.0.21332 Build 21332 * Using the docker driver based on existing profile * Starting control plane node minikube in cluster minikube * Restarting existing docker container for "minikube" ... * Preparing Kubernetes v1.20.2 on Docker 20.10.3 ... * Verifying Kubernetes components... - Using image kubernetesui/dashboard:v2.1.0 - Using image kubernetesui/metrics-scraper:v1.0.4 - Using image gcr.io/k8s-minikube/storage-provisioner:v4 * Enabled addons: storage-provisioner, dashboard, default-storageclass * Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
Создать приложение React
Убедитесь, что узел
и NPM
установлены в среде Windows
❯ node -v v15.11.0 ❯ npm -v 7.6.3
потом использовать NPX Create-ract-App Test-ract-app
Чтобы создать тестовое реагирование
❯ npx create-react-app test-react-app Need to install the following packages: create-react-app Ok to proceed? (y) y Creating a new React app in D:\work\test-react-app. Installing packages. This might take a couple of minutes. Installing react, react-dom, and react-scripts with cra-template... yarn add v1.22.4 [1/4] Resolving packages... [2/4] Fetching packages...
Наконец, проверьте, что приложение работает как ожидалось
Настройка локальной среды Docker Minikube
Запустите следующую команду, чтобы установить локальную конфигурацию для облегчения итерации разработки, используя локальные изображения докера.
Примечание Это остается местным к вашему терминалу PowerShell, в котором мы запускаем следующую команду
& minikube -p minikube docker-env | Invoke-Expression
Для любого любопытных, беги Minikube Docker-Env
чтобы увидеть фактические команды, которые получают бегать
❯ minikube docker-env $Env:DOCKER_TLS_VERIFY = "1" $Env:DOCKER_HOST = "tcp://127.0.0.1:52175" $Env:DOCKER_CERT_PATH = "C:\Users\Naren\.minikube\certs" $Env:MINIKUBE_ACTIVE_DOCKERD = "minikube" # To point your shell to minikube's docker-daemon, run: # & minikube -p minikube docker-env | Invoke-Expression
Докерейте приложение React
Простейший способ создания докера изображения приложения RACT — добавить следующие файлы в корню папки приложения (репозиторий в случае GIT)
Dockerfile
FROM node:10-alpine as build-step RUN mkdir /app WORKDIR /app COPY package.json /app RUN npm install COPY . /app RUN npm run build FROM nginx:1.17.1-alpine COPY --from=build-step /app/build /usr/share/nginx/html
.dockerignore.
/node_modules /build .git *.md .gitignore
Docker Создайте изображение
docker build -t test-react-app .
Проверьте наличие построенного изображения
❯ docker images test-react-app REPOSITORY TAG IMAGE ID CREATED SIZE test-react-app latest e81a494ead2b About a minute ago 21.1MB
Kubernetes развертывание
А Развертывание
и Сервис
Ресурсы необходимы для развертывания приложения RACT на кластере Kubernetes. Мы можем комбинировать обе спецификации в одиночном Ямл
Файл, отделяя их с помощью ----
- Соблюдайте
imagepullpolicy
Атрибут, помеченный как никогда не указывает, что не смотрите на реестр Docker для потягиванияизображение
называетсяТестовое реагирование
- Также мы будем использовать простейшую
Сервис
называетсяNodePort
Чтобы сопоставить порт узла в кластере Kubernetes к приложениям порт
Развертывание.ЯМЛ
kind: Deployment apiVersion: apps/v1 metadata: name: test-react-app spec: replicas: 1 selector: matchLabels: app: test-react-app template: metadata: labels: app: test-react-app spec: containers: - name: test-react-app image: test-react-app imagePullPolicy: Never ports: - containerPort: 80 restartPolicy: Always --- kind: Service apiVersion: v1 metadata: name: test-react-app spec: type: NodePort ports: - port: 80 targetPort: 80 protocol: TCP nodePort: 32000 selector: app: test-react-app
Развертывать
Мы используем Kubectl Apply -F
Развернуть оба Развертывание и оказание услуг
kubectl apply -f .\deployment.yaml
Образец вывода
❯ kubectl apply -f .\deployment.yaml deployment.apps/test-react-app created service/test-react-app created
Проверьте работу стручка
Убедитесь, что используются Pods, использующие Kubectl Получить стручки
❯ kubectl get pods NAME READY STATUS RESTARTS AGE test-react-app-9bf9cbcdb-h9zvj 1/1 Running 0 12s
Доступ к приложению React
Найти URL-адрес сервиса
Мы используем Миникуба
Чтобы узнать URL-адрес сервиса для приложения развернутого реагирования
minikube service test-react-app --url
Образец вывода
❯ minikube service test-react-app --url 🏃 Starting tunnel for service test-react-app. |-----------|----------------|-------------|------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|----------------|-------------|------------------------| | default | test-react-app | | http://127.0.0.1:62352 | |-----------|----------------|-------------|------------------------| http://127.0.0.1:62352 ❗ Because you are using a Docker driver on windows, the terminal needs to be open to run it.
Откройте приложение в браузере
Местная приборная панель Kubernetes
Все время мы можем увидеть эффекты работы любого kubectl
Команды в Кубернетах Местная приборная панель
minikube dashboard
Образец вывода
❯ minikube dashboard 🔌 Enabling dashboard ... ▪ Using image kubernetesui/dashboard:v2.1.0 ▪ Using image kubernetesui/metrics-scraper:v1.0.4 🤔 Verifying dashboard health ... 🚀 Launching proxy ... 🤔 Verifying proxy health ... 🎉 Opening http://127.0.0.1:56135/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
Открою приборную панель на новой вкладке
Очистка
Уборка Развертывание
и Сервис
используя следующую команду
kubectl delete -f .\deployment.yaml
Закрыть вниз Миникуба
(локальный кластер K8S) и удалить
minikube stop minikube delete
Оригинал: «https://dev.to/narenandu/running-a-react-app-on-local-kubernetes-cluster-on-windows-10-3mi6»