免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

简单 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:031272

评论

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

Seata:连接数据与应用

阿里巴巴云原生

阿里云 云原生 seata

从此告别写SQL!DataLeap帮你零门槛完成“数据探查”

字节跳动数据平台

MySQL 数据分析 数据治理 数据探查 企业号 4 月 PK 榜

阿里P8:Java性能调优(独孤版),带你打造淘宝秒杀架构

做梦都在改BUG

Java 架构 性能调优

Spring Cloud微服务网关Zuul过滤链实现的源码解读

做梦都在改BUG

OpenHarmony3.2release抢先体验

坚果

OpenHarmony 三周年连更

阿里耗时1年:用283张图+24问完美诠释“Java并发编程”所有难点

做梦都在改BUG

Java 并发编程

小红书广告投放机制详解,如何用算法实现全站自动化投放

小红书技术REDtech

大数据 搜索

云原生助力数字原生企业业务快速迭代|阿里云峰会精彩回顾

阿里巴巴云原生

阿里云 云原生

详解,LED显示屏灰度等级

Dylan

灰度 LED显示屏 色彩

数说热点|春暖花开日,露营正当时——当精致露营遇上新能源车

MobTech袤博科技

直播预告 | TDengine & Apache SeaTunnel 联合应用最佳实践

TDengine

Apache tdengine 时序数据库

如何解决spring的循环依赖问题?

做梦都在改BUG

Java spring 循环依赖

成长计划知识赋能 | 第十期:DAYU200开发入门秒Get

OpenHarmony开发者

OpenHarmony

对话大咖 | 人工智能+视频编解码能带来新的变革吗

小红书技术REDtech

人工智能 深度学习 活动回顾

SpringBoot设计了哪些可拓展的机制?

做梦都在改BUG

零拷贝浅析

数新网络官方账号

大数据 零拷贝

ChatGPT的狂欢背后:短板犹在,启发甚多,2023有这些事可以做……

小红书技术REDtech

人工智能 ChatGPT 活动回顾

记一次 MySQL 主从同步异常的排查记录,百转千回

做梦都在改BUG

Java MySQL 主从同步

面试官:如何动态的给一个类增加功能?

做梦都在改BUG

Github上标星68.5K,阿里巴巴《MySQL成长手册》火了

做梦都在改BUG

Java MySQL 数据库

C语言_sprintf固定字符串输出位数

DS小龙哥

三周年连更

从零开始学习 GraphQL:入门指南和教程

Apifox

程序员 gRPC 后端 协议 graphql

原来XXL-JOB可以这么造

六月的雨在InfoQ

Serverless XXL-JOB SAE 三周年连更

高性能存储SIG月度动态:ANCK ublk完成POC测试,EROFS优化xattr元数据开销

OpenAnolis小助手

操作系统 内核 高性能存储 龙蜥社区 sig

架构师才需要学习的知识:亿级流量调优方法+实战

做梦都在改BUG

Java 性能优化 性能调优

MySQL8.0 优化器介绍(二)

GreatSQL

MySQL greatsql greatsql社区

镭速Raysync v6.6.8.0版本发布

镭速

面试了个阿里P7大佬,他让我见识到什么才是“精通高并发与调优”

做梦都在改BUG

Java 高并发 性能调优

深入理解 Redis 新特性:Stream

Java你猿哥

redis SSM框架 Redis 核心技术与实战 redis 底层原理

带你用三种不同的工具体验AI作诗

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 4 月 PK 榜

eBPF动手实践系列一:解构内核源码eBPF样例编译过程

阿里云大数据AI技术

运维 代码 企业号 4 月 PK 榜

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