当前位置: 首页
AI教程
在K8s集群主节点上通过YAML安装Jenkins的完整操作指南

在K8s集群主节点上通过YAML安装Jenkins的完整操作指南

热心网友 时间:2026-06-06
转载

在 Kubernetes 集群中,将 Pod 调度到指定节点有多种实现方案,其中使用 Label 标签配合 NodeSelector 节点选择器是最直观且广泛应用的方法。操作前,需要先为节点添加标签,这相当于为服务器设置一个“身份标识”,调度器会根据该标识精准分配 Pod 到目标节点。 执行以下命令

在 Kubernetes 集群中,将 Pod 调度到指定节点有多种实现方案,其中使用 Label 标签配合 NodeSelector 节点选择器是最直观且广泛应用的方法。操作前,需要先为节点添加标签,这相当于为服务器设置一个“身份标识”,调度器会根据该标识精准分配 Pod 到目标节点。

执行以下命令即可为节点添加标签:

$ kubectl label node master nodename=master

该命令为 master 节点赋予一个 nodename=master 的标签。其他节点可参照此方式,按照自定义命名规范打上类似 nodename=worker1nodename=worker2 等标签,后续在 Pod 配置中直接引用即可实现精准调度。

YAML 配置文件示例

节点标签设置完成后,即可编写 YAML 配置文件。以下提供一套完整的资源定义,包含 RBAC 权限、通过 DaemonSet 部署 Traefik 作为 Ingress Controller、Service 端口暴露、Deployment 部署 Jenkins 并指定调度至 master 节点,以及 Ingress 路由规则。用户可直接复制使用,仅需根据实际环境调整 host 域名和访问路径即可。

---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: traefik-ingress-controller
rules:
  - apiGroups:
      - ""
    resources:
      - services
      - endpoints
      - secrets
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - extensions
    resources:
      - ingresses
    verbs:
      - get
      - list
      - watch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: traefik-ingress-controller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: traefik-ingress-controller
subjects:
  - kind: ServiceAccount
    name: traefik-ingress-controller
    namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: traefik-ingress-controller
  namespace: kube-system
---
kind: DaemonSet
apiVersion: extensions/v1beta1
metadata:
  name: traefik-ingress-controller
  namespace: kube-system
  labels:
    k8s-app: traefik-ingress-lb
spec:
  template:
    metadata:
      labels:
        k8s-app: traefik-ingress-lb
        name: traefik-ingress-lb
    spec:
      serviceAccountName: traefik-ingress-controller
      terminationGracePeriodSeconds: 60
      hostNetwork: true
      containers:
      - image: traefik
        name: traefik-ingress-lb
        ports:
        - name: http
          containerPort: 80
          hostPort: 80
        - name: admin
          containerPort: 8080
        securityContext:
          capabilities:
            drop:
              - ALL
            add:
              - NET_BIND_SERVICE
        args:
        - --api
        - --kubernetes
        - --logLevel=INFO
---
apiVersion: v1
kind: Service
metadata:
  name: traefik-web-ui
  namespace: kube-system
spec:
  selector:
    k8s-app: traefik-ingress-lb
  ports:
  - name: web
    port: 80
    targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins-deployment
  namespace: kube-system
  labels:
    app: jenkins
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      terminationGracePeriodSeconds: 60
      containers:
      - name: jenkins
        image: jenkins/jenkins:lts
        imagePullPolicy: IfNotPresent
        env:
        - name: JENKINS_OPTS
          value: "--prefix=/jenkins"
        ports:
        - name: web
          containerPort: 8080
          protocol: TCP
        - name: agent
          containerPort: 50000
          protocol: TCP
        volumeMounts:
        - name: jenkins-home
          mountPath: /var/jenkins_home
      volumes:
      - name: jenkins-home
        hostPath:
          path: /root/jenkins-home
      nodeSelector:
        nodename: master
---
apiVersion: v1
kind: Service
metadata:
  name: jenkins-service
  namespace: kube-system
  labels:
    app: jenkins
spec:
  ports:
  - port: 8888
    targetPort: 8080
    name: web
  - port: 50000
    targetPort: 50000
    name: agent
  selector:
    app: jenkins
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traefik-web-ui
  namespace: kube-system
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.frontend.rule.type: PathPrefixStrip
spec:
  rules:
  - host: c4.k8s.com
    http:
      paths:
      - path: /
        backend:
          serviceName: traefik-web-ui
          servicePort: web
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: jenkins-ingress
  namespace: kube-system
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/app-root: /jenkins
    traefik.ingress.kubernetes.io/rule-type: PathPrefix
    traefik.frontend.passHostHeader: "true"
spec:
  rules:
  - host: c4.k8s.com
    http:
      paths:
      - path: /jenkins
        backend:
          serviceName: jenkins-service
          servicePort: web

k8s中将Jenkins安装到master节点上的yaml

该整套配置的核心逻辑为:首先利用 DaemonSet 在每个节点上运行一个 Traefik 实例(采用 hostNetwork: true 模式直接占用宿主机端口),随后通过 Deployment 部署 Jenkins 服务,并在 Pod 的 spec 中设置 nodeSelector: nodename: master,确保 Jenkins 仅被调度到含有 nodename=master 标签的节点。最后,通过两个 Ingress 资源分别暴露 Traefik 管理界面与 Jenkins 服务,统一使用域名 c4.k8s.com 进行访问。

需要注意:hostNetwork: true 表示容器将直接复用宿主机网络栈,因此需确保宿主机端口不与其它服务冲突。此外,Jenkins 的数据卷使用 hostPath 类型,在生产环境中建议替换为 PV/PVC 以保障数据持久化与可迁移性。本示例仅作演示用途,旨在帮助快速验证功能。

来源:https://developer.aliyun.com/article/704371

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Coze本地模型运行下载与路径配置性能优化指南

Coze本地模型运行下载与路径配置性能优化指南

Coze接入本地模型的核心在于先准备推理服务,再完成模型下载、存放路径配置、接口适配与性能调优,适合开发测试、数据内控和低成本原型验证场景。

时间:2026-07-12 06:46
Coze插件安装教程:浏览器、编辑器与扩展市场配置

Coze插件安装教程:浏览器、编辑器与扩展市场配置

Coze插件安装可分为平台内插件、浏览器扩展与编辑器扩展三类。配置前需确认账号权限、来源可信、授权范围和测试环境,新手按创建项目、安装插件、填写参数、调试发布的顺序操作更稳妥。

时间:2026-07-12 06:46
Coze API Key配置教程 账号注册 密钥获取 国内网络设置

Coze API Key配置教程 账号注册 密钥获取 国内网络设置

围绕Coze与扣子平台的APIKey配置流程,梳理账号注册、密钥创建、环境变量设置、国内网络连通性检查、调用验证、常见报错处理及安全使用边界。

时间:2026-07-12 06:45
Coze Docker一键部署教程:镜像拉取端口映射数据目录配置

Coze Docker一键部署教程:镜像拉取端口映射数据目录配置

面向想在本地或服务器部署Coze的用户,梳理Docker环境准备、镜像拉取、端口映射、数据目录挂载、启动检查、升级回滚与安全注意事项,帮助快速搭建稳定的AI智能体平台运行环境。

时间:2026-07-12 06:45
Coze Linux服务器部署:从环境准备到后台运行完整教程

Coze Linux服务器部署:从环境准备到后台运行完整教程

Coze适合团队搭建智能体应用与工作流。Linux部署建议优先采用容器方式,提前规划配置、端口、数据目录与安全策略,并通过服务化方式实现稳定后台运行。

时间:2026-07-12 06:45
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜