Учебник по Docker и Kubernetes

1 lug 2023 3 min di lettura
Учебник по Docker и Kubernetes
Indice dei contenuti

Введение

Docker — это платформа, которая упрощает развертывание программного обеспечения, позволяя вам объединить приложение с его средой выполнения в единый пакет, называемый контейнером. Это гарантирует, что приложение будет работать одинаково независимо от того, где оно развернуто.

Kubernetes (часто сокращенно K8s) — это система оркестрации контейнеров с открытым исходным кодом. Он используется для автоматизации развертывания, масштабирования и управления контейнерными приложениями, например созданными с помощью Docker.

Предпосылки

Шаг 1: Docker — создание образа

Во-первых, давайте создадим простой Dockerfile для приложения Node.js.

Создайте новый каталог на локальном компьютере и перейдите в него.

mkdir my-node-app && cd my-node-app

Создайте файл с именем Dockerfile.

touch Dockerfile

Откройте Dockerfile и добавьте следующий код:

# Use an official Node.js runtime as the base image
 FROM node:14

 # Set the working directory in the container to /app
 WORKDIR /app

 # Copy package.json and package-lock.json to the working directory
 COPY package*.json./# Install the application dependencies
 RUN npm install

 # Copy the rest of your application's source code to the working directory
 COPY..

 # Make the container listen on port 8080 at runtime
 EXPOSE 8080

 # Define the command to run the app
 CMD [ "node", "server.js" ]

Создайте образ Docker с помощью команды docker build.

docker build -t my-node-app.

Шаг 2: Docker — запуск контейнера

После сборки образа вы можете запустить его как контейнер с помощью docker run.

docker run -p 8080:8080 -d my-node-app

Эта команда указывает Docker запустить контейнер с образом my-node-app, сопоставить порт 8080 внутри контейнера Docker с портом 8080 на хост-компьютере и запустить контейнер в фоновом режиме (отключенный режим).

Шаг 3: Kubernetes — создание развертывания

Kubernetes управляет контейнерами Docker через такие объекты, как Pods и Deployments. Pod — это самый маленький и простой объект Kubernetes. Он представляет собой один экземпляр работающего процесса в кластере и может содержать один или несколько контейнеров.

Создайте файл с именем deployment.yaml со следующим содержимым:

apiVersion: apps/v1
 kind: Deployment
 metadata:
 name: my-node-app
 spec:
 replicas: 3
 selector:
 matchLabels:
 app: my-node-app
 template:
 metadata:
 labels:
 app: my-node-app
 spec:
 containers:
 - name: my-node-app
 image: my-node-app:latest
 ports:
 - containerPort: 8080

Примените это развертывание к кластеру Kubernetes с помощью команды kubectl apply.

kubectl apply -f deployment.yaml

Это развертывание создает три реплицированных модуля, которые запускают контейнер my-node-app. Если модуль выходит из строя, развертывание автоматически воссоздает его, чтобы поддерживать счет до трех.

Шаг 4: Kubernetes — раскрытие вашего развертывания

После запуска развертывания вы можете захотеть открыть его в Интернете. В Kubernetes вы можете сделать это с помощью службы, которая представляет собой абстракцию, определяющую набор подов и политику доступа к ним.

Создайте файл с именем service.yaml со следующим содержимым:

apiVersion: v1
 kind: Service
 metadata:
 name: my-node-app
 spec:
 selector:
 app: my-node-app
 ports:
 - protocol: TCP
 port: 80
 targetPort: 8080
 type: LoadBalancer

Примените эту службу к вашему кластеру Kubernetes с помощью команды kubectl apply.

kubectl apply -f service.yaml

Эта служба предоставляет развертывание my-node-app за пределами кластера. Тип «LoadBalancer» обеспечивает доступ к Сервису через выделенный сетевой IP-адрес в облаке, если он поддерживается вашим облачным провайдером.

Шаг 5: Kubernetes — проверка развертывания и обслуживания

Чтобы убедиться, что развертывание работает должным образом, выполните следующую команду:

kubectl get deployments

Вы должны увидеть развертывание my-node-app с тремя репликами.

Точно так же для проверки службы используйте следующую команду:

kubectl get services

Вы должны увидеть службу «my-node-app» с внешним IP-адресом. Вы можете использовать этот IP-адрес для доступа к вашему приложению из веб-браузера.

Заключение

Вот и все! Это очень простой пример, но он должен дать вам представление о том, как использовать Docker и Kubernetes для контейнеризации приложения и развертывания его в кластере Kubernetes.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.