# Jenkins High Availability Solution Due to the architecture design of Jenkins itself, it does not natively support a multi-node setup, making horizontal scaling for high availability unfeasible. However, leveraging Kubernetes' fault tolerance mechanism, when a Jenkins Pod fails, Kubernetes can schedule the Pod onto another node, thus achieving high availability. Thus, the primary focus for Jenkins high availability is on ensuring high availability at the data storage layer. In DCE 5.0, Jenkins high availability is achieved by utilizing the storage layer of HwameiStor. HwameiStor supports the use of DRBD (Distributed Replicated Block Device) to mount duplicate data copies simultaneously on multiple nodes. When the node hosting Jenkins goes down, Kubernetes can schedule the Pod onto another node seamlessly, allowing continued access to the previous data and thereby achieving high availability. !!! tip HwameiStor, through its implementation of the DRBD solution, ensures high availability at the storage layer. Therefore, theoretically, any Container Storage Interface (CSI) capable of supporting DRBD, such as Linstor, can enable high availability. The following section will explain how to achieve Jenkins high availability based on HwameiStor. ## Prerequisites - To install HwameiStor, refer to . At least two nodes are required for high availability. - Ensure that the system has available and clean disks (disks with no existing data or partition information), as HwameiStor cannot utilize disks that are already in use. You can use the __kubectl get ld__ command to view disk information in the system. ## Installation Steps 1. Confirm the availability of disks ```shell kubectl get ld ``` The output should resemble: ```console localdisk-f24ee676b24652341ed5d61560b7bb16 controller-node-1 /dev/sdb Available Active 51m ``` > New disks will have the status "Available" and can be detected after they are added. 2. Confirm disk type ```shell kubectl get ld localdisk-f24ee676b24652341ed5d61560b7bb16 -o yaml | grep type ``` The output should resemble: ```console type: HDD ``` > Pay attention to distinguish between HDD and SSD types. 3. Create a LocalDiskClaim to add the disk to HwameiStor's management. ```shell > kubectl apply -f - <