首页 > 其他分享 >在k8s集群基于nfs共享存储部署jenkins单体服务

在k8s集群基于nfs共享存储部署jenkins单体服务

时间:2022-10-23 15:01:09浏览次数:50  
标签:data magedu nfs 20220807 jenkins k8s root

一、准备jenkins镜像

docker pull jenkins/jenkins:2.374docker tag jenkins/jenkins:2.374 harbor.magedu.net/magedu/jenkins:2.374docker push harbor.magedu.net/magedu/jenkins:2.374

二、在nfs共享存储暴露nfs共享目录


[root@easzlab-k8s-nfs-01 ~]# cat /etc/exports # /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /data 172.16.88.0/24(rw,sync,no_root_squash,no_subtree_check) /data/k8sdata/magedu/jenkins-root-data 172.16.88.0/24(rw,sync,no_root_squash,no_subtree_check) /data/k8sdata/magedu/jenkins-data 172.16.88.0/24(rw,sync,no_root_squash,no_subtree_check) [root@easzlab-k8s-nfs-01 ~]# [root@easzlab-k8s-nfs-01 ~]# exportfs -r root@easzlab-deploy:~# showmount -e 172.16.88.169 Export list for 172.16.88.169: /data/k8sdata/magedu/jenkins-data 172.16.88.0/24 /data/k8sdata/magedu/jenkins-root-data 172.16.88.0/24 /data 172.16.88.0/24 root@easzlab-deploy:~#

三、准备jenkins相关部署配置文件

root@easzlab-deploy:~/jiege-k8s/20220807/k8s-data-n70-20220807/yaml/magedu/jenkins/pv# cat jenkins-persistentvolumeclaim.yaml 
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: jenkins-datadir-pvc
  namespace: magedu
spec:
  volumeName: jenkins-datadir-pv
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 80Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: namespace: magedu
spec:
  volumeName: jenkins-root-datadir-pv 
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 80Gi
root@easzlab-deploy:~/jiege-k8s/20220807/k8s-data-n70-20220807/yaml/magedu/jenkins/pv# cat jenkins-persistentvolume.yaml 
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins-datadir-pv
  namespace: magedu
spec:
  capacity:
    storage: 100Gi
  accessModes:
    - ReadWriteOnce
  nfs:
    server: 172.16.88.169
    path: /data/k8sdata/magedu/jenkins-data 

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins-root-datadir-pv
  namespace: magedu
spec:
  capacity:
    storage: 100Gi
  accessModes:
    - ReadWriteOnce
  nfs:
    server: 172.16.88.169
    path: /data/k8sdata/magedu/jenkins-root-data
root@easzlab-deploy:~/jiege-k8s/20220807/k8s-data-n70-20220807/yaml/magedu/jenkins/pv# 
root@easzlab-deploy:~/jiege-k8s/20220807/k8s-data-n70-20220807/yaml/magedu/jenkins/pv# cd ../
root@easzlab-deploy:~/jiege-k8s/20220807/k8s-data-n70-20220807/yaml/magedu/jenkins# cat jenkins.yaml 
kind: Deployment
#apiVersion: extensions/v1beta1
apiVersion: apps/v1
metadata:
  labels:
    app: magedu-jenkins
  name: magedu-jenkins-deployment
  namespace: magedu
spec:
  replicas: 1
  selector:
    matchLabels:
      app: magedu-jenkins
  template:
    metadata:
      labels:
        app: magedu-jenkins
    spec:
      containers:
      - name: magedu-jenkins-container
        image: harbor.magedu.net/magedu/jenkins:2.374
        #imagePullPolicy: IfNotPresent
        imagePullPolicy: Always
        ports:
        - containerPort: 8080
          protocol: TCP
          name: http
        volumeMounts:
        - mountPath: "/apps/jenkins/jenkins-data/"
          name: jenkins-datadir-magedu
        - mountPath: "/root/.jenkins"
          name: jenkins-root-datadir
      volumes:
        - name: jenkins-datadir-magedu
          persistentVolumeClaim:
            claimName: jenkins-datadir-pvc
        - name: jenkins-root-datadir
          persistentVolumeClaim:
            claimName: jenkins-root-data-pvc
---
kind: Service
apiVersion: v1
metadata:
  labels:
    app: magedu-jenkins
  name: magedu-jenkins-service
  namespace: magedu
spec:
  type: NodePort
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 8080
    nodePort: 38080
  selector:
    app: magedu-jenkins
root@easzlab-deploy:~/jiege-k8s/20220807/k8s-data-n70-20220807/yaml/magedu/jenkins#
root@easzlab-deploy:~/jiege-k8s/20220807/k8s-data-n70-20220807/yaml/magedu/jenkins# kubectl create ns magedu #创建所需命名空间 namespace/magedu created root@easzlab-deploy:~/jiege-k8s/20220807/k8s-data-n70-20220807/yaml/magedu/jenkins#
root@easzlab-deploy:~/jiege-k8s/20220807/k8s-data-n70-20220807/yaml/magedu/jenkins# kubectl apply -f jenkins.yaml -f pv/ #安装部署jenkins服务
deployment.apps/magedu-jenkins-deployment created
service/magedu-jenkins-service created
persistentvolume/jenkins-datadir-pv created
persistentvolume/jenkins-root-datadir-pv created
persistentvolumeclaim/jenkins-datadir-pvc created
persistentvolumeclaim/jenkins-root-data-pvc created
root@easzlab-deploy:~/jiege-k8s/20220807/k8s-data-n70-20220807/yaml/magedu/jenkins#

验证

 

标签:data,magedu,nfs,20220807,jenkins,k8s,root
From: https://www.cnblogs.com/cyh00001/p/16629050.html

相关文章

  • 容器5种网络模式 与 K8S pod网络关系
    文档说明:只记录关键地方;理解了容器网络模式,也就知道了如何把多个容器相互连接起来容器的网络模式和跨主机通信:network_mode:"bridge"network_mode:"host"netwo......
  • jenkins登录后安装,报错"An error occurred”提示没有找到插件的解决方案
    问题描述:docker拉取镜像jenkins后运行容器,浏览器登录,不管是安装插件还是跳过安装插件页面一直报错,提示“anerroroccurred” 经各种排查发现原因是因为jenkins新版镜......
  • 尚硅谷k8s(五):搭建k8s集群—平台规划和部署方式介绍
    搭建k8s环境平台规划单master集群多master集群服务器硬件配置要求测试环境:master2核4G20Gnode4核8G40G生产环境:更高要求搭建k8s集群部署方式目前生产部署......
  • 尚硅谷k8s(四):k8s核心概念
    k8s核心概念pod最小部署单元一组容器的集合共享网络和存储生命周期是短暂的(服务器重启、重新部署pod会找不到)controller确保预期的pod副本数量无状态应用部署......
  • 尚硅谷k8s(三):k8s集群架构组件
    k8s集群架构组件Master主控节点Node工作节点master组件apiserver:集群统一入口,以restful方式,交给etcd存储scheduler:节点调度,选择node节点应用部署controller-mana......
  • 尚硅谷k8s(二):k8s介绍和特性
    第一部分知识点1.k8s概述和特性2.k8s架构组件3.k8s核心概念podcontrollerservicek8s概述k8s是Google在2014年开源的容器化集群管理系统使用k8s进行容器化应用......
  • 尚硅谷k8s(一):k8s课程内容介绍
    前置知识1.Linux操作系统2.Docker课程内容第一部分k8s概念和架构第二部分从零搭建k8s集群1.基于客户端工具kubeadm2.基于二进制包方式第三部分k8s核心概念1.Po......
  • 部署YUM仓库及NFS共享服务
    YUMYUM简介CentOS使用yum和dnf解决rpm的包依赖关系。YUM:rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具,CentOS8使用dnf代替了yum......
  • Linux NFS共享服务
    导图1.NFS(NetworkFileSystem网络文件服务)文件系统(软件)文件的权限NFS是一种基于TCP/IP传输的网络文件系统协议,最初由Sun公司开发。通过使用NFS协议,客户机可以......
  • K8s获取token
    使用调用KubernetesAPI的方式获取信息时,需要使用Kubernetes的Token创建用户admin-user并授权admin-user.yamlapiVersion:v1kind:ServiceAccountmetadata:nam......