- vừa được xem lúc

Triển khai JIRA/Confluence trên Kubernetes

0 0 30

Người đăng: Sunteco Tech Team

Theo Viblo Asia

JIRA là một ứng dụng để theo dõi, quản lý lỗi, các vấn đề phát sinh trong dự án, giúp cho việc quản lý phát triển dự án dễ dàng hơn cho mọi tổ chức. Đối với các tổ chức/ cá nhân triển khai một dự án hiện nay, JIRA gần như là công cụ số một để kiểm soát, theo dõi và tối ưu quy trình phát triển.

Đi kèm với JIRA là Confluence, một không gian làm việc nhóm, nơi chia sẻ, kết hợp kiến thức và cộng tác theo nhóm. Confluence là một công cụ tuyệt vời cho phép tạo ra các không gian theo nhóm nhằm mục đích cấu trúc, tổ chức và chia sẻ tài liệu, ý tưởng về dự án, giúp mọi thành viên trong nhóm có khả năng tiếp cận thông tin một cách thuận lợi và nhanh chóng nhất.

Cả JIRA/ Confluence đều thuộc sở hữu của Atlasssian — một gã khổng lồ về các công cụ hỗ trợ quản lý và phát triển dự án. JIRA/ Confluence phù hợp với mọi loại dự án, từ nhỏ đến lớn, từ startup đến các công ty lớn.

Phương thức triển khai cài đặt JIRA/ Confluence thường là trên một máy chủ vật lý, hoặc trên một máy ảo. Tuy nhiên, hiện nay kiến trúc microservices đang dần trở thành trào lưu, đi cùng với nó là sự hiện diện của Kubernetes với những ưu điểm vượt trội trong các tổ chức, dự án. Nếu vẫn cài đặt JIRA/ Confluence trên máy vật lý/ máy ảo theo cách cũ, ta sẽ mất một phần tài nguyên cho các công cụ quản lý này. Điều này có thể không là vấn đề đối với một công ty lớn với nguồn tài nguyên dồi dào, nhưng có thể gây ra lãng phí với một đội ngũ có tài nguyên khiêm tốn hơn, vừa muốn có JIRA/ Confluence để quản lý dự án, lại vừa muốn duy trì Kubernetes cho việc triển khai ứng dụng.

Để tận dụng sức mạnh của Kubernetes, mà lại tránh gây lãng phí tài nguyên, tại sao không triển khai JIRA/ Confluence trên chính Kubernetes nhỉ? Và trong khuôn khổ bài viết này, mình sẽ giới thiệu với các bạn về cách để triển khai JIRA/ Confluence trên Kubernetes.

Cài đặt

Giả định rằng bạn đã cài Kubernetes lên trước đó, nếu chưa bạn có thể tham khảo các bài viết khác về cài đặt Kubernetes. Do đã có rất nhiều bài viết hướng dẫn nên mình sẽ không trình bày lại ở đây.

Cài đặt Helm

Cách 1: Triển khai cài đặt Helm bằng script, có thể bỏ qua nếu đã cài Helm trước đó

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

Hoặc ngắn gọn hơn

$ curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Cách 2: Cài Helm bằng Apt

$ curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
$ sudo apt-get install apt-transport-https --yes
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
$ sudo apt-get update
$ sudo apt-get install helm

Cài đặt Database

JIRA/ Confluence cần một backend database. Bỏ qua bước này nếu bạn muốn dùng database bên ngoài Kubernetes

JIRA/ Confluence hỗ trợ khá nhiều loại database, trong phần này sẽ hướng dẫn bạn triển khai postgresql bằng Helm

$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm repo update
$ helm install postgresql --set auth.postgresPassword=secretpassword --set auth.username=username --set auth.password=password --set auth.database=database bitnami/postgresql

Thêm Helm chart repository

Thêm Helm chart repository

$ helm repo add atlassian-data-center \ https://atlassian.github.io/data-center-helm-charts

Cập nhật repository

$ helm repo update

Tải file values.yaml

Tải file mặc định values.yaml từ chart thông qua lệnh sau

$ helm show values atlassian-data-center/<product> > values.yaml

Trong đó < product> là tên dịch vụ mà bạn muốn triển khai, bao gồm

  • Jira
  • Confluence

Cấu hình Database

Để sử dụng Database với JIRA/ Confluence, ta cần nhập cấu hình Database vào file values.yaml có được từ bước trên

Tạo Kubernetes secret để chứa thông tin username/ password truy cập vào database

$ kubectl create secret generic jira-connect --from-literal=username='username' --from-literal=password='password'

Sau khi tạo xong secret, điền thông tin database vào các trường thông tin tương ứng trong file values.yaml như sau

database: type: <db_type> url: <jdbc_url> driver: <engine_driver> credentials: secretName: jira-connect usernameSecretKey: username passwordSecretKey: password

Cấu hình Ingress

Để sử dụng URL truy cập vào JIRA/ Confluence, ta cần cấu hình Ingress Controller vào file values.yaml

ingress: create: true #1. Chọn true để tạo Ingress nginx: true #2. Nếu sử dụng ingress-nginx controller maxBodySize: 250m host: <dns_host_name> #2. Địa chỉ host để truy cập vào JIRA/ CONFLUENCE path: "/" annotations: cert-manager.io/issuer: <certificate_issuer> https: true tlsSecretName: <tls_certificate_name>

Cấu hình Persistent Storage (Tùy chọn)

Nếu triển khai JIRA/ Confluence theo cluster, ta cần cấu hình Persistent Storage

Có 2 Storage cần cấu hình đó là share-homelocal-home

Với share-home, ta cần tạo Persistent Volume sử dụng EFS filesystem và cấu hình cho storage trong file values.yaml

volumes: sharedHome: customVolume: persistentVolumeClaim: claimName: <pvc_name>

Mỗi pod trong JIRA/ Confluence cluster cần có local-home storage, cần cấu hình StorageClass cho local-home trong file values.yaml

volumes: localHome: persistentVolumeClaim: create: true storageClassName: <storage-class-name>

Cấu hình cluster

Nếu muốn triển khai JIRA/ Confluence theo cluster, ta có thể cấu hình trong file values.yaml

clustering: enabled: true

Cấu hình License

Tạo Kubernetes secret chứa thông tin License

$ kubectl create secret generic jira-license --from-literal=license-key='<product_license_key>'

Cập nhật thông tin license trong file values.yaml

license: secretName: jira-license secretKey: license-key

Cấu hình container images

Nếu muốn chỉ định version của JIRA/ Confluence, điền tag name trong file values.yaml hoặc điền latest để sử dụng phiên bản mới

Kết

Đến đây là các bạn đã hoàn thành các bước triển khai JIRA/ Confluence trên Kubernetes. Việc còn lại là thêm user và tạo dự án theo nhu cầu của công việc.

Đối với các bạn không có đủ điều kiện để triển khai Kubernetes mà vẫn muốn trải nghiệm JIRA trên nền container, thì có một sự lựa chọn khác dành cho các bạn, đó là sử dụng nền tảng Sun Spinner của Sunteco Cloud.

Trải nghiệm Sun Spinner miễn phí ngay tại đây.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Deploying A Containerized Web Application On Kubernetes

1. Overview. Kubernetes is an open source project (available on kubernetes.io) which can run on many different environments, from laptops to high-availability multi-node clusters; from public clouds to on-premise deployments; from virtual machines to bare metal.

0 0 55

- vừa được xem lúc

Kubernetes - Học cách sử dụng Kubernetes Namespace cơ bản

Namespace trong Kubernetes là gì. Tại sao nên sử dụng namespace.

0 0 113

- vừa được xem lúc

[Kubernetes] Kubectl và các command cơ bản

Mở đầu. Kubectl là công cụ quản trị Kubernetes thông qua giao diện dòng lệnh, cho phép bạn thực thi các câu lệnh trong Kubernetes cluster.

0 0 59

- vừa được xem lúc

Triển khai EFK Stack trên Kubernetes

EFK stack on K8S. Giới thiệu. Một hệ thống có thể chạy nhiều dịch vụ hoặc ứng dụng khác nhau, vì vậy việc. theo dõi hệ thống là vô cùng cần thiết.

0 0 72

- vừa được xem lúc

Thực hành Kubernetes (K8S) bằng cách sử dụng lệnh Command

Bài hướng dẫn hôm nay sẽ hướng dẫn sử dụng K8S bằng cách sử dụng câu lệnh thay vì UI trên web. Có 2 lựa chọn để thực hiện:. . Sử dụng Cloud Shell.

0 0 56

- vừa được xem lúc

Kubernetes best practices - Liveness và Readiness Health checks

Mở đầu. Kubernetes cung cấp cho bạn một framework để chạy các hệ phân tán một cách mạnh mẽ.

0 0 49