Database
 sql >> база данни >  >> RDS >> Database

Използване на Jenkins с Kubernetes AWS, част 1

CoreOS е операционната система, предназначена за Docker контейнери. CoreOS има предварително инсталиран Docker от кутията. Kubernetes може да бъде инсталиран на CoreOS с помощта на CloudFormation, както е обсъдено подробно в по-ранна статия „Първи стъпки с Kubernetes в Amazon Web Services (AWS).“

Проблем

Kubernetes не е предварително инсталиран на CoreOS и може да бъде инсталиран с помощта на kube-aws инструмент и изисква известно въвеждане и конфигурация от потребителя. Инсталирането на Kubernetes на CoreOS е свързан процес и се състои от следните етапи, показани на фигура 1.


Фигура 1: Инсталация на Kubernetes на етапи на CoreOS

Решение

Jenkins Pipeline може да се използва за автоматизиране на инсталирането на Kubernetes, както е показано на Фигура 2. Различните етапи на инсталация могат да бъдат конфигурирани в Jenkinsfile и, когато конвейерът се изпълнява, kube-aws инструментът се изтегля, CloudFormation стека се инициализира, съдържанието на директорията на активите се изобразява, параметрите на клъстера като брой работни екземпляри се персонализират и впоследствие клъстерът се валидира и стартира.


Фигура 2: Jenkins Pipeline за инсталиране на Kubernetes на CoreOS

Инсталирането на Kubernetes с помощта на Jenkins Pipeline е пример за Автоматизация DevOps Design Pattern.

В урок от три статии ще автоматизираме процеса на инсталиране на Kubernetes с помощта на Jenkins Pipeline. Тази статия има следните раздели:

  • Настройка на средата
  • Създаване на необходимите артефакти
  • Създаване на възел на Дженкинс
  • Заключение

Настройка на средата

Ще инсталираме Jenkins, използвайки Docker изображение „jenkins“ на екземпляр на CoreOS. Ще стартираме клъстер Kubernetes на екземпляр на Amazon AMI Linux EC2, използвайки Jenkins Pipeline. Първо стартирайте два екземпляра EC2, единият работи с Amazon Linux, а другият работи с CoreOS, както е показано на фигура 3.


Фигура 3: Получаване на публичен IP адрес

Когато създавате екземпляр на Amazon Linux, създайте нова двойка ключове („jenkins“, например), като изберете „Създаване на нова двойка ключове“ и изтеглете частния ключ „jenkins.pem“, който да се използва за конфигуриране на агент на Jenkins. Получете публичния IP адрес на EC2 екземпляр, изпълняващ CoreOS и SSH, влезте в екземпляра.

ssh -i "jenkins.pem"  [email protected]

Стартирайте изображението на Docker за Jenkins, за да стартирате Jenkins.

docker run -name jenkins -p 8080:8080 -p 50000:50000 jenkins

Изображението на Docker „Jenkins“ се изтегля. Дженкинс започва. Копирайте генерираната парола. Вземете публичния DNS на екземпляра EC2, изпълняващ Jenkins. Използване на url :8080 , влезте в таблото за управление на Jenkins, както е показано на фигура 4.


Фигура 4: Администраторска конзола на Дженкинс

Създаване на необходимите артефакти

Сега трябва да създадем някои артефакти за клъстер Kubernetes, които не подлежат на автоматизация.

  • EC2 двойка ключове
  • KMS ключ
  • Директория на Jenkins /var/jenkins
  • SSH вход в екземпляра на Amazon EC2, работещ с Amazon Linux
ssh -i "jenkins.pem"  [email protected]

Тъй като се използва Amazon EC2, е необходим акаунт в AWS. Трябва да създадем набор от идентификационни данни за AWS Security, които ще използваме, за да конфигурираме екземпляра EC2, от който се стартира стека CloudFormation. За да създадете нови идентификационни данни за защита на AWS, щракнете върху Идентификационни данни за сигурност за потребителския акаунт и щракнете върху Създаване на нов ключ за достъп за създаване на ключ за достъп. Копирайте Идентификатора на ключа за достъп и ключа за достъп. В екземпляра на Amazon Linux изпълнете следната команда, за да конфигурирате потребителския модел с идентификационните данни на AWS:

aws configure

Посочете идентификатора на ключа за достъп и ключа за достъп, когато бъдете подканени. Посочете името на региона по подразбиране (us-east-1 ) и изходния формат (json ), както е показано на фигура 5.


Фигура 5: Конфигуриране на екземпляр на Jenkins с идентификационни данни на AWS, регион и изходен формат по подразбиране

След това създайте двойка ключове EC2. Изпълнете следната команда, за да създадете двойка ключове, наречена kubernetes-coreos и го запазете като kubernetes-coreos.pem .

aws ec2 create-key-pair
   --key-name kubernetes-coreos
   --query 'KeyMaterial'
   --output text > kubernetes-coreos.pem

Променете разрешенията за достъп на двойката ключове, като използвате режима 400, който задава разрешенията за достъп за четене от собственика.

chmod 400 kubernetes-coreos.pem

Създава се двойка ключове и се задават разрешения за достъп (вижте фигура 6).


Фигура 6: Създаване на двойка ключове за Kubernetes

Двойката ключове също се изписва в конзолата AWS EC2, както е показано на Фигура 7.


Фигура 7: Получаване на публичен IP адрес

След това създайте KMS ключ, който се използва за криптиране/декриптиране на TLS активи на клъстер и се идентифицира от Arn низ. Използвайте aws интерфейс на командния ред за създаване на KMS ключ за регион us-east-1 .

aws kms
   --region=us-east-1 create-key
   --description="kube-aws assets"

Създава се KMS ключ, както е показано на фигура 8. Копирайте KeyMetadata.Arn низ, започващ с arn:aws:kms:us-east-1 да се използва по-късно за инициализиране на клъстера CloudFormation.


Фигура 8: Създаване на KMS ключ

Трябва също да създадем директория за Jenkins:

sudo mkdir /var/Jenkins
sudo chmod 777 /var/jenkins

Създава се директория и се задават разрешения, както е показано на Фигура 9.


Фигура 9: Създаване на директория за Jenkins

Създаване на възел на Дженкинс

Jenkins Pipeline е проект на Jenkins, който използва приставката Jenkins Pipeline. Конвейерът обикновено се състои от последователност от стъпки, като всяка стъпка изпълнява задача. Наличните изпълнители на агенти се използват за стартиране на проект на Дженкинс. „Агентът“ е машина, конфигурирана да разтоварва проекти от главния възел. „Главният“ възел е машината, на която е инсталиран Jenkins и обработва всички задачи за системата за изграждане, включително анализиране на скриптове на Pipeline и изпълнение на проект на Jenkins на изпълнител. „Изпълнител“ е изчислителен ресурс за компилиране на код и може да бъде конфигуриран на главните или агентските възли. В този раздел ще създадем възел на агента и ще конфигурираме изпълнител на възела. Изберете Управление на Дженкинс в таблото за управление на Дженкинс, както е показано на фигура 10.


Фигура 10: Получаване на публичен IP адрес

След това изберете Управление на възли , както е показано на Фигура 11.


Фигура 11: Получаване на публичен IP адрес

„Главният“ възел трябва да бъде посочен. Щракнете върху Нов възел за да създадете възел на агент, както е показано на Фигура 12.


Фигура 12: Получаване на публичен IP адрес

Посочете Име на възел (дженкинс , например) и изберете Постоянен агент бутон за избор, както е показано на Фигура 13. Щракнете върху OK.


Фигура 13: Получаване на публичен IP адрес

За да конфигурираме новия възел на агента, ще ни трябва хост DNS, на който агентът трябва да бъде създаден. Копирайте публичния DNS от конзолата AWS EC2 за екземпляра EC2, изпълняващ изображение на Amazon Linux, както е показано на фигура 14.


Фигура 14: Получаване на публичен IP адрес

В новия потребителски интерфейс за въвеждане на агент посочете Име (дженкинс , например). Посочете # изпълнители като 1. Посочете Отдалечена главна директория като /var/jenkins , който е създаден по-рано. Посочете Етикети като „дженкинс“, чието значение ще обсъдим в следващ раздел. В Използване , запазете настройката по подразбиране „Използвайте този възел колкото е възможно повече“. В Метод на стартиране , изберете „Стартиране на подчинени агенти на Unix машини чрез SSH.“ Вхост , посочете публичния DNS, копиран от конзолата EC2. В Наличност , изберете „Дръжте този агент онлайн колкото е възможно повече.“ За идентификационни данни , щракнете върху Добавяне падащо меню и изберете Доставчик на идентификационни данни на Jenkins , както е показано на Фигура 15.


Фигура 15: Получаване на публичен IP адрес

В Добавяне на идентификационни данни диалогов прозорец, изберете Домейн като Глобални идентификационни данни и Любов като глобален . Посочете Потребителско име като „ec2-user“ и изберете Въвеждане директно . Копирайте и поставете съдържанието на файла с частен ключ jenkins.pem в Ключа поле, както е показано на фигура 16.


Фигура 16: Добавяне на идентификационни данни на Дженкинс

Кликнете върху Добавяне , както е показано на Фигура 17.


Фигура 17: Jenkins Credentials Provider>Добавяне

Изберете ec2-user идентификационни данни в Акредитивни данни , както е показано на Фигура 18. Щракнете върху Запазване .


Фигура 18: Конфигуриране на възел на Дженкинс

Нов агент се добавя, както е показано на Фигура 19. Първоначално агентът може да не е наличен, защото все още започва.


Фигура 19: Агентът на Дженкинс е създаден

Щракнете върху връзката на агента и щракнете върху Повторно стартиране на агент , ако е необходимо, както е показано на Фигура 20.


Фигура 20: Повторно стартиране на агент

Изходното съобщение „Агентът е успешно свързан и онлайн“ показва, че агентът е стартиран (вижте Фигура 21).


Фигура 21: Агентът е свързан успешно и онлайн

Агентът „jenkins“ трябва да бъде посочен като работещ, както е показано на Фигура 22.


Фигура 22: Агент на Дженкинс работи

Заключение

В тази статия представихме важността на автоматизирането на инсталация на Kubernetes с Jenkins. Започнахме с инсталиране на Jenkins на CoreOS, създаване на необходимите артефакти и създаване на възел на Jenkins. В следваща статия ще конфигурираме Jenkinsfile за тръбопровод на Jenkins и ще създадем Jenkins pipeline. И в 3-та статия ще стартираме тръбопровода на Jenkins, за да инсталираме Kubernetes.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL SUM() за начинаещи

  2. Основи на табличните изрази, част 10 – Изгледи, SELECT * и промени в DDL

  3. Тестване на DML изявления за OLTP в паметта

  4. Симптоми от типа на наблюдателя и изчакване

  5. Могат ли коментарите да попречат на производителността на съхранените процедури?