K3S部署和使用

木木2年前技术文章1149

k3s介绍

k3s是一个高可用的、经过CNCF认证的Kubernetes发行版,专为无人值守、资源受限、偏远地区或物联网设备内部的生产工作负载而设计。

k3s安装

参考文件

使用配置文件安装k3s

为了保证k3s的可迁移性,我们使用配置文件安装k3s。默认情况下,位于/etc/rancher/k3s/config.yaml的 YAML 文件中的值将在安装时使用。

cluster-cidr: '172.16.100.0/24'
service-cidr: '172.16.110.0/24'
data-dir: '/k3s/data'

配置文件的位置可以通过 cli 参数--config FILE,-c FILE或者环境变量$K3S_CONFIG_FILE来改变。

使用安装脚本安装k3s

安装命令

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_SYMLINK=skip INSTALL_K3S_BIN_DIR=/k3s/bin  K3S_CONFIG_FILE=/k3s/config.yaml sh

此时k3s安装完成

k3s使用

安装完成后进入到我们的/k3s/bin目录可以看到相关命令

测试集群是否启动

部署k3s的helm controller

k3s相关文档

部署helm controller

找到最新版本的releases,可以看到官方提供的yaml文件

可以看到官方提供了集群范围和命名空间范围的yaml文件,我们使用集群范围的yaml文件来部署helm controller

找到我们k3s的data目录中server的manifests目录

下载官方提供的yaml文件到相关目录

wget https://github.com/k3s-io/helm-controller/releases/download/v0.13.1/deploy-cluster-scoped.yaml

再次查看deployment,可以看到helm controller已经安装

Helm Controller使用 HelmChart 自定义资源定义 (CRD) 管理 Helm Chart

使用helm CRD

HelmChart 资源定义捕获了你通常传递给 helm 命令行工具的大部分选项。也就是说我们使用HelmChart资源来使用helm命令。下面示例是从jenkins的helm仓库部署jenkins到jenkins命名空间。HelmChart 资源本身位于 kube-system 命名空间中,但 Chart 的资源将部署到 jenkins 命名空间。

apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
  name: jenkinsci
  namespace: kube-system
spec:
  repo: https://charts.jenkins.io
  chart: jenkins
  targetNamespace: jenkins
  valuesContent: |-
    persistence:
      storageClass: local-path
    controller:
      serviceType: NodePort
      initScripts:
        - |
           System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
           System.setProperty('user.timezone', 'Asia/Shanghai')

HelmChart 字段定义

字段默认描述Helm 参数/标志等效项
name
Helm Chart 名称NAME
spec.chart
仓库中的 Helm Chart 名称,或 chart archive (.tgz) 的完整 HTTPS URLCHART
spec.targetNamespacedefaultHelm Chart 目标命名空间--namespace
spec.version
Helm Chart 版本(通过仓库安装时)--version
spec.repo
Helm Chart 仓库 URL--repo
spec.helmVersionv3要使用的 Helm 版本(v2v3
spec.bootstrapFalse如果需要此 Chart 来引导集群(Cloud Controller Manager 等),请设置为 True
spec.set
覆盖简单的默认 Chart 值。优先于通过 valuesContent 设置的选项。--set / --set-string
spec.jobImage
指定安装 helm chart 时要使用的镜像。例如:rancher/klipper-helm:v0.3.0
spec.valuesContent
通过 YAML 文件内容覆盖复杂的默认 Chart 值--values
spec.chartContent
Base64 编码的 chart archive .tgz,覆盖 spec.chartCHART

安装helm CRD

编辑好yaml文件后直接安装即可

k3s kubectl apply -f jenkins-crd.yaml

查看我们安装好的helmchart crd

k3s kubectl get helmchart -A

查看jenkins

k3s kubectl get all -n jenkins

此时可以看到jenkins已经安装

k3s的备份和还原

参考资料

k3s备份

默认情况下k3s使用SQLite作为数据库,这里我们需要手动备份k3s data目录的数据,默认路径为/var/lib/rancher/k3s/server

k3s还原

在另外一台机器上先安装k3s

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_SYMLINK=skip INSTALL_K3S_BIN_DIR=/k3s/bin  K3S_CONFIG_FILE=/k3s/config.yaml sh

安装完成后停止k3s服务

恢复之前备份的server目录

重新启动k3s

可以看到这里的k3s启动时间等信息并不是一个新创建的集群,证明我们备份还原成功


相关文章

ip_foward未开启导致slb健康检查异常

ip_foward未开启导致slb健康检查异常

现象:在slb上配置一条7层http监听,并开启健康检查,发现健康检查一直异常。处理步骤:针对slb健康检查异常的问题,可从以下四个方面入手,排查原因。1、确认服务器上业务程序正常启动,且在后端服务器...

MySQL 8.0 不可见索引使用

一、具体信息1、在提供 SQL 优化意见的时候包括了两个冗余索引的内容,具体内容如下:查看慢 SQL 的时候发现 database 库 table 表中存在冗余索引,具体冗余索引情况如下:KEY `k...

Linux操作系统启动流程

Linux操作系统启动流程

无论Windows还是Linux操作系统,启动之前都会对硬件进行检测,之后硬盘引导启动操作系统,下面是与启动系统相关的几个概念。BIOS基本输入输出系统 是一组固化到计算机主板上的只读内存镜...

Kubernetes源码解读(一)--WorkQueue源码分析

Kubernetes源码解读(一)--WorkQueue源码分析

 WorkQueue被称为工作队列,kubernets的WorkQueue队列与普通FIFO队列相比多了以下特性:有序:按照添加顺序处理元素(item)去重:相同元素在同一时间不会被重复处理,例如:一...

InnoDB秘籍:MVCC机制与行锁的深度探索(1)

InnoDB秘籍:MVCC机制与行锁的深度探索(1)

前言事务的起源可以追溯到 6000 年以前,当时苏美尔人(Sumerians)就发明了事务处理和记录的方法。已知最早的记录是写在土块上的,上面写了皇家的税收、土地、谷物、牲畜、奴隶和黄金,明确地记下了...

大数据自动化巡检系统(一)

大数据自动化巡检系统(一)

一、产品简介EasyCare大数据自动化巡检平台是袋鼠云自研的一款大数据集群自动化巡检调优运维平台,支持针对各类大数据组件、服务接口、其他组件等可用性、稳定性进行自动巡检,实现主动实时监控,准确定位问...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。