Docker несколько сервисов supervisor

Устанавливаем supervisor в докер контейнер apt-get install supervisor В конце добавляем скопировать конфиг и запустить COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf CMD /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf [supervisord] nodaemon=true [program:sendmail] command=/bin/bash -c «exec /usr/sbin/sendmail -bD -X /proc/self/fd/1» autostart=true autorestart=true [program:apache2] command=apache2ctl -D «FOREGROUND» -k start redirect_stderr=true autostart=true autorestart=true Этот конфиг запустит sendmail и apache, Будет следить чтобы ничего не упало

Read More &#8594

k8s использование переменных окружения/ Config map / Secret

Так мы зададим 2 переменные LANGUAGE и API_KEY apiVersion: extensions/v1beta1 kind: Deployment metadata: name: envtest spec: replicas: 1 template: metadata: labels: name: envtest spec: containers: — name: envtest image: gcr.io/<PROJECT_ID>/envtest ports: — containerPort: 3000 env: — name: LANGUAGE value: «English» — name: API_KEY value: «123-456-789» Можем их использовать например в js файле var http = […]

Read More &#8594

k8s google логирование

Если кластер уже создан и надо включить логирование в stakdriver: gcloud beta container clusters update [CLUSTER_NAME] —logging-service logging.googleapis.com Чтобы проверить что логирование включено kubectl describe node $NODE_NAME Должны увидеть Name: NODE_NAME Role: Labels: beta.kubernetes.io/fluentd-ds-ready=true Для проверки можно поднять под, который просто срет в логи kubectl create -f https://k8s.io/examples/debug/counter-pod.yaml Посмотреть логи можно тут: Stackdriver > Logging […]

Read More &#8594

Kubernetes операторы

Типы приложений stateless  — когда данные находятся в контейнере statefull — когда данные должны быть сохранены, например (Mysql, Elasticseatch, Mongo…) Полный список уже поддерживаемых оперторов: https://github.com/operator-framework/awesome-operators Статья, которая описывает механизм операторов: https://habr.com/company/flant/blog/326414/

Read More &#8594

docker php71+composer+sudo

FROM ubuntu:16.04 # terminal ENV TERM linux ENV DEBIAN_FRONTEND noninteractive # container environments ENV APP_ENV prod ENV APP_VHOST standard # install essentials RUN apt-get update \ && apt-get install -y —no-install-recommends software-properties-common ca-certificates locales curl less nano cron logrotate tar vim xz-utils msmtp\ && locale-gen en_US \ && locale-gen en_US.UTF-8 \ && locale-gen de_DE \ […]

Read More &#8594

nexus + kubernetes

cat <<EOF | kubectl create -f — apiVersion: v1 kind: Namespace metadata: name: magento EOF kubectl create secret docker-registry regsecret —docker-server=http://nexus.neklodev.com:18080 —docker-username=admin —docker-password=0MekOfbemya —docker-email=sysadmin@neklo.com —namespace magento Создаем Deployment — apiVersion: extensions/v1beta1 kind: Deployment metadata: name: magento namespace: magento spec: replicas: 1 template: metadata: labels: app: magento spec: containers: — image: «nexus.neklodev.com:18080/php7.1:1» name: magento ports: — […]

Read More &#8594

kubernetes разбираемся в понятиях

NODE — сервер в кластере kubernetes Pods — группа контейнеров, например (nginx + apache + mysql + redis) Controller — следит за pods и контролирует колличество запущенных контейнеров, перезапускает в случае краха Services — обеспечивает связь с внешним миром https://dotsandbrackets.com/kubernetes-example-ru/

Read More &#8594

Устанавливаем kubernetes

Выключаем swap sudo swapoff -a Ставим из репы apt-get update && apt-get install -y apt-transport-https \ && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add — echo «deb http://apt.kubernetes.io/ kubernetes-xenial main» > /etc/apt/sources.list.d/kubernetes.list apt-get update \ && apt-get install -y kubelet kubeadm kubernetes-cni Проводим инициализацию kubeadm init —pod-network-cidr=10.244.0.0/16 —apiserver-advertise-address=192.168.128.66 —kubernetes-version stable-1.10 где —pod-network-cidr=10.244.0.0/16 — это сеть контейнеров […]

Read More &#8594

храним образы docker в nexus

Создаем файл /etc/docker/daemon.json: с нашим nexus и перезапускаем докер { «insecure-registries»: [ «your-repo:8082», «your-repo:8083» ], «disable-legacy-registry»: true } Подключаемся к nexus docker login -u admin -p admin123 your-repo:8082 Для того чтобы загрузить свой образ docker tag your-own-image:1 your-repo:8083/your-own-image:1 docker push your-repo:8083/your-own-image:1 docker tag php56 nexus.neklodev.com:18080/php5.6:1 docker push nexus.neklodev.com:18080/php5.6:1 https://github.com/TerrenceMiao/nexus/wiki/Setup-Docker-Private-Registry-in-Nexus-Repository-OSS-3.0.0 Закачать образ из nexus после логина […]

Read More &#8594