我正在尝试在 Digital Ocean Kubernetes 集群中设置 Jenkins。我使用 NGINX 入口控制器,因为我想从子域 (jenkins.example.com) 访问我的服务器。到目前为止,一切运行正常,我已使用自定义证书保护了所述域上的 UI。当我尝试将我的代理(或我在其他地方读到的从属?)连接到服务器时,我开始遇到问题。
我尝试过的方法
我尝试设置负载均衡器,但无法使其工作,因为我使用的是 Digital Ocean,而且我找到的大多数文档都是针对 GKE / EKS 和其他具有自己的内部 LB 的。我还尝试/agents
在服务的端口名称上映射路由,然后在另一个具有“ClusterIP”类型的服务上映射路由,但没有成功(未从 Jenkins 找到)。
我当前的配置
jenkins-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-dep
labels:
app: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts-jdk11
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
- containerPort: 50000
jenkins-service.yaml
apiVersion: v1
kind: Service
metadata:
name: jenkins-svc
labels:
app: jenkins
spec:
type: NodePort
selector:
app: jenkins
ports:
- name: ui
protocol: TCP
port: 8080
targetPort: 8080
nodePort: 32500
- name: agents
protocol: TCP
port: 50000
targetPort: 50000
nodePort: 32501
jenkins-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jenkins-ingress
spec:
tls:
- hosts:
- jenkins.example.com
secretName: tls-secret
rules:
- host: jenkins.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: jenkins-svc
port:
name: ui
#- path: /agents
# pathType: Prefix
# backend:
# service:
# name: jenkins-svc
# port:
# name: agents
关键是:如何让代理可以使用 Jenkins 端口 50000 连接我的服务器?或者如何更改 Jenkins 设置以适应此类配置?