Thứ sáu, 18/09/2020 | 00:00 GMT+7

Cách cài đặt Jenkins trên Kubernetes

Đường ống Tích hợp liên tục / Triển khai liên tục (CI / CD) là một trong những thành phần cốt lõi của môi trường DevOps. Chúng giúp hợp lý hóa quy trình làm việc giữa nhiều group và tăng năng suất. Jenkins là một server tự động hóa open-souce được sử dụng rộng rãi có thể cài đặt các đường ống CI / CD.

Trong hướng dẫn này, bạn sẽ cài đặt Jenkins trên Kubernetes. Sau đó, bạn sẽ truy cập vào giao diện user Jenkins và chạy một đường dẫn mẫu.

Yêu cầu

Để làm theo hướng dẫn này, bạn cần :

Bước 1 - Cài đặt Jenkins trên Kubernetes

Kubernetes có một API khai báo và bạn có thể truyền đạt trạng thái mong muốn bằng cách sử dụng tệp YAML hoặc JSON . Đối với hướng dẫn này, bạn sẽ sử dụng file YAML để triển khai Jenkins. Đảm bảo rằng bạn đã cấu hình lệnh kubectl cho cụm.

Đầu tiên, sử dụng kubectl để tạo không gian tên Jenkins:

  • kubectl create namespace jenkins

Tiếp theo, tạo file YAML sẽ triển khai Jenkins.

Tạo và mở file mới có tên jenkins.yaml bằng nano hoặc editor bạn muốn :

  • nano jenkins.yaml

Bây giờ hãy thêm đoạn mã sau để xác định hình ảnh Jenkins, cổng của nó và một số cấu hình khác:

jenkins.yaml
apiVersion: apps/v1 kind: Deployment metadata:   name: jenkins spec:   replicas: 1   selector:     matchLabels:       app: jenkins   template:     metadata:       labels:         app: jenkins     spec:       containers:       - name: jenkins         image: jenkins/jenkins:lts         ports:           - name: http-port             containerPort: 8080           - name: jnlp-port             containerPort: 50000         volumeMounts:           - name: jenkins-vol             mountPath: /var/jenkins_vol       volumes:         - name: jenkins-vol           emptyDir: {} 

Tệp YAML này tạo một triển khai bằng cách sử dụng hình ảnh Jenkins LTS và cũng mở cổng 808050000 . Bạn sử dụng các cổng này để truy cập Jenkins và chấp nhận kết nối từ các nhân viên Jenkins tương ứng.

Bây giờ tạo triển khai này trong không gian tên jenkins :

  • kubectl create -f jenkins.yaml --namespace jenkins

Cho cụm một vài phút để kéo hình ảnh Jenkins và chạy group Jenkins.

Sử dụng kubectl để xác minh trạng thái của group :

  • kubectl get pods -n jenkins

Bạn sẽ nhận được một kết quả như thế này:

NAME                       READY   STATUS    RESTARTS   AGE jenkins-6fb994cfc5-twnvn   1/1     Running   0          95s 

Lưu ý tên group sẽ khác trong môi trường của bạn.

Khi group đang chạy, bạn cần để lộ nó bằng Dịch vụ . Bạn sẽ sử dụng loại Dịch vụ NodePort cho hướng dẫn này. Ngoài ra, bạn sẽ tạo một dịch vụ loại ClusterIP để công nhân kết nối với Jenkins.

Tạo và mở một file mới có tên jenkins-service.yaml :

  • nano jenkins-service.yaml

Thêm mã sau để xác định Dịch vụ NodePort:

jenkins-service.yaml
apiVersion: v1 kind: Service metadata:   name: jenkins spec:   type: NodePort   ports:     - port: 8080       targetPort: 8080       nodePort: 30000   selector:     app: jenkins  ---  apiVersion: v1 kind: Service metadata:   name: jenkins-jnlp spec:   type: ClusterIP   ports:     - port: 50000       targetPort: 50000   selector:     app: jenkins 

Trong file YAML ở trên, bạn xác định Dịch vụ NodePort của bạn và sau đó hiển thị cổng 8080 của pod Jenkins thành cổng 30000 .

Bây giờ, hãy tạo Dịch vụ trong cùng một không gian tên:

  • kubectl create -f jenkins-service.yaml --namespace jenkins

Kiểm tra xem Dịch vụ đang chạy:

  • kubectl get services --namespace jenkins

Bạn sẽ nhận được một kết quả như thế này:

Output
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE jenkins NodePort your_cluster_ip <none> 8080:30000/TCP 15d

Với NodePort và Jenkins hoạt động, bạn đã sẵn sàng truy cập vào giao diện user Jenkins và bắt đầu khám phá nó.

Bước 2 - Truy cập giao diện user Jenkins

Trong bước này, bạn sẽ truy cập và khám phá giao diện user Jenkins. Dịch vụ NodePort của bạn có thể truy cập trên cổng 30000 trên các node cụm. Bạn cần truy xuất IP nút để truy cập giao diện user Jenkins.

Sử dụng kubectl để truy xuất các IP nút của bạn:

  • kubectl get nodes -o wide

kubectl sẽ tạo ra một kết quả với các IP bên ngoài của bạn:

Output
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME your_node Ready <none> 16d v1.18.8 your_internal_ip your_external_ip Debian GNU/Linux 10 (buster) 4.19.0-10-cloud-amd64 docker://18.9.9 your_node Ready <none> 16d v1.18.8 your_internal_ip your_external_ip Debian GNU/Linux 10 (buster) 4.19.0-10-cloud-amd64 docker://18.9.9 your_node Ready <none> 16d v1.18.8 your_internal_ip your_external_ip Debian GNU/Linux 10 (buster) 4.19.0-10-cloud-amd64 docker://18.9.9

Sao chép một trong các giá trị your_external_ip .

Bây giờ, hãy mở trình duyệt web và chuyển đến http:// your_external_ip :30000 .

Một trang sẽ xuất hiện yêu cầu password administrator và hướng dẫn cách lấy lại password này từ log Jenkins Pod.

Hãy sử dụng kubectl để lấy password từ các bản ghi đó.

Đầu tiên, quay lại terminal của bạn và truy xuất tên Pod của bạn:

  • kubectl get pods -n jenkins

Bạn sẽ nhận được một kết quả như thế này:

NAME                       READY   STATUS    RESTARTS   AGE jenkins-6fb994cfc5-twnvn   1/1     Running   0          9m54s 

Tiếp theo, kiểm tra log của Pod để biết password quản trị. Thay thế phần được đánh dấu bằng tên group của bạn:

  • kubectl logs jenkins-6fb994cfc5-twnvn -n jenkins

Bạn có thể cần cuộn lên hoặc xuống để tìm password :

Running from: /usr/share/jenkins/jenkins.war webroot: EnvVars.masterEnvVars.get("JENKINS_HOME") . . .  Jenkins initial setup is required. An admin user has been created and a password generated. Please use the following password to proceed to installation:  your_jenkins_password  This may also be found at: /var/jenkins_home/secrets/initialAdminPassword . . . 

Sao chép your_jenkins_password . Bây giờ quay lại trình duyệt của bạn và dán nó vào giao diện user Jenkins.

Sau khi bạn nhập password , Jenkins sẽ nhắc bạn cài đặt các plugin. Vì bạn không làm bất cứ điều gì bất thường, hãy chọn Cài đặt các plugin được đề xuất .

Sau khi cài đặt, Jenkins sẽ tải một trang mới và yêu cầu bạn tạo admin-user . Điền vào các trường hoặc bỏ qua bước này bằng cách nhấn nút bỏ qua và tiếp tục với quyền liên kết administrator . Điều này sẽ để lại tên user của bạn là administrator và password của bạn là your_jenkins_password .

Một màn hình khác sẽ xuất hiện hỏi về cấu hình version . Nhấp vào liên kết Không phải bây giờ và tiếp tục.

Sau đó, Jenkins sẽ tạo một bản tóm tắt các lựa chọn của bạn và in Jenkins đã sẵn sàng! Nhấp vào bắt đầu sử dụng Jenkins và trang chủ Jenkins sẽ xuất hiện.

thuật sĩ jenkins

Đến đây bạn đã cài đặt và cấu hình Jenkins trên cụm của bạn , hãy chứng minh khả năng của nó và chạy một đường dẫn mẫu.

Bước 3 - Chạy đường ống dẫn mẫu

Jenkins xuất sắc trong việc tạo đường ống và quản lý quy trình làm việc CI / CD. Trong bước này, ta sẽ xây dựng một trong những đường ống dẫn mẫu của Jenkins.

Từ trang chủ Jenkins, nhấp vào liên kết mục mới trên menu trái tay.

Một trang mới sẽ xuất hiện. Chọn Pipeline và nhấn OK .

thuật sĩ jenkins

Jenkins sẽ chuyển hướng bạn đến cấu hình của đường ống. Tìm phần Đường ống và chọn Hello World từ menu thả xuống đường ống mẫu thử . Menu này xuất hiện ở phía bên tay phải. Sau khi chọn Hello World , hãy nhấp vào nút Lưu .

thuật sĩ jenkins

Jenkins sẽ chuyển hướng bạn đến trang chủ của đường dẫn. Nhấp vào xây dựng ngay từ menu bên trái và xem đường dẫn bắt đầu chạy. Dấu hiệu số 1 cho biết đây là bản dựng đầu tiên. Khi nhiệm vụ hoàn thành, bạn sẽ thấy một số thống kê về công trình.

thuật sĩ jenkins

Bạn cũng có thể kiểm tra kết quả của console để xem điều gì đã xảy ra trong khi đường ống đang chạy. Di chuột qua # 1 và menu thả xuống sẽ xuất hiện. Chọn kết quả console để xem chi tiết của bản dựng.

Đường dẫn Hello World của bạn không quá phức tạp, nhưng nó chứng tỏ Jenkins có thể tạo và quản lý quy trình làm việc CI / CD tốt như thế nào.

Kết luận

Trong hướng dẫn này, bạn đã cài đặt và cấu hình Jenkins trên một cụm Kubernetes và sau đó bạn chạy một đường dẫn mẫu. Jenkins có một kho plugin lớn có thể giúp bạn thực hiện các thao tác rất phức tạp. Bạn cũng có thể thêm repository GitHub của bạn , nhiều loại version worker và hơn thế nữa. Để tìm hiểu thêm về cách sử dụng Jenkins, hãy khám phá tài liệu chính thức của Jenkins .


Tags:

Các tin trước