k8s上安装Jenkins

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


版权声明:本文为qq_38942551原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。