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
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
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
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
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
cd templates
touch jenkins-deployment.yaml
vim jenkins-deployment.yaml
Thêm đoạn mã sau vào jenkins-deployment.yaml:
yaml
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
touch jenkins-service.yaml
vim jenkins-service.yaml
Thêm nội dung sau vào jenkins-service.yaml:
yaml
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
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
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
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
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
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
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ặctestPasswordnế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