因为jenkins是独立部署的,所以这种方式发布pod到k8s上,我想到的是提高jenkins用户权限(以root用户启动jenkins)来使用kubectl命令

编写资源清单

应用 secret

kubectl create secret docker-registry harbor-registry  --docker-server=192.168.1.112 --docker-username=admin --docker-password=harbor123 --docker-email=admin@qq.com

statefulset

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: cloud-eureka
spec:
replicas: 1
selector:
matchLabels:
app: eureka
serviceName: cloud-eureka
template:
metadata:
labels:
app: eureka
spec:
imagePullSecrets:
- name: harbor-registry
containers:
- name: eureka-server
image: 192.168.1.112/ocp/eureka-server
imagePullPolicy: IfNotPresent
ports:
- containerPort: 1111

svc

apiVersion: v1
kind: Service
metadata:
name: cloud-eureka
spec:
type: NodePort
ports:
- port: 1111
targetPort: 1111
selector:
app: eureka

编写pipeline

pipeline {
agent any
stages {
stage('apply statefulset') {
steps {
sh "kubectl apply -f /vagrant/ocp/eureka/test.yaml"
}
}
stage('apply svc') {
steps {
sh "kubectl apply -f /vagrant/ocp/eureka/test1.yaml"
}
}
}
}