0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p><strong>Ниже приведён пример файлов конфигурации Kubernetes для деплоя приложения на два сервера с подключением<a>Rollbar</a>.</strong></p>
1
<p><strong>Ниже приведён пример файлов конфигурации Kubernetes для деплоя приложения на два сервера с подключением<a>Rollbar</a>.</strong></p>
2
<h2>Пример файла app-deployment.yaml</h2>
2
<h2>Пример файла app-deployment.yaml</h2>
3
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: {}<h2>Пример файла app-service.yaml</h2>
3
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: {}<h2>Пример файла app-service.yaml</h2>
4
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: {}<h2>Пример файла env-configmap.yaml</h2>
4
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: {}<h2>Пример файла env-configmap.yaml</h2>
5
apiVersion: v1 data: SERVER_MESSAGE: Hello from Kubernetes kind: ConfigMap metadata: creationTimestamp: null labels: io.kompose.service: app-env name: env<h2>Пример файла docker-compose.yml</h2>
5
apiVersion: v1 data: SERVER_MESSAGE: Hello from Kubernetes kind: ConfigMap metadata: creationTimestamp: null labels: io.kompose.service: app-env name: env<h2>Пример файла docker-compose.yml</h2>
6
# Версия схемы, которую мы используем. # Зависит от установленной версии 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<h2>Примеры команд</h2>
6
# Версия схемы, которую мы используем. # Зависит от установленной версии 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<h2>Примеры команд</h2>
7
# Перезапуск подов приложения 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
7
# Перезапуск подов приложения 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