ฉันกำลังพยายามตั้งค่า Jenkins ในคลัสเตอร์ Digital Ocean Kubernetes ฉันใช้ตัวควบคุมขาเข้า NGINX เนื่องจากต้องการเข้าถึงเซิร์ฟเวอร์จากโดเมนย่อย (jenkins.example.com) จนถึงตอนนี้ทุกอย่างทำงานได้ดี ฉันมี UI ของฉันในโดเมนดังกล่าวที่รักษาความปลอดภัยด้วยใบรับรองที่กำหนดเอง ฉันเริ่มพบปัญหาเมื่อพยายามเชื่อมต่อตัวแทนของฉัน (หรือทาสที่ฉันอ่านที่อื่น?) กับเซิร์ฟเวอร์
สิ่งที่ฉันได้ลอง
ฉันพยายามตั้งค่าโหลดบาลานเซอร์ แต่ไม่สามารถใช้งานได้เนื่องจากฉันใช้ Digital Ocean และเอกสารส่วนใหญ่ที่ฉันพบคือ GKE / EKS และอื่น ๆ ซึ่งมี LB ภายในของตัวเอง ฉันยังพยายามทำแผนที่เส้นทาง /ตัวแทน
บนชื่อพอร์ตของบริการจากนั้นในบริการอื่นที่มีประเภท "ClusterIP" ไม่สำเร็จ (ไม่พบจาก Jenkins)
การกำหนดค่าปัจจุบันของฉัน
jenkins-deployment.yaml
apiVersion: แอป/v1
ประเภท: การปรับใช้
ข้อมูลเมตา:
ชื่อ: เจนกินส์-เดป
ป้ายกำกับ:
แอพ: เจนกินส์
ข้อมูลจำเพาะ:
แบบจำลอง: 1
ตัวเลือก:
ป้ายกำกับการแข่งขัน:
แอพ: เจนกินส์
แม่แบบ:
ข้อมูลเมตา:
ป้ายกำกับ:
แอพ: เจนกินส์
ข้อมูลจำเพาะ:
ตู้คอนเทนเนอร์:
- ชื่อ: เจนกินส์
ภาพ: jenkins/jenkins:lts-jdk11
imagePullPolicy: ถ้าไม่ใช่ปัจจุบัน
พอร์ต:
- พอร์ตคอนเทนเนอร์: 8080
- ตู้คอนเทนเนอร์พอร์ต: 50,000
jenkins-service.yaml
api เวอร์ชัน: v1
ชนิด:บริการ
ข้อมูลเมตา:
ชื่อ: jenkins-svc
ป้ายกำกับ:
แอพ: เจนกินส์
ข้อมูลจำเพาะ:
ประเภท: NodePort
ตัวเลือก:
แอพ: เจนกินส์
พอร์ต:
- ชื่อ: อุ้ย
โปรโตคอล: TCP
พอร์ต: 8080
พอร์ตเป้าหมาย: 8080
โหนดพอร์ต: 32500
- ชื่อ: ตัวแทน
โปรโตคอล: TCP
พอร์ต: 50,000
พอร์ตเป้าหมาย: 50,000
โหนดพอร์ต: 32501
jenkins-ingress.yaml
รุ่น api: networking.k8s.io/v1
ชนิด: ทางเข้า
ข้อมูลเมตา:
ชื่อ: jenkins-ingress
ข้อมูลจำเพาะ:
tls:
- เจ้าภาพ:
- jenkins.example.com
ชื่อลับ: tls-ความลับ
กฎ:
- โฮสต์: jenkins.example.com
http:
เส้นทาง:
- เส้นทาง: /
pathType: คำนำหน้า
แบ็กเอนด์:
บริการ:
ชื่อ: jenkins-svc
ท่า:
ชื่อ: อุ้ย
#- เส้นทาง: /ตัวแทน
# pathType: คำนำหน้า
# แบ็กเอนด์:
# บริการ:
# ชื่อ: jenkins-svc
# ท่า:
#ชื่อ:ตัวแทน
สิ่งสำคัญที่สุดคือ: ฉันจะทำให้พอร์ต Jenkins 50000 พร้อมใช้งานสำหรับตัวแทนเพื่อเชื่อมต่อบนเซิร์ฟเวอร์ของฉันได้อย่างไร หรือฉันจะเปลี่ยนการตั้งค่า Jenkins เพื่อรองรับการกำหนดค่าดังกล่าวได้อย่างไร