Ресурсы/объекты в Kubernetes (Deployment, Service, ReplicaSet, Pod и т .д.) можно создавать двумя методами/способами Императивный – определяем что должно произойти/какие команды нужно выполнить и в какой последовательности, каким образом нужно получить желаемое состояние ресурсов Декларативный – определяем состояние ресурсов, которое мы хотим получить, без указания каким именно образом должно быть достигнуто такое состояние. Такое определение […]
Архивы за месяц Март, 2019
Установка Kubernetes-кластера с помощью kubeadm на виртуальных машинах c Ubuntu18.04
Настройка Kubernetes-кластера из 1-го мастера и 2-х нод на виртуальных машин c Ubuntu 18.04 Для практической работы были взяты виртуалки в Digital Ocean(2Gb, 2СPU) с бесплатным бонусом в размере 100$ в течение 60 дней при регистрации на Digital Ocean. Алгоритм действий состоит из следующих шагов 1.Подготовка к запуску кластера(отключение swap, настройка /etc/hosts-файла серверов, установка имени […]
Настройка Cloud Nat для приватного Kubernetes кластера в Google Cloud
Cloud NAT позволяет виртуальным машинам и подам выходить в Интернет, используя общий публичный IP-адрес. Приватный Google Kubernetes-кластер, ноды которого не имеют публичных IP-адресов используются в случае: — с точки зрения безопасности,чтобы невозможно было подключиться к ним снаружи — необходимо,чтобы все ноды/поды выходили в Интернет с одного(или нескольких) IP-адреса/ов(например, для добавления этих одного/нескольких IP-адресов в white-листы […]
Настройка pipeline авто-деплоя в Kubernetes-кластер с помощью Gitlab и Helm
Имеются два окружения staging и production(так же будут называться и namespace-ы в Kubernetes-кластере) Настраиваем автоматический deploy в Kubernetes кластер при коммите в одну из веток При коммите в ветку develop – деплой приложений в namespace staging При коммите в ветку staging – деплой приложений в namespace production С помощью GitlabCI выполняется деплой,в котором используется Helm-чарт […]
Мониторинг Kubernetes кластера с помощью Prometheus
За основу был взят стек мониторинга Prometehus с помощью Prometheus operator отсюда https://github.com/helm/charts/tree/master/stable/prometheus-operator https://coreos.com/operators/prometheus/docs/latest/user-guides/getting-started.html Все параметры, которые необходимо было переопределить указаны в файле custom-values.yaml Мониторинг стек запускается с помощью Helm-чарта
1 |
# helm install --name monitoring-stack stable/prometheus-operator --set grafana.adminPassword="mygrafanapassword" -f custom-values.yaml |
Обновление стека выполняется командой
1 |
# helm upgrade monitoring-stack stable/prometheus-operator --set grafana.adminPassword="mygrafanapassword" -f custom-values.yaml |
Установка Helm клиента https://docs.helm.sh/using_helm/#installing-helm https://docs.helm.sh/using_helm/
1 |
# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.12.3-linux-amd64.tar.gz |
Последняя версия доступная здесь https://github.com/helm/helm/releases
1 |
# tar -zxvf helm-v2.12.3-linux-amd64.tar.gz |
1 |
# sudo mv linux-amd64/helm /usr/local/bin/helm |
Проверка текущего контекста,куда будет установлен […]
Установка и базовая настройка Google Cloud SDK для работы с Google Kubernetes кластером
Установка gcloud Перед использованием необходимо создать проект и включить биллинг для этого проекта в Google Console Экспорт переменной окружения с корректным дистрибутивом
1 |
# export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" |
Добавление репозитария Googl SDK
1 |
# echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list |
Импортирование Google Cloud публичного ключа
1 |
# curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - |
Обновление локального кеша пакетов и установка google-cloud-sdk
1 |
# sudo apt-get update && sudo apt-get install google-cloud-sdk |
Базовая инициализация конфигурации
1 |
# gcloud init |
— разрешаем доступ для gcloud в Google-аккаунте — выбираем […]