Điểm:1

Làm cách nào để cung cấp cổng đại lý Jenkins với bộ điều khiển Ingress trên Kubernetes?

lá cờ cn

Tôi đang cố gắng thiết lập Jenkins trong cụm Digital Ocean Kubernetes. Tôi đang sử dụng bộ điều khiển xâm nhập NGINX vì tôi muốn truy cập máy chủ của mình từ một tên miền phụ (jenkins.example.com). Cho đến nay mọi thứ vẫn hoạt động tốt, tôi có giao diện người dùng của mình trên miền đã nói được bảo mật bằng chứng chỉ tùy chỉnh. Tôi bắt đầu gặp sự cố khi cố gắng kết nối các đại lý của mình (hoặc nô lệ mà tôi đã đọc ở nơi khác?) với máy chủ.

Những gì tôi đã thử

Tôi đã cố gắng thiết lập bộ cân bằng tải nhưng không thể làm cho nó hoạt động vì tôi đang sử dụng Digital Ocean và hầu hết các tài liệu tôi tìm thấy đều dành cho GKE/EKS và những tài liệu khác có LB nội bộ riêng. Tôi cũng đã thử vạch ra một lộ trình /đại lý trên tên cổng của dịch vụ, sau đó trên một dịch vụ khác có loại "ClusterIP", nhưng không thành công (không tìm thấy từ Jenkins).

Cấu hình hiện tại của tôi

jenkins-triển khai.yaml

apiVersion: ứng dụng/v1
loại: Triển khai
metadata:
  name: jenkins-dep
  nhãn:
    ứng dụng: jenkins
thông số kỹ thuật:
  bản sao: 1
  bộ chọn:
    trận đấuNhãn:
      ứng dụng: jenkins
  mẫu:
    metadata:
      nhãn:
        ứng dụng: jenkins
    thông số kỹ thuật:
      hộp đựng:
      - tên: Jenkins
        hình ảnh: jenkins/jenkins:lts-jdk11
        imagePullPolicy: IfNotPresent
        cổng:
        - Cảng container: 8080
        - cảng container: 50000

jenkins-service.yaml

phiên bản api: v1
loại: Dịch vụ
metadata:
  tên: jenkins-svc
  nhãn:
    ứng dụng: jenkins
thông số kỹ thuật:
  loại: NútPort
  bộ chọn:
    ứng dụng: jenkins
  cổng:
  - tên: ui
    giao thức: TCP
    cổng: 8080
    cổng mục tiêu: 8080
    nútPort: 32500
  - tên: đại lý
    giao thức: TCP
    cổng: 50000
    cổng mục tiêu: 50000
    nútPort: 32501

jenkins-ingress.yaml

apiVersion: mạng.k8s.io/v1
loại: Xâm nhập
metadata:
  tên: jenkins-ingress
thông số kỹ thuật:
  tls:
  - máy chủ:
      - jenkins.example.com
    secretName: tls-bí mật
  quy tắc:
  - máy chủ: jenkins.example.com
    http:
      con đường:
      - con đường: /
        pathType: Tiền tố
        phụ trợ:
          dịch vụ:
            tên: jenkins-svc
            Hải cảng:
              tên: ui
      #- đường dẫn: /agents
      # pathType: Tiền tố
      # phụ trợ:
      #    dịch vụ:
      # tên: jenkins-svc
      #      Hải cảng:
      # tên: đại lý

Điểm mấu chốt là: làm cách nào để cung cấp cổng Jenkins 50000 để các tác nhân kết nối trên máy chủ của tôi? Hoặc làm cách nào tôi có thể thay đổi cài đặt Jenkins để phù hợp với cấu hình như vậy?

Điểm:2
lá cờ in

Theo hiểu biết tốt nhất của tôi, Jenkins sử dụng một giao thức tùy chỉnh để liên lạc với các tác nhân xây dựng của nó là RMI Java nhị phân và không dựa trên HTTP. Vì tài nguyên Ingress là chỉ cóchủ nhà: gửi ảo dựa trên yêu cầu HTTP, bạn không thể sử dụng bất kỳ loại: Xâm nhập tuyên bố để làm điều đó

Tuy nhiên, với bộ điều khiển nginx-ingress cụ thể, chúng cho phép phơi bày các dịch vụ TCP mà có khả năng sẽ làm những gì bạn muốn

greg_wss avatar
lá cờ cn
Cảm ơn vì điều này. Tôi hiện đang theo dõi tài liệu của họ, tôi sẽ cập nhật bài đăng này nếu tôi đạt được bất kỳ điều gì.
andolsi zied avatar
lá cờ jp
Thực tế, giải pháp là hiển thị dịch vụ TCP. Để tránh lỗi, tôi khuyên bạn nên sử dụng bản phát hành helm từ ingress-nginx (tôi đã thử nghiệm 4.0.12) như được mô tả tại đây (https://docs.cloudbees.com/docs/cloudbees-ci/latest/cloud-setup-guide/configure -ports-jnlp-agents#values-yaml-configure-jnlp)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.