Jenkins CI 插件:Kubernetes
Jenkins CI 插件:KubernetesJenkins Kubernetes 插件实现了 当 Jenkins Master 接受到 Build 请求时,会根据配置的 Label 动态创建一个运行在 Pod 中的 Jenkins Slave 并注册到 Master 上,当运行完 Job 后,这个 Slave 会被注销并且这个 Pod 也会自动删除,恢复到最初状态。
一.Jenkins 安装插件:KubernetesJenkins 选择-插件管理,搜索并安装 Kubernetes 插件
二.Kubernetes 插件配置:Configure Clouds安装后添加和配置 Kubernetes Cloud 作为 Jenkins 配置的一部分,依次进入:
Manage Jenkins -> Manage Nodes and Clouds -> Configure Clouds
2.1 Configure Clouds: Configure Kubernetes Clouds
配置情况一:本地集群
本地集群,即 Jenkins Master 托管在同一个 Kubern ...
Jenkins CD 插件:Kubernetes CLI
Jenkins CD 插件:Kubernetes CLI1.Jenkins插件安装:Kubernetes CLI
2.添加 kubeconfig 凭据添加Jenkins 凭据:凭据类型选择 “Secret file”,cluster-admin 管理员用户 kubeconfig 文件内容保存为 kubeconfig 附件上传。~/.kube/config
3.Jenkins PipelineKubernetes CLI Plugin
流水线语法从流水线语法中,可以得到 Kubernetes CLI 的 Pipeline 用法。
4.编写 Pipeline123456789101112131415161718192021node () { stage('GitCheckout'){ echo 'Git Checkout' } stage('Test') { echo "Test Stage" & ...
jenkins agents jnlp-slave 镜像制作
jenkins agents jnlp-slave 镜像制作一、启动镜像参考资料
警告! 此 inbound-agent 镜像曾作为 jenkinsci/jnlp-slave 和 jenkins/jnlp-slave发布. 然后这些都被淘汰,弃用。
1234# 拉取镜像docker pull jenkins/inbound-agent# 启动镜像docker run -itd jenkins/inbound-agent -url http://jenkins-server:port <secret> <agent name>
docker run 命令参数
–name 为启动的容器指定名称,不指定会默认随机一个名称
-p 访问的端口:镜像内程序的端口
-d 表示当前容器在后台运行
-it 指定要启动的镜像名称和标签 :
-v 本地路径:镜像内的路径 可以将本地路径和容器内的路径映射,可以即时修改文件即时生效,方便测试 -v 命令可以有多条 eg: -v E:/logs/:/var/lo ...
Jenkins 备份还原
一、简介在部署完 Jenkins 后首先要准备的就是数据备份问题,尤其是在生产环境下的 Jenkins,如果数据丢失很可能导致项目上线和开发时间受到影响,所以备份数据很重要。还好,Jnekins 中存在数据备份插件 ThinBackup,方便我们通过界面化方式对数据进行备份与恢复。
背景,需要把Jenkins 迁移到另外一台服务器。
二、安装 ThinBackup 插件Jenkins通过插件ThinBackup来完成自身的备份与恢复。
2.1.插件安装插件管理直接搜索ThinBackup安装。安装完成,空闲时重启下。安装完成
2.2.Settings 备份设置设置每日凌晨1点执行备份,备份包保存30天。
2.2.1、服务器上先创建备份目录1mkdir -p /data/backup/jenkins
2.2.2、设置备份
完整备份写计划任务时,和传统的crontab 计划任务写法有些区别如果写成 0 1 * * *根据提示修改就行
2.3、查看备份12345678$ pwd/data/backup/jenkins$ lltotal 44576-rw-r--r--. 1 root roo ...
Kubernetes Deployment
工作负载控制器是什么?kubernetes 工作负载
工作负载控制器 Work Controllers 是 k8s 的一个抽象概念,用于更高级层次对象,部署和管理 Pod。
常用工作负载控制器:
Deployment 无状态应用部署
StatefulSet 有状态应用部署
DaemonSet 确保所有 node 运行同一个 Pod
Job 一次性任务
Cronjob 定时任务
控制器的作用:
管理 Pod 对象
使用标签与 Pod 关联
控制器实现了 Pod 的运维,例如滚动更新、伸缩、副本管理、维护 Pod 状态等。
kubernetes 工作负载控制器(一):DeploymentDeployment
1.Deployment 控制器介绍Deployment 的功能
管理 Pod 和 ReplicaSet
具有上线部署、副本设定、滚动升级、回滚等功能
提供声明式更新,例如只更新一个新的 Image
Deployment 应用场景:网站、API、微服务
什么是 ReplicaSet 控制器?
ReplicaSet 控制器用途:
Pod 维护副本数量管理,不断对比当前 ...
Kubernetes Service
kubenetes 四种 Service 类型1.K8S Service 介绍Service 是什么?
Service 是 Kubernetes 集群中的一个资源对象,用于定义如何访问一组带有相同特征的 Pods,提供统一的访问入口 + 负载均衡。通常情况下,Service 通过 Label Selector 来确定目标 Pods,ExternalName Services 例外,关于 Service 的详细介绍,请参阅官方文档中 Service 章节。
Kubernetes 提供了四种类型的 Service,分别用于不同的业务场景,默认的类型是 ClusterIP 。
ClusterIP
NodePort
LoadBalance
ExternalName
iptables 或者 ipvs 是 Service 的具体实现手段,为一组 Pods 提供负载均衡能力。
Pods 与 Service 的关系是:Service 通过 Pods 的 label 标签关联一组 Pods
Service 工作流程:
流程:客户端 -> NodePort/ClusterIP ( ...
Linux 磁盘管理:xfs文件系统扩容
Linux 磁盘管理 xfs文件系统扩容XFS是一个开源的(GPL)日志文件系统,最初由硅谷图形(SGI)开发,现在大多数的Linux发行版都支持。事实上,XFS已被最新的CentOS/RHEL 7采用,成为其默认的文件系统。在其众多的特性中,包含了“在线调整大小”这一特性,使得现存的XFS文件系统在已经挂载的情况下可以进行扩展。然而,对于XFS文件系统的缩减却还没有支持。
一、裸磁盘扩容裸磁盘扩容(Linux)裸磁盘是指未进行分区的云硬盘,即创建的云硬盘挂至主机后,直接对磁盘进行格式化进行使用,用户可通过对硬盘扩容容量后,进入操作系统对裸磁盘进行扩容操作。
1.查看磁盘信息:判断裸磁盘/dev/sdb 是一个 100G 的、没有分过区、直接格式化成 xfs 文件系统挂载使用的”裸磁盘”。
12345678910111213141516171819202122232425# 查看磁盘信息,没有分区信息$ fdisk -l /dev/sdbDisk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sect ...
Linux 磁盘管理:LVM 磁盘分区
一、LVM 磁盘分区基础1.LVM 分区工作原理LVM 的做法是将几个实体的 Partitions 分区或 Disk 磁盘通过软件组合成为一块看起来是独立的大磁盘 VG,然后将这块大磁盘再经过分区成为可使用分区槽 LV, 最终就能够挂载使用了。
2.LVM 分区特点
可以弹性的调整 Filesystem 文件系统的容量。
可以整合多个实体分区在一起,让这些分区看起来就像是一个磁盘一样。
可以在未来从这个LVM管理的磁盘当中新增或移除实体分区。
3.LVM 分区的几个关键字PV (Physical Volume) 实体滚动条:
PV 是组成 LVM 分区前我们的真实存在的物理分区。
需要用 gdisk 调整系统标识符 system ID 成为 8e (LVM 的磁盘类型ID是8e00)。
再经过 pvcreate 的指令将他转成 LVM 最底层的实体滚动条 PV ,之后才能够将这些 PV 加以利用。
VG (Volume Group) 滚动条群组:
VG 是由 PV 组成以后的 LVM 大磁盘。
这个大磁盘的容量取决于 PE 的数量。
我们后面要格式化使用的文件系统就是从这个 ...
Kubernetes RBAC权限控制
Kubernetes RBAC权限控制实际生产环境中,往往需要对不同运维人员赋预不同的权限.而根据实际情况也可能会赋予开发人员只读的权限.这一节我们将介绍如何创建不同权限的用户.
1.K8S RBACRBAC (Role-Based Access Control)是基于角色的访问控制。
K8S RBAC 框架主要由下面3个阶段进行控制,每一个阶段都支持插件方式,通过 API Server 配置来启用插件。
Authentication 鉴权
Authorization 授权
Admission Control 准入控制
上面流程中 Authentication 鉴权插件将返回通过鉴权的主体;然后将其交给 Authorization 授权插件来检查主体是否有权限执行某个操作。
三种客户端 “访问用户” 类型:
User 用户
Group 用户组
ServerAccount K8S 资源对象 SA
三种 Authentication 鉴权方式:客户端想要访问 K8S 集群 apiserver,可选三种客户端身份鉴权认证:
HTTPS 证书认证(kubeconfig):基于CA证书 ...
Kubernetes PV Volume
Kubernetes PV 持久卷1.PV 概念1.1 什么是 PV:PV 的全称是 PersistentVolume(持久化卷)。PersistentVolume 是 Volume 的一种类型,是对底层存储的一种抽象。PV 由集群管理员进行创建和配置,与 node一样,PV 也是属于集群级别的资源。PV 包含存储类型、存储大小和访问模式。PV 的生命周期独立于 Pod,即使用它的 Pod 被销毁时,PV 可以依然存在。
PersistentVolume 通过插件机制实现与共享存储的对接。Kubernetes 目前支持以下插件类型,其中 FlexVolume 和 CSI 是 Kubernetes 的标准插件,用于集成各云厂商的存储设备。
FlexVolume
CSI
NFS
RBD (Ceph Block Device)
CephFS
Glusterfs
HostPath
Local
1.2 PV 的生命周期:ACCESS MODES PV的访问模式: 是用来对 PV 进行访问模式的设置,用于描述用户应用对存储资源的访问权限,访问权限包括以下几种方式:
ReadWriteOn ...