Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Sử dụng Jenkins với Kubernetes AWS, Phần 1

CoreOS là Hệ điều hành được thiết kế cho Docker container. CoreOS đã được cài đặt sẵn Docker. Kubernetes có thể được cài đặt trên CoreOS bằng CloudFormation, như đã thảo luận chi tiết trong một bài viết trước đó, “Bắt đầu với Kubernetes trên Amazon Web Services (AWS).”

Vấn đề

Kubernetes không được cài đặt sẵn trên CoreOS và có thể được cài đặt bằng cách sử dụng kube-aws và nó yêu cầu một số đầu vào và cấu hình của người dùng. Cài đặt Kubernetes trên CoreOS là một quá trình liên quan và bao gồm các giai đoạn sau được thể hiện trong Hình 1.


Hình 1: Cài đặt Kubernetes trên CoreOS Stages

Giải pháp

Một Jenkins Pipeline có thể được sử dụng để tự động hóa việc cài đặt Kubernetes, như thể hiện trong Hình 2. Các giai đoạn cài đặt khác nhau có thể được định cấu hình trong Jenkinsfile và khi Pipeline chạy, kube-aws công cụ được tải xuống, CloudFormation ngăn xếp được khởi tạo, nội dung của Thư mục nội dung được hiển thị, các tham số cụm như số lượng phiên bản worker được tùy chỉnh và sau đó cụm được xác thực và khởi chạy.


Hình 2: Jenkins Pipeline để cài đặt Kubernetes trên CoreOS

Cài đặt Kubernetes bằng Jenkins Pipeline là một ví dụ về Automation Mẫu thiết kế DevOps.

Trong hướng dẫn gồm ba bài viết, chúng tôi sẽ tự động hóa quá trình cài đặt Kubernetes bằng Jenkins Pipeline. Bài viết này có các phần sau:

  • Thiết lập Môi trường
  • Tạo Phần mềm Điều kiện tiên quyết
  • Tạo nút Jenkins
  • Kết luận

Thiết lập Môi trường

Chúng tôi sẽ cài đặt Jenkins bằng cách sử dụng Docker image “jenkins” trên một phiên bản CoreOS. Chúng tôi sẽ khởi chạy một cụm Kubernetes trên phiên bản Amazon AMI Linux EC2 bằng cách sử dụng Jenkins Pipeline. Đầu tiên, khởi chạy hai phiên bản EC2, một phiên bản chạy Amazon Linux và phiên bản còn lại chạy CoreOS, như trong Hình 3.


Hình 3: Lấy địa chỉ IP công cộng

Khi tạo phiên bản Amazon Linux, hãy tạo một cặp khóa mới (ví dụ:“jenkins”) bằng cách chọn “Tạo một cặp khóa mới” và tải xuống khóa cá nhân “jenkins.pem” được sử dụng để định cấu hình tác nhân Jenkins. Lấy Địa chỉ IP công cộng của phiên bản EC2 chạy CoreOS và SSH đăng nhập vào phiên bản đó.

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

Chạy hình ảnh Docker cho Jenkins để khởi chạy Jenkins.

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

Hình ảnh Docker “Jenkins” được tải xuống. Jenkins bắt đầu. Sao chép mật khẩu đã tạo. Lấy DNS công cộng của phiên bản EC2 đang chạy Jenkins. Sử dụng url :8080 , đăng nhập vào Bảng điều khiển Jenkins, như trong Hình 4.


Hình 4: Bảng điều khiển dành cho quản trị viên Jenkins

Tạo Tạo tác Yêu cầu Trước

Bây giờ, chúng ta cần tạo một số tạo tác cho một cụm Kubernetes không thể tự động hóa được.

  • Cặp khóa EC2
  • Khóa KMS
  • Thư mục Jenkins / var / jenkins
  • Đăng nhập SSH vào phiên bản Amazon EC2 chạy Amazon Linux
ssh -i "jenkins.pem"  [email protected]

Vì Amazon EC2 được sử dụng nên cần phải có tài khoản AWS. Chúng tôi cần tạo một bộ thông tin đăng nhập AWS Security, chúng tôi sẽ sử dụng để định cấu hình phiên bản EC2 mà từ đó ngăn xếp CloudFormation được khởi chạy. Để tạo thông tin đăng nhập AWS Security mới, hãy nhấp vào Thông tin đăng nhập bảo mật cho tài khoản người dùng và nhấp vào Tạo khóa truy cập mới để tạo khóa truy cập. Sao chép Id khóa truy cập và khóa truy cập. Trong phiên bản Amazon Linux, hãy chạy lệnh sau để định cấu hình phiên bản bằng thông tin đăng nhập AWS:

aws configure

Chỉ định id khóa truy cập và khóa truy cập khi được nhắc. Chỉ định tên vùng mặc định ( us-west-1 ) và định dạng đầu ra ( json ), như trong Hình 5.


Hình 5: Định cấu hình Phiên bản Jenkins với Thông tin đăng nhập AWS, Khu vực và Định dạng đầu ra mặc định

Tiếp theo, tạo một cặp khóa EC2. Chạy lệnh sau để tạo một cặp khóa có tên kubernetes-coreos và lưu nó dưới dạng kubernetes-coreos.pem .

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

Sửa đổi quyền truy cập của cặp khóa bằng cách sử dụng chế độ là 400, chế độ này đặt quyền truy cập để chủ sở hữu đọc.

chmod 400 kubernetes-coreos.pem

Một cặp khóa được tạo và các quyền truy cập được thiết lập (xem Hình 6).


Hình 6: Tạo một cặp khóa cho Kubernetes

Cặp khóa cũng được liệt kê trong Bảng điều khiển AWS EC2, như thể hiện trong Hình 7.


Hình 7: Lấy địa chỉ IP công cộng

Tiếp theo, tạo khóa KMS, được sử dụng để mã hóa / giải mã nội dung TLS cụm và được xác định bằng chuỗi Arn. Sử dụng aws giao diện dòng lệnh để tạo khóa KMS cho vùng us-west-1 .

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

Một khóa KMS được tạo, như trong Hình 8. Sao chép KeyMetadata.Arn chuỗi bắt đầu bằng arn:aws:kms:us-west-1 sẽ được sử dụng sau này để khởi tạo cụm CloudFormation.


Hình 8: Tạo khóa KMS

Chúng tôi cũng cần tạo một thư mục cho Jenkins:

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

Một thư mục được tạo và các quyền được thiết lập, như trong Hình 9.


Hình 9: Tạo thư mục cho Jenkins

Tạo nút Jenkins

Đường ống Jenkins là một dự án của Jenkins sử dụng trình cắm Jenkins Pipeline. Một đường dẫn thường bao gồm một chuỗi các bước, với mỗi bước thực hiện một nhiệm vụ. Các trình thực thi có sẵn trên các đại lý được sử dụng để chạy một dự án Jenkins. “Tác nhân” là một máy được cấu hình để giảm tải các dự án từ nút chính. Nút “chính” là máy mà Jenkins được cài đặt và xử lý tất cả các tác vụ cho hệ thống xây dựng, bao gồm phân tích cú pháp các tập lệnh Pipeline và chạy một dự án Jenkins trên một trình thực thi. “Trình thực thi” là một tài nguyên tính toán để biên dịch mã và nó có thể được định cấu hình trên các nút chính hoặc nút tác nhân. Trong phần này, chúng ta sẽ tạo một nút tác nhân và cấu hình một trình thực thi trên nút. Chọn Quản lý Jenkins trong Bảng điều khiển Jenkins, như trong Hình 10.


Hình 10: Lấy địa chỉ IP công cộng

Sau đó, chọn Quản lý nút , như trong Hình 11.


Hình 11: Lấy địa chỉ IP công cộng

Nút "chính" sẽ được liệt kê. Nhấp vào Nút mới để tạo một nút tác nhân, như trong Hình 12.


Hình 12: Lấy địa chỉ IP công cộng

Chỉ định Tên nút ( jenkins , ví dụ:) và chọn Đại lý thường trực nút radio, như trong Hình 13. Nhấp vào OK.


Hình 13: Lấy địa chỉ IP công cộng

Để cấu hình nút tác nhân mới, chúng ta sẽ cần DNS máy chủ mà tác nhân sẽ được tạo. Sao chép DNS công cộng từ Bảng điều khiển AWS EC2 cho phiên bản EC2 chạy hình ảnh Amazon Linux, như trong Hình 14.


Hình 14: Lấy địa chỉ IP công cộng

Trong giao diện người dùng nhập tác nhân mới, chỉ định Tên ( jenkins , Ví dụ). Chỉ định # người thực thi như 1. Chỉ định một Thư mục gốc từ xa dưới dạng / var / jenkins , được tạo trước đó. Chỉ định Nhãn là “jenkins”, ý nghĩa của nó mà chúng ta sẽ thảo luận trong phần tiếp theo. Trong Cách sử dụng , hãy giữ nguyên cài đặt mặc định là “Sử dụng nút này nhiều nhất có thể”. Trong Phương pháp khởi chạy , chọn “Khởi chạy tác nhân nô lệ trên máy Unix qua SSH.” Trong Máy chủ lưu trữ , chỉ định DNS công cộng được sao chép từ Bảng điều khiển EC2. Trong Tính khả dụng , hãy chọn “Giữ cho đại lý này trực tuyến càng nhiều càng tốt.” Đối với Thông tin đăng nhập , nhấp vào nút Thêm thả xuống và chọn Nhà cung cấp thông tin đăng nhập Jenkins , như trong Hình 15.


Hình 15: Lấy địa chỉ IP công cộng

Trong Thêm thông tin đăng nhập hộp thoại, chọn Tên miền là Thông tin đăng nhập toàn cầu Loại Toàn cầu . Chỉ định Tên người dùng với tư cách là “ec2-user” và chọn Nhập trực tiếp . Sao chép và dán nội dung của tệp khóa cá nhân jenkins.pem trong Chìa khóa trường, như trong Hình 16.


Hình 16: Thêm thông tin đăng nhập của Jenkins

Nhấp vào Thêm , như trong Hình 17.


Hình 17: Nhà cung cấp thông tin đăng nhập Jenkins> Thêm

Chọn ec2-user thông tin đăng nhập trong Thông tin đăng nhập , như trong Hình 18. Nhấp vào Lưu .


Hình 18: Định cấu hình Jenkins Node

Một tác nhân mới được thêm vào, như thể hiện trong Hình 19. Ban đầu, tác nhân có thể không khả dụng vì nó vẫn đang bắt đầu.


Hình 19: Jenkins Agent đã tạo

Nhấp vào liên kết tác nhân và nhấp vào Khởi chạy lại tác nhân , nếu được yêu cầu, như trong Hình 20.


Hình 20: Khởi chạy lại tác nhân

Thông báo đầu ra “Tác nhân đã kết nối thành công và trực tuyến” cho biết tác nhân đã được khởi chạy (xem Hình 21).


Hình 21: Đại lý được kết nối thành công và trực tuyến

Tác nhân “jenkins” sẽ được liệt kê là đang chạy, như thể hiện trong Hình 22.


Hình 22: Đặc vụ Jenkins đang điều hành

Kết luận

Trong bài viết này, chúng tôi đã giới thiệu tầm quan trọng của việc tự động hóa cài đặt Kubernetes với Jenkins. Chúng tôi đã bắt đầu bằng cách cài đặt Jenkins trên CoreOS, tạo các tạo tác cần thiết trước và tạo một nút Jenkins. Trong bài viết tiếp theo, chúng ta sẽ cấu hình Jenkinsfile cho một đường ống Jenkins và tạo một đường ống Jenkins. Và, trong bài viết thứ 3, chúng tôi sẽ chạy đường ống Jenkins để cài đặt 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. Tải dữ liệu lớn nhanh hơn

  2. Cơ sở dữ liệu Greenplum là gì? Giới thiệu về Cơ sở dữ liệu lớn

  3. Làm việc với Dữ liệu JDBC không phải ASCII trong Talend

  4. WhoIsActive Runner

  5. DELETE VS DROP trong SQL