0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Hướng Dẫn Triển Khai Jenkins Trên Kubernetes Sử Dụng Helm Chi Tiết

Đăng vào 11 tháng trước

• 6 phút đọc

Chủ đề:

Kubernetes

Hướng Dẫn Triển Khai Jenkins Trên Kubernetes Sử Dụng Helm

Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết về cách tạo và triển khai biểu đồ Helm tùy chỉnh để dễ dàng triển khai Jenkins trên Kubernetes. Helm là một công cụ quản lý gói mạnh mẽ cho Kubernetes, giúp bạn tự động hóa quy trình triển khai ứng dụng bằng cách đóng gói chúng thành các biểu đồ. Việc sử dụng Helm không chỉ tiết kiệm thời gian mà còn giúp bạn quản lý tài nguyên Kubernetes một cách hiệu quả hơn thông qua khả năng tự động hóa và tổ chức.

Tại Sao Nên Chọn Helm để Triển Khai Ứng Dụng?

Helm mang lại nhiều lợi ích cho việc triển khai ứng dụng trên Kubernetes, bao gồm:

  • Đóng gói tài nguyên Kubernetes: Biểu đồ Helm chứa tất cả các bản kê khai cần thiết cho việc triển khai một ứng dụng, giúp việc quản lý và cập nhật trở nên dễ dàng hơn.
  • Kiểm soát phiên bản: Helm duy trì các phiên bản phát hành của ứng dụng, cho phép bạn nâng cấp hoặc khôi phục ứng dụng theo ý muốn.
  • Tùy chỉnh và tham số hóa: Bạn có thể sử dụng cùng một biểu đồ để triển khai các phiên bản khác nhau của một ứng dụng chỉ bằng cách thay đổi các giá trị cấu hình.
  • Khả năng lặp lại: Với Helm, bạn có thể triển khai các ứng dụng một cách nhất quán trên nhiều môi trường khác nhau mà không gặp khó khăn.

Các Bước Triển Khai Jenkins Trên Kubernetes

Bước 1: Tạo Biểu Đồ Helm

Để bắt đầu, hãy sử dụng lệnh sau để tạo một biểu đồ Helm có tên là myhelmchart

bash Copy
helm create myhelmchart

Lệnh này sẽ tạo ra một cấu trúc thư mục với các tệp và mẫu cơ bản cần thiết cho việc triển khai Kubernetes. Dưới đây là mô tả về các thành phần trong cấu trúc biểu đồ:

  • Chart.yaml: Chứa siêu dữ liệu của biểu đồ Helm, bao gồm tên biểu đồ, phiên bản và appVersion (phiên bản ứng dụng).
  • values.yaml: Chứa các giá trị mặc định mà biểu đồ sử dụng, có thể được ghi đè trong quá trình cài đặt.
  • templates/: Chứa các bản kê khai Kubernetes (tệp YAML) cho triển khai, dịch vụ, và các tài nguyên Kubernetes khác.
  • NOTES.txt: Cung cấp các thông tin hướng dẫn sau khi cài đặt biểu đồ.

Bước 2: Cập Nhật Chart.yaml

Tiếp theo, hãy mở và cập nhật tệp Chart.yaml để chỉ định phiên bản Jenkins mà bạn muốn triển khai:

bash Copy
cd myhelmchart
vim Chart.yaml

Sửa đổi trường appVersion để phản ánh phiên bản Jenkins mong muốn, chẳng hạn:

yaml Copy
appVersion: "2.249.2"

Bước 3: Dọn Dẹp Các Tệp Không Cần Thiết

Để đơn giản hóa biểu đồ của mình, hãy xóa các tệp và thư mục không cần thiết:

bash Copy
rm -rf templates/*.yaml templates/tests

Bước 4: Tạo Bản Kê Khai Triển Khai và Dịch Vụ

Trong thư mục templates/, hãy tạo hai tệp mới: một cho việc triển khai Jenkins và một cho dịch vụ:

1. Tạo Bản Kê Khai Triển Khai Jenkins

bash Copy
cd templates
touch jenkins-deployment.yaml
vim jenkins-deployment.yaml

Thêm đoạn mã sau vào jenkins-deployment.yaml:

yaml Copy
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ template "myhelmchart.fullname" . }}
  labels:
    app: jenkins
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      containers:
        - name: jenkins
          image: {{ printf "%s:%s" .Values.image.repository .Values.image.tag | quote }}
          env:
            - name: JENKINS_USERNAME
              value: {{ default "test" .Values.jenkinsUsername | quote }}
            - name: JENKINS_PASSWORD
              {{- if .Values.jenkinsPassword }}
              value: {{.Values.jenkinsPassword }}
              {{- else }}
              value: testPassword
              {{- end }}
          ports:
            {{- range .Values.containerPorts }}
            - name: {{ .name }}
              containerPort: {{ .port }}
            {{- end }}

Bản kê khai này xác định một triển khai đơn giản với một bản sao ứng dụng Jenkins đang chạy.

2. Tạo Bản Kê Khai Dịch Vụ Jenkins

bash Copy
touch jenkins-service.yaml
vim jenkins-service.yaml

Thêm nội dung sau vào jenkins-service.yaml:

yaml Copy
apiVersion: v1
kind: Service
metadata:
  name: {{ template "myhelmchart.fullname" . }}
spec:
  type: {{ .Values.service.type }}
  ports:
    - name: http
      port: 8080
      targetPort: http
      nodePort: {{ .Values.service.nodePort }}
  selector:
    app: jenkins

Bản kê khai này sẽ cấu hình dịch vụ để công khai ứng dụng Jenkins thông qua cổng 8080.

Bước 5: Cập Nhật NOTES.txt

Hãy cập nhật tệp NOTES.txt để cung cấp thông tin sau khi cài đặt:

bash Copy
echo “Đây là biểu đồ đầu tiên của tôi” > NOTES.txt

Bước 6: Cập Nhật values.yaml

Tiếp theo, hãy sửa đổi tệp values.yaml để thêm cấu hình cho Jenkins:

yaml Copy
image:
  repository: bitnami/jenkins
  tag: latest

jenkinsUsername: ""
jenkinsPassword: ""

containerPorts:
  - name: http
    port: 8080

service:
  type: NodePort
  nodePort: 30080

Bước 7: Chạy Lệnh Helm Template

Để xác minh rằng biểu đồ hoạt động đúng trước khi cài đặt, hãy sử dụng lệnh sau để kiểm tra:

bash Copy
helm template myhelmchart . -s templates/jenkins-deployment.yaml

Bước 8: Cài Đặt Biểu Đồ Helm

Bây giờ, bạn có thể cài đặt biểu đồ Helm đã tạo bằng lệnh sau:

bash Copy
helm install myhelmchart ./myhelmchart

Điều này sẽ triển khai Jenkins lên cụm Kubernetes của bạn.

Bước 9: Lấy IP Công Cộng Của Nút và Truy Cập Jenkins

Để truy cập Jenkins qua trình duyệt web, bạn cần lấy địa chỉ IP công cộng của nút (chẳng hạn như EC2) nơi pod Jenkins đang chạy:

1. Lấy IP công cộng của nút:

bash Copy
kubectl get nodes -o wide

Tìm địa chỉ IP công cộng của nút đang chạy pod Jenkins.

2. Truy Cập Jenkins trong Trình Duyệt:

Mở trình duyệt và điều hướng đến:

bash Copy
http://<Public_IP>:30080

Bước 10: Đăng Nhập Vào Bảng Điều Khiển Jenkins

Khi bạn truy cập Jenkins, hệ thống sẽ yêu cầu bạn nhập tên người dùng và mật khẩu. Hãy sử dụng thông tin đăng nhập đã được định cấu hình trong biểu đồ Helm của bạn:

  • Tên người dùng: Giá trị của jenkinsUsername (hoặc kiểm tra nếu không được đặt).
  • Mật khẩu: Giá trị của jenkinsPassword (hoặc testPassword nếu không được đặt).

Kết Luận

Trên đây là hướng dẫn chi tiết về cách tạo và triển khai biểu đồ Helm để cài đặt Jenkins trên Kubernetes. Việc sử dụng Helm giúp cho việc quản lý ứng dụng trở nên hiệu quả và dễ dàng hơn. Hy vọng bài viết này sẽ giúp bạn có được trải nghiệm tốt khi làm việc với Jenkins và Kubernetes. Cảm ơn bạn đã theo dõi!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào