写点什么

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

评论

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

这样规范写代码,同事直呼“666”

xcbeyond

Java 代码规范 规范

第 11 周 系统架构总结

心在那片海

架构师第一周总结



十一、高可用

Geek_28b526

消息队列优化(2) -- 几种基本实现

1412

消息队列 workflow srpc 异步调度 并行计算

架构师训练营 week11 课后作业

花果山

极客时间架构师培训 1 期 - 大作业二

Kaven

架构师 01 期,大作业一

子文

判断回文数字算法,swift 5初始化详解,时间管理计划落地,swift5 多线程高级用法 John 易筋 ARTS 打卡 Week 33

John(易筋)

ARTS 打卡计划 算法回文数字判断 时间管理计划落地 swift5 初始化详解 swift5多线程高级用法

我画了 40 张图就是为了让你搞懂计算机网络层

苹果看辽宁体育

计算机网络 IP 网络层 ipv6 ipv4

史上最强鸿蒙教程来袭!2021年最新Android面试精讲,赶紧收藏!

欢喜学安卓

android 程序员 面试 移动开发

呃?!!!我彻底忘了这件事😂

Nydia

消息队列优化(1) -- 鶸的介绍篇

1412

消息队列 workflow srpc 异步调度 并行计算

Week 11 作业

evildracula

关于一个梦(自我的死亡)

Yuchen

身心健康 心理 自我

Week1 作业

oooh-la

架构师训练营第2期 第11周总结

月下独酌

消息队列优化(3) -- grpc MPMCQueue 简介及各队列性能对比

1412

消息队列 workflow srpc 异步调度 并行计算

Week11 安全稳定

evildracula

学习 架构

万字长文聊缓存(上)

Silently9527

Java nginx HTTP

UDP连接要不要发起connect

kof11321

网络编程

第十一周学习总结

晴空万里

第六周学习总结

Binary

第 11 周 系统架构作业

心在那片海

架构师训练营第2期 第11周命题作业

月下独酌

与前端训练营的日子 --Week10

SamGo

学习

console.log也能插图!!!

德育处主任

CSS html 大前端 Web js

微服务缓存原理与最佳实践

万俊峰Kevin

缓存 缓存穿透 缓存并发 go-zero Go 语言

谁说明天上线,这货压根不知道开发流程!

小傅哥

Java 小傅哥 架构设计 开发流程 开发规范

极客时间架构师培训 1 期 - 大作业一

Kaven

江苏民丰 x mPaaS | 县域小银行,技术团队就12人,却找到了数字化转型的秘籍

蚂蚁集团移动开发平台 mPaaS

银行数字化转型 mPaaS

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