Jenkins 部署完毕后,如果用户需要访问jenkins dashboard,那么通常建议配置 ingress ,这样比 NodePort 更方便,至少不用携带端口。但是不合理的代理配置会导致jenkins提示反向代理错误。
jenkins.yaml:
apiVersion: v1
kind: Namespace
metadata:
name: devops
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jenkins-default
namespace: devops
spec:
storageClassName: managed-nfs-storage
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-default
namespace: devops
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
instance: default
template:
metadata:
labels:
app: jenkins
instance: default
spec:
containers:
- name: jenkins-server
image: jenkins/jenkins:2.344
ports:
- name: http-port
containerPort: 8080
- name: jnlp-port
containerPort: 50000
volumeMounts:
- name: jenkins-home
mountPath: /var/jenkins_home
resources:
limits:
cpu: 2048m
memory: 2048Mi
requests:
cpu: 100m
memory: 512Mi
volumes:
- name: jenkins-home
persistentVolumeClaim:
claimName: jenkins-default
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-default-web
namespace: devops
spec:
type: ClusterIP
selector:
app: jenkins
instance: default
ports:
- port: 8080
targetPort: http-port
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-default-jnlp
namespace: devops
spec:
type: ClusterIP
selector:
app: jenkins
instance: default
ports:
- port: 50000
targetPort: jnlp-port
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jenkins-default
namespace: devops
annotations:
nginx.org/client-max-body-size: 64m
nginx.org/keepalive: "4"
spec:
ingressClassName: nginx
rules:
- host: jenkins-default.huanle.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: jenkins-default-web
port:
number: 8080
tls:
- hosts:
- jenkins-default.huanle.com