【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

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

评论

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

C++ 默认参数与引用传递:语法、用法及示例

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

defi交易挖矿系统开发 dapp智能合约开发技术

西安链酷科技

nft交易市场开发

元宇宙项目开发 dapp智能合约模式开发 质押挖矿系统搭建

西安链酷科技

去中心化合约开发

通义灵码×西安交通大学携手打造“云工开物-高校训练营”,解锁 AI 时代编程学习与实战

阿里巴巴云原生

阿里云 云原生 通义灵码

Rest和Http什么关系?

百度搜索:蓝易云

云计算 Linux 运维 Rest 云服务器

国内有哪些比较好的区块链技术公司

西安链酷科技

区块链技术应用开发

Higress 全新 Wasm 运行时,性能大幅提升

阿里巴巴云原生

阿里云 云原生 Higress

Penpad生态再迎新进展,Season 2 ETH 质押量超200万美元

股市老人

Penpad再获OKX 、Scroll生态支持,外部资金涌入ETH质押

股市老人

基本的Linux命令以及Linux目录结构

百度搜索:蓝易云

云计算 Linux 运维 云服务器 ECS

dapp开发需要多少钱 dapp软件开发公司

西安链酷科技

DAPP智能合约交易系统开发

erc20代币发行 bsc链代币发行、波场链、以太坊链加密货币发售

西安链酷科技

RocketMQ 事件驱动:云时代的事件驱动有啥不同?

阿里巴巴云原生

阿里云 RocketMQ 云原生

nodejs发布静态https服务器

百度搜索:蓝易云

云计算 Linux 运维 https Node

数字货币交易所开发软件搭建、安卓ios源码交付

西安链酷科技

区块链交易所开发

Penpad获OKX 、Scroll生态大力支持,ETH质押创新高

加密眼界

tomcat部署、tomcat虚拟主机及tomcat多实例

百度搜索:蓝易云

tomcat Linux 运维 Web JavaEE

Penpad生态再迎新进展,Season 2 ETH 质押量超200万美元

BlockChain先知

Penpad获OKX 、Scroll生态大力支持,ETH质押创新高

长安区块链

使用 TypeScript 从零搭建自己的 Web 框架: Electron 环境运行

RoyLin

typescript

企业架构设计的一般过程-以目标为导向

凌晞

企业架构 架构设计

Amazon SageMaker: 拓展机器学习边界,塑造未来创新趋势

亚马逊云科技 (Amazon Web Services)

机器学习 re:Invent 亚马逊云科技 生成式人工智能 Amazon SageMaker

加密货币交易所开发、区块链交易所开发 秒合约交易所系统源码部署

西安链酷科技

合约交易所开发 期权交易所 合约跟单系统开发

鸿蒙HarmonyOS实战-ArkTS语言(渲染控制)

蜀道山

鸿蒙 HarmonyOS 鸿蒙开发 鸿蒙系统 ArkTS

Penpad再获OKX 、Scroll生态支持,外部资金涌入ETH质押

威廉META

Penpad获OKX 、Scroll生态大力支持,ETH质押创新高

石头财经

区块链白皮书编辑、白皮书撰写 企业技术书ppt制作

西安链酷科技

项目白皮书 白皮书编辑

Penpad获OKX 、Scroll生态大力支持,ETH质押创新高

大瞿科技

使用 TypeScript 从零搭建自己的 Web 框架:框架雏形

RoyLin

typescript

鸿蒙HarmonyOS实战-ArkUI组件(Row/Column)

蜀道山

鸿蒙 HarmonyOS 鸿蒙开发 鸿蒙系统 鸿蒙 Ability

运用指针轻松实现多个数据排列

智趣匠

PLC PLC-IoT

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