Kubernetes сервисы (Service)

apiVersion: v1 kind: Service metadata: name: kubia spec: sessionAffinity: ClientIP ports: — name: http port: 80 targetPort: 8080 — name: https port: 443 targetPort: 8443 selector: app: kubia Обеспечивает доступ к группе контейнеров, например созданных через ReplicaSet с селектором. Данный конфиг обеспечивает ИП только внутри кластера, для связи внутри sessionAffinity: ClientIP — задаётся обращение к […]

Read More &#8594

Kubernetes запуск заданий по расписанию (CronJob)

Создаёт ресурс Job из шаблона и запускает его по расписанию apiVersion: batch/v1beta1 kind: CronJob metadata: name: batch-job-every-five-minutes spec: schedule: «*/5 * * * *» startingDeadlineSeconds: 15 jobTemplate: spec: template: metadata: labels: app: periodic-bathc-job spec: restartPolicy: OnFailure containers: — name: main image: luksa/bath-job startingDeadlineSeconds — запустить не позднее 15 секунд от запланированного времени Просмотреть текущие кроны […]

Read More &#8594

Kubernetes модуль с одной задачей (Job)

Job — может быть управляемой и нет: — управляемая — в случае ошибки будет перезапущена на другом узле кластера — не управляемая — не будет перезапущена в случае ошибки Используется когда надо например выполнить бэкап или сделать экспорт apiVersion: batch/v1 kind: Job metadata: name: batch-job spec: template: metadata: labels: app: batch-job spec: restartPolicy: OnFailure containers: […]

Read More &#8594

Kubernetes набор демонов (DaemonSet)

Используется для того чтобы запустить по 1му экземпляру пода на каждой ноде кластера, например сборщик логов или монитор ресурсов nodeSelector — позволяем выбрать только определенные ноды для запуска пода DaemonSet — обходит планировщик и даже если узлы помечены как unscheduleble, то всё равно будет запущен под, по-этому они используются для системных подов. apiVersion: apps/v1beta2 kind: […]

Read More &#8594

Kubernetes набор реплик (ReplicaSet)

apiVersion: apps/v1beta2 kind: ReplicaSet metadata: name: kubia spec: replicas: 3 selector: matchLabels: app: kubia template: metadata: labels: app: kubia spec: containers: — name: kubia image: luksa/kubia Описание kubectl get rs Главное отличие от контроллера реплик это селектор меток, более гибкий: selector: matchExpressions: — key: app operator: In values:: — kubia Операторы селектора меток In – […]

Read More &#8594

Kubernetes контроллер репликации

Следит за жизнью подов, создаёт или уменьшает их колличество Так же при выходе ноды из строя перенесёт всё на новую ноду Состоит из 3х частей: Селектор меток Число подов Шаблон пода apiVersion: v1 kind: ReplicationController metadata: name: kubia spec: replicas: 3 selector: app: kubia template: metadata: labels: app: kubia spec: containers: — name: kubia image: […]

Read More &#8594

Kubernetes проверка работоспособности

Проверять доступность контейнера можно указав livenessProbe apiVersion: v1 kind: Pod metadata: name: kubia-liveness spec: containers: — image: luksa/kubia-unhealthy name: kubia livenessProbe: httpGet: path: / port: 8080 initialDelaySeconds: 15 — начать проверять через 15 секунд после запуска контейнера Виды: GET — обычный http запрос TCP socket — подключение по порты Exec — выполнение команды в контейнере […]

Read More &#8594

Kubernetes основы подов

Поднимаем локальный кластер minikube curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ && chmod +x minikube sudo cp minikube /usr/local/bin && rm minikube Чтобы запустить minikube start Просмотр WEB интерфейса minikube dashboard Открыть сервис через в minikube сразу в браузере minikube service kubia-http   Работа с kubectl Проброс порта пода на локальную машину например порт пода ( kubia-manual) […]

Read More &#8594