k8s上安装Jenkins

本文档详细介绍了如何在Kubernetes(k8s)环境中安装Jenkins。首先,通过在master节点创建特定的namespace来开始部署过程。接着,配置并应用yaml文件以部署Jenkins服务,确保正确处理yaml文件的格式问题,如字段缩进、冒号后的空格以及apiVersion的选择。在遇到如'ImagePullBackOff'这样的问题时,可以调整Docker配置以使用加速器。最后,文中列举了可能出现的问题及解决方案,并提供了相关参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

k8s安装Jenkins

步骤

官网文档:https://www.jenkins.io/doc/book/installing/

  • 登录k8s的master节点,创建一个namespace,专门用于安装jenkins
  • 创建namespace
kubectl create namespace jenkins    

在这里插入图片描述

  • 查看已经创建的namespace
kubectl get namespace

在这里插入图片描述

  • 创建部署的yaml,对外暴露的端口是30000
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      containers:
      - name: jenkins
        image: jenkinsci/blueocean:latest
        ports:
        - containerPort: 8080
        volumeMounts:
        - name: jenkins-home
          mountPath: /var/jenkins_home
      volumes:
        - name: jenkins-home
          emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: jenkins
spec:
  type: NodePort
  ports:
    - port: 8080
      targetPort: 8080
      nodePort: 30000
  selector:
    app: jenkins

在这里插入图片描述

  • 部署yaml
kubectl apply -f jenkins.yaml -n jenkins

在这里插入图片描述

  • 查看部署的节点
 kubectl get po -n jenkins -o wide

在这里插入图片描述

  • 打开网页查看http://10.10.121.23:30000,在界面上设置jenkins
  • 刚登录jenkins时,需要输入管理员密码,密码在容器中的/var/jenkins_home/secrets/initialAdminPassword文件中
    在这里插入图片描述

问题

1.yaml出现问题: did not find expected key

error: error parsing jenkins.yaml: error converting YAML to JSON: yaml: line 22: did not find expected key
  • 原因:字段缩进存在问题,查看是不是没有对齐
  • 解决办法:修改缩进

2.yaml出现问题: could not find expected ‘:’

error: error parsing jenkins.yaml: error converting YAML to JSON: yaml: line 27: could not find expected ':'
  • 原因:yaml配置文件遇到“:”或者“-”后面必须留一个空格
  • 解决办法:查看格式是否按要求

3.yaml出现问题: no matches for kind “Deployment” in version “extensions/v1beta1”

  • 原因:apiVersion与k8s版本没有匹配
  • 解决方法:选择合适的类型
    Deployment中:
    1.6版本之前: extensions/v1beta1
    1.6版本到1.9版本之间: apps/v1beta1
    1.9版本之后:apps/v1

4.镜像拉取不下来:ImagePullBackOff
在这里插入图片描述

  • 解决办法:配置加速器
    在/etc/docker/daemon.json文件中添加以下内容
    在这里插入图片描述
{
    "storage-driver": "devicemapper",
    "log-opts": {
        "max-size": "100m",
        "max-file": "3"
    },
    "insecure-registries": [
        "0.0.0.0/0"
    ],
    "log-driver": "json-file",
    "registry-mirrors": ["https://4q46e9rx.mirror.aliyuncs.com"]
}

重启使其生效

[root@k8s-master-10-10-121-21 ~]# systemctl daemon-reload
[root@k8s-master-10-10-121-21 ~]# systemctl restart docker

参考文献

[1]https://segmentfault.com/a/1190000017134399
[2]https://phoenixnap.com/kb/how-to-install-jenkins-kubernetes

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值