Видео может быть заблокировано из-за расширений браузера. В статье вы найдете решение этой проблемы.
- Пример файла app-deployment.yaml
- Пример файла app-service.yaml
- Пример файла env-configmap.yaml
- Пример файла docker-compose.yml
- Примеры команд
Ниже приведён пример файлов конфигурации Kubernetes для деплоя приложения на два сервера с подключением Rollbar.
Пример файла app-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
labels:
io.kompose.service: app
name: app
spec:
# Устанавливаем количество реплик
replicas: 5
selector:
matchLabels:
io.kompose.service: app
strategy: {}
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
labels:
io.kompose.service: app
spec:
containers:
- env:
- name: ROLLBAR_TOKEN
valueFrom:
# Указываем, что данную переменную нужно брать из секретов
secretKeyRef:
key: ROLLBAR_TOKEN
name: app-secret
- name: SERVER_MESSAGE
valueFrom:
configMapKeyRef:
key: SERVER_MESSAGE
name: env
image: hexlet/hexlet-app
imagePullPolicy: ""
name: hexlet-app
ports:
- containerPort: 3000
resources: {}
restartPolicy: Always
serviceAccountName: ""
volumes: null
status: {}
Пример файла app-service.yaml
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
labels:
io.kompose.service: app
name: app
spec:
# Указываем тип балансера
type: LoadBalancer
ports:
- name: "80"
port: 80
targetPort: 3000
selector:
io.kompose.service: app
status:
loadBalancer: {}
Пример файла env-configmap.yaml
apiVersion: v1
data:
SERVER_MESSAGE: Hello from Kubernetes
kind: ConfigMap
metadata:
creationTimestamp: null
labels:
io.kompose.service: app-env
name: env
Пример файла docker-compose.yml
# Версия схемы, которую мы используем.
# Зависит от установленной версии docker
# https://docs.docker.com/compose/compose-file/
version: "3"
services:
app: # Имя сервиса
image: hexlet/hexlet-app
container_name: hexlet-app
restart: always
env_file: .env # Файл, который содержит переменные окружения
ports: # Проброс портов
- 80:3000
# Присваиваем переменные
environment:
- SERVER_MESSAGE=$HEXLET_SERVER_MESSAGE
- ROLLBAR_TOKEN=$HEXLET_ROLLBAR_TOKEN
Примеры команд
# Перезапуск подов приложения
kubectl -n service rollout restart deployment app
# Таким образом можно вывести все поды кластера
kubectl --kubeconfig ~/hexlet-k8s-homework-kubeconfig.yaml get pods
# Применяем изменения к кластеру передавая kubectl файлы конфигурации
kubectl --kubeconfig ~/hexlet-k8s-homework-kubeconfig.yaml apply -f app-deployment.yaml,app-service.yaml,env-configmap.yaml,secret.yml
# Вывести все поды кластера с подробностями
kubectl get pods -o wide
# Вывести все сервисы кластера
kubectl --kubeconfig ~/hexlet-k8s-homework-kubeconfig.yaml get services
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты