Евгений Штольц - Облачная экосистема

Тут можно читать онлайн Евгений Штольц - Облачная экосистема - бесплатно ознакомительный отрывок. Жанр: comp-db, год 2021. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Облачная экосистема
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    2021
  • ISBN:
    нет данных
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Евгений Штольц - Облачная экосистема краткое содержание

Облачная экосистема - описание и краткое содержание, автор Евгений Штольц, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
В этой книге главный Архитектор Департамента Архитектуры компетенций Cloud Native в Сбербанк делится знанием и опытом с читателем созданием и перехода на облачную экосистему, так и созданием и адаптацией приложений под неё. В книге автор старается провести читателя по пути, минуя ошибки и сложности. Для этого демонстрируется практическое применение и даются пояснения, чтобы читатель смог ими воспользоваться как инструкцией для учебных и рабочих целей. Читателем может быть как разработчики разных уровней, так и специалисты по экосистеме, желающие не потерять актуальность своих умений в уже изменившимся мире.

Облачная экосистема - читать онлайн бесплатно ознакомительный отрывок

Облачная экосистема - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Евгений Штольц
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

essh@kubernetes-master:~/node-cluster$ cd app/

essh@kubernetes-master:~/node-cluster/app$ ls

server.js

essh@kubernetes-master:~/node-cluster/app$ mv ./server.js ../

essh@kubernetes-master:~/node-cluster/app$ gcloud source repos clone nodejs –project=node-cluster-243923

Cloning into '/home/essh/node-cluster/app/nodejs'…

warning: You appear to have cloned an empty repository.

Project [node-cluster-243923] repository [nodejs] was cloned to [/home/essh/node-cluster/app/nodejs].

essh@kubernetes-master:~/node-cluster/app$ ls -a

. .. nodejs

essh@kubernetes-master:~/node-cluster/app$ ls nodejs/

essh@kubernetes-master:~/node-cluster/app$ ls -a nodejs/

. .. .git

essh@kubernetes-master:~/node-cluster/app$ cd nodejs/

essh@kubernetes-master:~/node-cluster/app/nodejs$ mv ../../server.js .

essh@kubernetes-master:~/node-cluster/app/nodejs$ git add server.js

essh@kubernetes-master:~/node-cluster/app/nodejs$ git commit -m 'test server'

[master (root-commit) 46dd957] test server

1 file changed, 7 insertions(+)

create mode 100644 server.js

essh@kubernetes-master:~/node-cluster/app/nodejs$ git push -u origin master

Counting objects: 3, done.

Delta compression using up to 8 threads.

Compressing objects: 100% (2/2), done.

Writing objects: 100% (3/3), 408 bytes | 408.00 KiB/s, done.

Total 3 (delta 0), reused 0 (delta 0)

To https://source.developers.google.com/p/node-cluster-243923/r/nodejs

* [new branch] master –> master

Branch 'master' set up to track remote branch 'master' from 'origin'.

Теперь пора настроить создание образа при создании новой версии продукта: переходим в GCP –> Cloud Build –> триггеры –> Создать триггер –> Хранилище исходного кода Google Cloud –> NodeJS. Тип триггер тег, чтобы не создавался образ при обычных коммитах. Я поменяю название образа с gcr.io/node-cluster-243923/NodeJS:$SHORT_SHA на gcr.io/node-cluster-243923/NodeJS:$SHORT_SHA, а время ожидания на 60 секунд. Теперь сделаю коммит и добавлю тег:

essh@kubernetes-master:~/node-cluster/app/nodejs$ cp ../../Dockerfile .

essh@kubernetes-master:~/node-cluster/app/nodejs$ git add Dockerfile

essh@kubernetes-master:~/node-cluster/app/nodejs$ git add Dockerfile

essh@kubernetes-master:~/node-cluster/app/nodejs$ cp ../../Dockerfile .

essh@kubernetes-master:~/node-cluster/app/nodejs$ git add Dockerfile

essh@kubernetes-master:~/node-cluster/app/nodejs$ git commit -m 'add Dockerfile'

essh@kubernetes-master:~/node-cluster/app/nodejs$ git remote -v

origin https://source.developers.google.com/p/node-cluster-243923/r/nodejs (fetch)

origin https://source.developers.google.com/p/node-cluster-243923/r/nodejs (push)

essh@kubernetes-master:~/node-cluster/app/nodejs$ git push origin master

Counting objects: 3, done.

Delta compression using up to 8 threads.

Compressing objects: 100% (3/3), done.

Writing objects: 100% (3/3), 380 bytes | 380.00 KiB/s, done.

Total 3 (delta 0), reused 0 (delta 0)

To https://source.developers.google.com/p/node-cluster-243923/r/nodejs

46dd957..b86c01d master –> master

essh@kubernetes-master:~/node-cluster/app/nodejs$ git tag

essh@kubernetes-master:~/node-cluster/app/nodejs$ git tag -a v0.0.1 -m 'test to run'

essh@kubernetes-master:~/node-cluster/app/nodejs$ git push origin v0.0.1

Counting objects: 1, done.

Writing objects: 100% (1/1), 161 bytes | 161.00 KiB/s, done.

Total 1 (delta 0), reused 0 (delta 0)

To https://source.developers.google.com/p/node-cluster-243923/r/nodejs

* [new tag] v0.0.1 –> v0.0.1

Теперь, если мы нажмём кнопку запустить триггер, мы увидим образ в Container Registry c нашим тегом:

essh@kubernetes-master:~/node-cluster/app/nodejs$ gcloud container images list

NAME

gcr.io/node-cluster-243923/nodejs

gcr.io/node-cluster-243923/nodejs_cluster

Only listing images in gcr.io/node-cluster-243923. Use –repository to list images in other repositories.

Теперь если мы просто добавим изменения и тег, то образ будет создан автоматически:

essh@kubernetes-master:~/node-cluster/app/nodejs$ sed -i 's/HOSTNAME\}/HOSTNAME\}\n/' server.js

essh@kubernetes-master:~/node-cluster/app/nodejs$ git add server.js

essh@kubernetes-master:~/node-cluster/app/nodejs$ git commit -m 'fix'

[master 230d67e] fix

1 file changed, 2 insertions(+), 1 deletion(-)

essh@kubernetes-master:~/node-cluster/app/nodejs$ git push origin master

Counting objects: 3, done.

Delta compression using up to 8 threads.

Compressing objects: 100% (3/3), done.

Writing objects: 100% (3/3), 304 bytes | 304.00 KiB/s, done.

Total 3 (delta 1), reused 0 (delta 0)

remote: Resolving deltas: 100% (1/1)

To https://source.developers.google.com/p/node-cluster-243923/r/nodejs

b86c01d..230d67e master –> master

essh@kubernetes-master:~/node-cluster/app/nodejs$ git tag -a v0.0.2 -m 'fix'

essh@kubernetes-master:~/node-cluster/app/nodejs$ git push origin v0.0.2

Counting objects: 1, done.

Writing objects: 100% (1/1), 158 bytes | 158.00 KiB/s, done.

Total 1 (delta 0), reused 0 (delta 0)

To https://source.developers.google.com/p/node-cluster-243923/r/nodejs

* [new tag] v0.0.2 –> v0.0.2

essh@kubernetes-master:~/node-cluster/app/nodejs$ sleep 60

essh@kubernetes-master:~/node-cluster/app/nodejs$ gcloud builds list

ID CREATE_TIME DURATION SOURCE IMAGES STATUS

2b024d7e-87a9-4d2a-980b-4e7c108c5fad 2019-06-22T17:13:14+00:00 28S nodejs@v0.0.2 gcr.io/node-cluster-243923/nodejs:v0.0.2 SUCCESS

6b4ae6ff-2f4a-481b-9f4e-219fafb5d572 2019-06-22T16:57:11+00:00 29S nodejs@v0.0.1 gcr.io/node-cluster-243923/nodejs:v0.0.1 SUCCESS

e50df082-31a4-463b-abb2-d0f72fbf62cb 2019-06-22T16:56:48+00:00 29S nodejs@v0.0.1 gcr.io/node-cluster-243923/nodejs:v0.0.1 SUCCESS

essh@kubernetes-master:~/node-cluster/app/nodejs$ git tag -a latest -m 'fix'

essh@kubernetes-master:~/node-cluster/app/nodejs$ git push origin latest

Counting objects: 1, done.

Writing objects: 100% (1/1), 156 bytes | 156.00 KiB/s, done.

Total 1 (delta 0), reused 0 (delta 0)

To https://source.developers.google.com/p/node-cluster-243923/r/nodejs

* [new tag] latest –> latest

essh@kubernetes-master:~/node-cluster/app/nodejs$ cd ../..

Создание нескольких окружений с кластерами Terraform

При попытке создать несколько кластеров из одной конфигурации мы столкнёмся с дублированием идентификаторов, которые должны быть уникальны, поэтому изолируем их друг от друга, создав и поместив в разные проекты. Для ручного создания проекта перейдём по GCP –> Продукты –> IAM и администрирование –> Управление ресурсами и создадим проект NodeJS-prod и переключившись в проект, дождемся его активации. Посмотрим на состояние текущего проекта:

essh@kubernetes-master:~/node-cluster$ cat main.tf

provider "google" {

credentials = file("./kubernetes_key.json")

project = "node-cluster-243923"

region = "europe-west2"

}

module "kubernetes" {

source = "./Kubernetes"

}

data "google_client_config" "default" {}

module "Nginx" {

source = "./nodejs"

image = "gcr.io/node-cluster-243923/nodejs_cluster:latest"

endpoint = module.kubernetes.endpoint

access_token = data.google_client_config.default.access_token

cluster_ca_certificate = module.kubernetes.cluster_ca_certificate

}

essh@kubernetes-master:~/node-cluster$ gcloud config list project

[core]

project = node-cluster-243923

Your active configuration is: [default]

essh@kubernetes-master:~/node-cluster$ gcloud config set project node-cluster-243923

Updated property [core/project].

essh@kubernetes-master:~/node-cluster$ gcloud compute instances list

NAME ZONE INTERNAL_IP EXTERNAL_IP STATUS

gke-node-ks-default-pool-2e5073d4-csmg europe-north1-a 10.166.0.2 35.228.96.97 RUNNING

gke-node-ks-node-ks-pool-ccbaf5c6-4xgc europe-north1-a 10.166.15.233 35.228.82.222 RUNNING

gke-node-ks-default-pool-72a6d4a3-ldzg europe-north1-b 10.166.15.231 35.228.143.7 RUNNING

gke-node-ks-node-ks-pool-9ee6a401-ngfn europe-north1-b 10.166.15.234 35.228.129.224 RUNNING

gke-node-ks-default-pool-d370036c-kbg6 europe-north1-c 10.166.15.232 35.228.117.98 RUNNING

gke-node-ks-node-ks-pool-d7b09e63-q8r2 europe-north1-c 10.166.15.235 35.228.85.157 RUNNING

Переключим gcloud и посмотри на пустой проект:

essh@kubernetes-master:~/node-cluster$ gcloud config set project node-cluster-prod-244519

Updated property [core/project].

essh@kubernetes-master:~/node-cluster$ gcloud config list project

[core]

project = node-cluster-prod-244519

Your active configuration is: [default]

essh@kubernetes-master:~/node-cluster$ gcloud compute instances list

Listed 0 items.

В предыдущий раз, для node-cluster-243923 мы создавали сервисный аккаунт, от имени которого мы создавали кластер. Для работы с несколькими аккаунтами из Terraform создадим и для нового проекта сервисный аккаунт через IAM и администрирование –> Сервисные аккаунты. Нам нужно будет сделать две отдельные папки для запуска Terraform по отдельности для того, чтобы разделить SSH- подключения, имеющие разные авторизационные ключи. Если мы поместим оба провайдера с разными ключами, то получим успешное соединение для первого проекта, позже, когда Terraform перейдёт к созданию кластера для следующего проекта он получит отказ из-за недействительности ключа от первого проекта ко второму. Есть и другая возможность – активировать аккаунт, как аккаунт компании (потребуется сайт и электронная почта, и проверка их со стороны Google), тогда появится возможность создавать из кода проекты без использования админки. После dev- окружение:

essh@kubernetes-master:~/node-cluster$ ./terraform destroy

essh@kubernetes-master:~/node-cluster$ mkdir dev

essh@kubernetes-master:~/node-cluster$ cd dev/

essh@kubernetes-master:~/node-cluster/dev$ gcloud config set project node-cluster-243923

Updated property [core/project].

essh@kubernetes-master:~/node-cluster/dev$ gcloud config list project

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Евгений Штольц читать все книги автора по порядку

Евгений Штольц - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Облачная экосистема отзывы


Отзывы читателей о книге Облачная экосистема, автор: Евгений Штольц. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x