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 :
- Một cụm Kubernetes và
kubectl
được cài đặt trên máy trạm của bạn. Theo dõi Kubernetes Quickstart của ta để cài đặt một cụm Kubernetes trên DigitalOcean.
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:
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 8080
và 50000
. 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:
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:
OutputNAME 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:
OutputNAME 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.
Đế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 .
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 .
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.
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 .
Các tin liên quan