写点什么

简单 4 步,即可在 mac 上使用 k3s 部署 Jenkins 流水线

  • 2020-05-18
  • 本文字数:1909 字

    阅读完需:约 6 分钟

简单4步,即可在mac上使用k3s部署Jenkins流水线

昨天的文章中,我们已经在 mac 上成功运行 k3s 了。那么,今天我们更进一步,在上面部署 Jenkins 流水线,正好看看 k3s 实际使用状况如何。


和昨天的步骤类似,但是 VM 的内存设置不同:


1、 准备 Multipass VM 和安装 k3s


让我们创建一个 2GB 内存和 50GB 磁盘的 VM


multipass launch --name k3s --mem 2G --disk 50G
复制代码


安装 k3s 的方法也是一样的,但是你需要时刻检查正在运行的脚本


multipass exec k3s -- sh -c "curl -sfL https://get.k3s.io | sh -"
复制代码


复制 kubeconfig 文件到主机


multipass copy-files k3s:/etc/rancher/k3s/k3s.yaml .
复制代码


使用命令:multipass info k3s,列出 k3s 的信息,以获取 IP 地址,将服务器地址从 https://localhost:6443 替换为https://192.168.64.5:6443,导出 kubeconfig,确认节点是否正常工作。


现在我们已经准备好开发 k3s 的环境。我们不需要进入 VM,因为主机的 kubectl 命令行已经够用了。


2、 动态存储类


我们需要提供动态存储,以便完成一些实际工作。我们使用 local volume provisioner(https://github.com/rancher/local-path-provisioner)来达成这一目的。下载yaml文件并在使用之前检查一下。


curl -LO https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
复制代码


应用它并修改此类存储类为默认存储。


kubectl apply -f local-path-storage.yamlkubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
复制代码


现在我们已经准备好动态存储类了。


3、 部署 Jenkins Helm Chart


k3s 通过提供 CRD 来实现内置支持 HelmChart。我们不需要部署 tiller 组件,甚至不需要 helm 命令。


让我们根据以下代码创建一个 HelmChart CRD


apiVersion: k3s.cattle.io/v1kind: HelmChartmetadata:  name: jenkins  namespace: kube-systemspec:  chart: stable/jenkins  targetNamespace: jenkins  valuesContent: |-    Master:      AdminUser: {{ .adminUser }}      AdminPassword: {{ .adminPassword }}    rbac:      install: true
复制代码


请注意,在元数据中的命名空间用于 HelmChart 对象。k3s 在 kube-sysytem 中监控 CRD 对象,如果创建了任一新的 HelmChart 对象,将启动 Helm 安装 job。


Chart 定义要部署哪个 repo 和 Helm Chart。Jenkins 应该位于目标命名空间中。我没有使用 readme 示例中的“set”关键字,而是使用 valuesContent,这样可以在其中应用与 Chart 的 value.yaml 文件相同的格式。


无需改变 Jenkins,将文件另存为 jenkins.yaml。创建目标命名空间,并将其作为 Kubernetes 对象 yaml 文件应用它。


kubectl create ns jenkinskubectl apply -f jenkins.yaml
复制代码


开始监控 Helm 安装 job


kubectl -n kube-system get podsNAME                            READY   STATUS      RESTARTS   AGEcoredns-7748f7f6df-g6rgw        1/1     Running     0          138mhelm-install-jenkins-txxjn      0/1     Completed   0          111mhelm-install-traefik-bnc5x      0/1     Completed   0          138msvclb-traefik-b65f58f65-rxllp   2/2     Running     0          138mtraefik-5cc8776646-nfclx        1/1     Running     0          138m
复制代码


验证 PVC 是否绑定


kubectl -n jenkins get pvcNAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGEjenkins   Bound    pvc-18988281-4d45-11e9-b75c-5ef9efd9374c   8Gi        RWO            local-path     113m
复制代码


同时还要验证 pod 是否正在运行。


kubectl -n jenkins get podsNAME                             READY   STATUS    RESTARTS   AGEjenkins-6b6f58bc8d-hbf4r         1/1     Running   0          113msvclb-jenkins-74fdf6b9f4-zxnwz   1/1     Running   0          113m
复制代码


4、 访问 Jenkins


寻找服务端口


kubectl -n jenkins get svcNAME            TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)          AGEjenkins         LoadBalancer   10.43.75.62    192.168.64.5   8080:30254/TCP   115mjenkins-agent   ClusterIP      10.43.239.13   <none>         50000/TCP        115m
复制代码


现在,我们可以通过 http://192.168.64.5:8080. 访问 Jenkins,如下所示:



如果你还想了解更多关于 k3s 的使用技巧,欢迎参加 10 月 26 日深圳 举办的 k3s 线下 workshop ,将由 Rancher Labs 资深架构师为你详细介绍 k3s 的功能、特性以及使用场景,并进行现场 demo,还会带你一起用自己的笔记本搭建 k3s 集群噢。点击此处,赶紧报名吧!


2020-05-18 18:031411

评论

发布
暂无评论
发现更多内容

2021Android面试笔试总结!html5移动开发即学即用网盘

android 程序员 移动开发

2021年字节跳动74道高级程序员面试,百度Android岗一面+二面内容

android 程序员 移动开发

AndroidHook机制连简单实战都不会凭什么拿高薪,Android开发两年

android 程序员 移动开发

Android外包是如何转正网易的,大厂Android核心面试题出炉

android 程序员 移动开发

2021年阿里+腾讯+快手offer都已拿到,Android开发实战

android 程序员 移动开发

阿里云混合云Apsara Stack 2.0发布,加速政企数智创新

Lily

2021最新网易Android面试题目,2021Android架构面试指南

android 程序员 移动开发

打破 Serverless 落地边界,阿里云 SAE 发布5大新特性

互联网 科技

Android免打包多渠道统计如何实现,技术实现

android 程序员 移动开发

Activity的6大难点你会几个,面试复盘

android 程序员 移动开发

DeFi平台挖矿系统需求开发(现成案例)

2021京东Android面试真题,享学课堂android怎么样

android 程序员 移动开发

2021年Android社招面试题,薪资翻倍

android 程序员 移动开发

每秒创建百万文件,百度沧海·文件存储CFS推出新一代Namespace架构

百度开发者中心

架构 文件存储 cfs

2021金九银十,动脑学院官网

android 程序员 移动开发

2021Android进阶学习资料,动脑学院vip课程百度云

android 程序员 移动开发

Android事件分发机制及设计思路,Android程序员校招蚂蚁金服

android 程序员 移动开发

Android事件分发机制收藏这一篇就够了,阿里一线架构师技术图谱

android 程序员 移动开发

Android体系化进阶学习图谱,动脑学院课程值得买吗

android 程序员 移动开发

2021年Android程序员职业规划,查缺补漏

android 程序员 移动开发

2021年安卓社招面试题精选,顺利拿到offer

android 程序员 移动开发

Android小程序开发实例,扔物线五期

android 程序员 移动开发

Android开发入门教程!扔物线学堂

android 程序员 移动开发

Android中高级面试必知必会,Android学习路线

android 程序员 移动开发

Android大厂面试真题解析大全,腾讯T3大牛手把手教你

android 程序员 移动开发

2021Android大厂面试题来袭,Android性能优化推荐书

android 程序员 移动开发

997页手淘Android面试真题解析火爆全网,Android基础72问

android 程序员 移动开发

数实融合·绽放新机,Techo Day技术回响日邀您“云相聚”

腾讯云数据库

数据库 tdsql

2021大厂安卓知识点总结,字节跳动学习笔记

android 程序员 移动开发

42岁程序员面试,动脑学院vip课程百度云

android 程序员 移动开发

分布式事务最经典的七种解决方案

Java 程序员 架构 面试 分布式

简单4步,即可在mac上使用k3s部署Jenkins流水线_文化 & 方法_Rancher_InfoQ精选文章