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

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

Trong bài viết đầu tiên, “Sử dụng Jenkins với Kubernetes AWS, Phần 1,” về việc tự động cài đặt Kubernetes với Jenkins, chúng tôi đã cài đặt Jenkins trên CoreOS, tạo các tạo tác cần thiết trước để cài đặt Kubernetes và tạo một nút Jenkins. Trong bài viết thứ hai, “Sử dụng Jenkins với Kubernetes AWS, Phần 2,” chúng tôi đã định cấu hình tệp Jenkins và tạo đường dẫn Jenkins. Trong bài viết này, chúng tôi sẽ chạy đường ống Jenkins để cài đặt Kubernetes và sau đó kiểm tra cụm Kubernetes. Bài viết này có các phần sau:

  • Chạy đường ống Jenkins
  • Kiểm tra Cụm Kubernetes
  • Kết luận

Chạy đường ống Jenkins

Nhấp vào Xây dựng ngay bây giờ để chạy Jenkins Pipeline, như trong Hình 1.


Hình 1: Build Now bắt đầu Jenkins Pipeline

Đường ống Jenkins được bắt đầu và một thanh tiến trình cho biết tiến trình của đường ống. Đ Chế độ xem sân khấu cho các giai đoạn khác nhau trong đường dẫn cũng được hiển thị, như thể hiện trong Hình 2. Kube-aws hiển thị giai đoạn trong Chế độ xem giai đoạn có liên kết "bị tạm dừng" vì chúng tôi đã yêu cầu người dùng nhập số lượng công nhân (và đầu vào của người dùng loại phiên bản, sẽ được nhắc sau đó) trong Jenkinsfile. Nhấp vào liên kết "bị tạm dừng".


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

Trong Đầu ra Bảng điều khiển cho Đường ống Jenkins, nhấp vào Yêu cầu đầu vào liên kết, như trong Hình 3.


Hình 3: Yêu cầu đầu vào cho số lượng nút

A Số lượng nút hộp thoại được hiển thị, nhắc nhở người dùng nhập số lượng nút, như thể hiện trong Hình 4. Giá trị mặc định như được cấu hình trong Jenkinsfile cũng được đặt. Nhấp vào Tiếp tục sau khi chỉ định một giá trị.


Hình 4: Chỉ định số lượng nút

Pipeline tiếp tục chạy và lại bị tạm dừng ở một yêu cầu đầu vào khác cho loại phiên bản. Nhấp vào Yêu cầu nhập liệu , như trong Hình 5.


Hình 5: Yêu cầu đầu vào cho loại phiên bản

Loại phiên bản hộp thoại được hiển thị (xem Hình 6). Chọn giá trị mặc định (hoặc chỉ định một giá trị khác) và nhấp vào Tiếp tục.


Hình 6: Chỉ định loại phiên bản

Đường ống tiếp tục chạy. Trong giai đoạn Cụm triển khai, một liên kết Yêu cầu đầu vào khác được trình bày, như thể hiện trong Hình 7. Nhấp vào liên kết.


Hình 7: Yêu cầu đầu vào cho nên triển khai cụm

Trong cụm nên triển khai? , chọn giá trị mặc định là “yes” và nhấp vào Proceed, như trong Hình 8.


Hình 8: Có nên triển khai cụm không?

Đường ống tiếp tục chạy. Việc tạo tài nguyên AWS cho một cụm Kubernetes có thể mất một khoảng thời gian, như được chỉ ra bởi thông báo trong Đầu ra Bảng điều khiển được hiển thị trong Hình 9.


Hình 9: Tạo tài nguyên AWS

Đường ống chạy đến giai đoạn hoàn thành. Thông báo “SUCCESS” cho biết rằng đường ống đã chạy thành công, như thể hiện trong Hình 10.


Hình 10: Jenkins Pipeline Run đã hoàn tất thành công

Chế độ xem Giai đoạn cho Đường ống Jenkins hiển thị các giai đoạn khác nhau của đường ống đã hoàn thành, như thể hiện trong Hình 11. Chế độ xem Giai đoạn bao gồm các liên kết cho Bản dựng mới nhất, Bản dựng ổn định cuối cùng, Bản dựng thành công cuối cùng và Bản dựng hoàn thành cuối cùng.


Hình 11: Chế độ xem sân khấu

Nhấp vào Chế độ xem toàn màn hình để hiển thị riêng chế độ xem toàn màn hình, như thể hiện trong Hình 12.


Hình 12: Chọn Chế độ xem Toàn màn hình

Chế độ xem Toàn màn hình sẽ được hiển thị, như trong Hình 13.


Hình 13: Toàn cảnh sân khấu

Trong Bảng điều khiển, biểu tượng bên cạnh Đường ống Jenkins chuyển sang màu xanh lục để biểu thị hoàn thành thành công, như thể hiện trong Hình 14.


Hình 14: Jenkins Dashboard với Jenkins Pipeline được liệt kê là đã hoàn thành Thành công

Để hiển thị đầu ra bảng điều khiển, hãy chọn Đầu ra bảng điều khiển cho Bản dựng, như thể hiện trong Hình 15.


Hình 15: Lịch sử xây dựng> Đầu ra bảng điều khiển

Đầu ra Bảng điều khiển được hiển thị (xem Hình 16).


Hình 16: Đầu ra bảng điều khiển

Đầu ra Bảng điều khiển chi tiết hơn được liệt kê trong đoạn mã sau:

Started by user Deepak Vohra
[Pipeline] node
Running on jenkins in /var/jenkins/workspace/install-kubernetes
[Pipeline] {
   [Pipeline] stage (set env)
   Using the 'stage' step without a block argument is deprecated
   Entering stage set env
   Proceeding
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + sudo yum install gnupg2
   Loaded plugins: priorities, update-motd, upgrade-helper
   Package gnupg2-2.0.28-1.30.amzn1.x86_64 already installed and
      latest version
   Nothing to do
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + gpg2 --keyserver pgp.mit.edu --recv-key FC8A365E
   gpg: directory '/home/ec2-user/.gnupg' created
   gpg: new configuration file '/home/ec2-user/.gnupg/gpg.conf'
        created
   ...
   ...
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + gpg2 --fingerprint FC8A365E
   pub   4096R/FC8A365E 2016-03-02 [expires: 2021-03-01]
         Key fingerprint = 18AD 5014 C99E F7E3 BA5F  6CE9 50BD
                           D3E0 FC8A 365E
   uid   [ unknown] CoreOS Application Signing Key
         <[email protected]>
   sub   2048R/3F1B2C87 2016-03-02 [expires: 2019-03-02]
   sub   2048R/BEDDBA18 2016-03-08 [expires: 2019-03-08]
   sub   2048R/7EF48FD3 2016-03-08 [expires: 2019-03-08]

   [Pipeline] sh
   [install-kubernetes] Running shell script
   + wget https://github.com/coreos/coreos-kubernetes/releases/
      download/v0.7.1/kube-aws-linux-amd64.tar.gz
   --2016-11-29 21:22:04-- https://github.com/coreos/
      coreos-kubernetes/releases/download/v0.7.1/
      kube-aws-linux-amd64.tar.gz
   Resolving github.com (github.com)... 192.30.253.112,
      192.30.253.113
   Connecting to github.com (github.com)|192.30.253.112|:443...
      connected.
   HTTP request sent, awaiting response... 302 Found
   Location: https://github-cloud.s3.amazonaws.com/releases/
      41458519/309e294a-29b1-
   ...
   ...
   2016-11-29 21:22:05 (62.5 MB/s) - 'kube-aws-linux-amd64.tar.gz'
      saved [4655969/4655969]

   [Pipeline] sh
   [install-kubernetes] Running shell script
   + wget https://github.com/coreos/coreos-kubernetes/releases/
   download/v0.7.1/kube-aws-linux-amd64.tar.gz.sig
   --2016-11-29 21:22:05--  https://github.com/coreos/
      coreos-kubernetes/releases/download/v0.7.1/kube-aws-linux-
      amd64.tar.gz.sig
   Resolving github.com (github.com)... 192.30.253.113,
      192.30.253.112
   Connecting to github.com (github.com)|192.30.253.113|:443...
      connected.
   HTTP request sent, awaiting response... 302 Found
   Location: https://github-cloud.s3.amazonaws.com/releases/
      41458519/0543b716-2bf4-
   ...
   ...
   Saving to: 'kube-aws-linux-amd64.tar.gz.sig'

   0K                          100% 9.21M=0s

   2016-11-29 21:22:05 (9.21 MB/s) -
      'kube-aws-linux-amd64.tar.gz.sig' saved [287/287]

   [Pipeline] sh
   [install-kubernetes] Running shell script
   + gpg2 --verify kube-aws-linux-amd64.tar.gz.sig kube-aws-
   linux-amd64.tar.gz
   gpg: Signature made Mon 06 Jun 2016 09:32:47 PM UTC using RSA
        key ID BEDDBA18
   gpg: Good signature from "CoreOS Application Signing Key
        <[email protected]>" [unknown]
   gpg: WARNING: This key is not certified with a trusted
        signature!
   gpg: There is no indication that the signature belongs to the
        owner.
   Primary key fingerprint: 18AD 5014 C99E F7E3 BA5F  6CE9 50BD
                            D3E0 FC8A 365E
      Subkey fingerprint: 55DB DA91 BBE1 849E A27F  E733 A6F7
                          1EE5 BEDD BA18
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + tar zxvf kube-aws-linux-amd64.tar.gz
   linux-amd64/
   linux-amd64/kube-aws
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + sudo mv linux-amd64/kube-aws /usr/local/bin
   [Pipeline] sh
   [install-kubernetes] Running shell script
   ...
   ...
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + aws ec2 create-volume --availability-zone us-east-1c
   --size 10 --volume-type gp2
   {
      "AvailabilityZone": "us-east-1c",
      "Encrypted":        false,
      "VolumeType":       "gp2",
      "VolumeId":         "vol-b325332f",
      "State":            "creating",
      "Iops":             100,
      "SnapshotId":       "",
      "CreateTime":       "2016-11-29T21:22:07.949Z",
      "Size":             10
   }
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + aws ec2 create-key-pair --key-name kubernetes-coreos
   --query KeyMaterial --output text
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + chmod 400 kubernetes-coreos.pem
   [Pipeline] stage (Kube-aws init)
   Using the 'stage' step without a block argument is deprecated
   Entering stage Kube-aws init
   Proceeding
   [Pipeline] deleteDir
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + mkdir coreos-cluster
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + cd coreos-cluster
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + kube-aws init --cluster-name=kubernetes-coreos-cluster
   --external-dns-name=NOSQLSEARCH.COM --region=us-east-1
   --availability-zone=us-east-1c --key-name=kubernetes-coreos
   --kms-key-arn=arn:aws:kms:us-east-1:672593526685:key/
      c9748fda-2ac6-43ff-a267-d4edc5b21ad9
   Success! Created cluster.yaml

   Next steps:
   1. (Optional) Edit cluster.yaml to parameterize the cluster.
   2. Use the "kube-aws render" command to render the stack
      template.
   [Pipeline] stage (Kube-aws render)
   Using the 'stage' step without a block argument is deprecated
   Entering stage Kube-aws render
   Proceeding
   [Pipeline] input
   Input requested
   Approved by Deepak Vohra
   [Pipeline] input
   Input requested
   Approved by Deepak Vohra
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + kube-aws render
   Success! Stack rendered to stack-template.json.

   Next steps:
   1. (Optional) Validate your changes to cluster.yaml with
      "kube-aws validate"
   2. (Optional) Further customize the cluster by modifying
      stack-template.json or files in ./userdata.
   3. Start the cluster with "kube-aws up".
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + sed -i 's/#workerCount: 1/workerCount: 3/' cluster.yaml
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + sed -i 's/#workerInstanceType: m3.medium/
      workerInstanceType: t2.micro/' cluster.yaml
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + kube-aws validate
   Validating UserData...
   UserData is valid.

   Validating stack template...
   Validation Report: {
      Capabilities: ["CAPABILITY_IAM"],
      CapabilitiesReason: "The following resource(s) require
         capabilities: [AWS::IAM::Role]",
      Description: "kube-aws Kubernetes cluster
         kubernetes-coreos-cluster"
   }
   stack template is valid.

   Validation OK!
   [Pipeline] stage (Archive CFN)
   Using the 'stage' step without a block argument is deprecated
   Entering stage Archive CFN
   Proceeding
   [Pipeline] step
   Archiving artifacts
   Recording fingerprints
   [Pipeline] stage (Deploy Cluster)
   Using the 'stage' step without a block argument is deprecated
   Entering stage Deploy Cluster
   Proceeding
   [Pipeline] input
   Input requested
   Approved by Deepak Vohra
   [Pipeline] echo
   Deploying Kubernetes cluster
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + kube-aws up
   Creating AWS resources. This should take around 5 minutes.
   Success! Your AWS resources have been created:
   Cluster Name:    kubernetes-coreos-cluster
   Controller IP:   34.193.183.134

   The containers that power your cluster are now being downloaded.

   You should be able to access the Kubernetes API once the
      containers finish downloading.
   [Pipeline] sh
   [install-kubernetes] Running shell script
   + kube-aws status
   Cluster Name:    kubernetes-coreos-cluster
   Controller IP:   34.193.183.134
   [Pipeline] step
   Archiving artifacts
   Recording fingerprints
   [Pipeline] }
[Pipeline]   // Node
[Pipeline] End of Pipeline
Finished: SUCCESS

Kiểm tra Cụm Kubernetes

Sau khi cài đặt Kubernetes, tiếp theo, chúng tôi sẽ kiểm tra cụm bằng cách chạy một số ứng dụng. Đầu tiên, chúng ta cần định cấu hình Ip bộ điều khiển trên Tên DNS Công khai ( nosqlsearch.com miền). Sao chép IP của Bộ điều khiển từ Đầu ra của Bảng điều khiển, như trong Hình 17.


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

Ip Bộ điều khiển Kubernetes cũng có thể được lấy từ Bảng điều khiển EC2, như thể hiện trong Hình 18.


Hình 18: Lấy Ip Bộ điều khiển Kubernetes

Thêm mục nhập A (Máy chủ lưu trữ) vào tệp DNS Zone cho miền nosqlsearch.com tại nhà cung cấp dịch vụ lưu trữ, như thể hiện trong Hình 19. Việc thêm bản ghi A sẽ hơi khác đối với các nhà cung cấp dịch vụ lưu trữ khác nhau.


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

SSH Đăng nhập Kubernetes Master bằng Master’s Ip.

ssh -i "kubernetes-coreos.pem" [email protected]

Dấu nhắc lệnh CoreOS được hiển thị, như trong Hình 20.


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

Cài đặt kubectl nhị phân:

sudo wget https://storage.googleapis.com/kubernetes-release/
   release/v1.3.0/bin/linux/amd64/./kubectl
sudo chmod +x ./kubectl

Liệt kê các nút:

./kubectl get nodes

Các nút cụm Kubernetes được liệt kê (xem Hình 21).


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

Để kiểm tra cụm, hãy tạo một triển khai cho nginx bao gồm ba bản sao.

kubectl  run nginx --image=nginx --replicas=3

Sau đó, liệt kê các triển khai:

kubectl get deployments

Việc triển khai “nginx” sẽ được liệt kê, như thể hiện trong Hình 22.


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

Liệt kê các Nhóm trên toàn cụm:

kubectl get pods -o wide

Tạo một dịch vụ thuộc loại LoadBalancer từ nginx triển khai:

kubectl expose deployment nginx --port=80 --type=LoadBalancer

Liệt kê các dịch vụ:

kubectl get services

Các Pod toàn cụm được liệt kê, như trong Hình 23. Dịch vụ “nginx” được tạo và liệt kê bao gồm ip cụm và Ip bên ngoài.


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

Gọi nginx dịch vụ tại ip cụm. nginx đánh dấu HTML đầu ra dịch vụ được hiển thị, như trong Hình 24.


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

Kết luận

Trong ba bài báo, chúng ta đã thảo luận về việc cài đặt Kubernetes cluster bằng cách sử dụng dự án Jenkins. Chúng tôi đã tạo một dự án Jenkins Pipeline với Jenkinsfile để cài đặt cụm. Đường ống Jenkins tự động hóa cài đặt Kubernetes và đường ống Jenkins tương tự có thể được sửa đổi theo yêu cầu và chạy lại để tạo nhiều cụm 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. Cách tạo bảng từ truy vấn SQL

  2. Bảng lừa đảo SQL UNION với 10 mẹo dễ dàng và hữu ích

  3. Giới thiệu về Cơ sở dữ liệu Chuỗi thời gian

  4. Các blog cơ sở dữ liệu hàng đầu để theo dõi

  5. Giải pháp thử thách trình tạo chuỗi số - Phần 2