手把手教你玩转 Gitea|使用 Helm 在 K3s 上安装 Gitea

前言在前面的文章中,演示了如何用 Docker 镜像和 Windows 二进制包来安装运行 Gitea 。今天是玩转 Gitea 系列的使用 Helm 在 K3s 上安装 Gitea 。
关于 Gitea 的其他安装和使用方式,可以查看公众号文章:Gitea 安装配置系列教程 。
关于 K3sK3s 是 Rancher 发布的一款 Kubernetes 轻量级发行版,拥有完整特性的同时安装和使用也非常方便 。
K3s 的安装K3s 的安装有多种方式,详细内容可以查看K3s 中文文档 。本文搭建的 Kubernetes 运行环境如下:

  • 服务器:使用 K3s 安装脚本安装 Kubernetes 发行版环境
  • 管理员客户端:安装 kubectl 和 helm 命令行工具
使用如下命令安装 K3s# 方案一:会从 K8s 的 GitHub 仓库下载安装包$ curl -sfL https://get.k3s.io | sh -# 方案二:中国大陆用户 , 使用 Rancher 提供的阿里云 CDN 加速下载$ curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -# 以下是安装过程输出的信息[INFO]Finding release for channel stable[INFO]Using v1.24.6+k3s1 as release[INFO]Downloading hash rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/v1.24.6-k3s1/sha256sum-amd64.txt[INFO]Downloading binary rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/v1.24.6-k3s1/k3s[INFO]Verifying binary download[INFO]Installing k3s to /usr/local/bin/k3s[INFO]Skipping installation of SELinux RPM[INFO]Creating /usr/local/bin/kubectl symlink to k3s[INFO]Creating /usr/local/bin/crictl symlink to k3s[INFO]Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr[INFO]Creating killall script /usr/local/bin/k3s-killall.sh[INFO]Creating uninstall script /usr/local/bin/k3s-uninstall.sh[INFO]env: Creating environment file /etc/systemd/system/k3s.service.env[INFO]systemd: Creating service file /etc/systemd/system/k3s.service[INFO]systemd: Enabling k3s unitCreated symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.[INFO]systemd: Starting k3s可以用 kubectl 来查看安装是否成功:
$ kubectl get nodesNAMESTATUSROLESAGEVERSIONdebianReadycontrol-plane,master5m42sv1.24.6+k3s1可以看到有一个单节点的 K3s 集群正在运行了 。接下来就用 K3s 来运行 Gitea 。
从外部访问 k3s1.获得访问集群所需的配置文件 /etc/rancher/k3s/k3s.yaml,将其复制到个人工作目录~/.kube/config,或者其他能够访问到集群网络的客户机 。
mkdir ~/.kubesudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/configsudo chown $USER ~/.kube/configsudo chmod 600 ~/.kube/config# 将 KUBECONFIG 添加到个人工作环境变量,便于 Helm、kubectl 读取echo "export KUBECONFIG=~/.kube/config" >> ~/.bashrc2.将配置文件 ~/.kube/config 中的 server: https://127.0.0.1:6443 更改为客户机可访问的服务器地址 。
安装 kubectl
阅读:安装 kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl安装 Helm
阅读:安装 Helm
  1. 下载 Helm https://github.com/helm/helm/releases
  2. 解压安装
tar -xvzf helm-*-linux-amd64.tar.gzsudo mv linux-amd64/helm /usr/local/bin/helm添加 Helm 仓库# 官方仓库 bitnamihelm repo add bitnami https://charts.bitnami.com/bitnami# Gitea 仓库helm repo add gitea https://dl.gitea.io/charts/使用 Helm 安装 Gitea前提条件在 K3s 上安装 Gitea 需要确保提前安装了 Helm,v2 或 v3 版本均可,但是建议用 v3,本文的 Helm 版本信息如下:
$ helm versionversion.BuildInfo{Version:"v3.10.0", GitCommit:"ce66412a723e4d89555dc67217607c6579ffcb21", GitTreeState:"clean", GoVersion:"go1.18.6"}添加 Gitea Helm Chart 仓库:
$ helm repo add gitea https://dl.gitea.io/charts"gitea" has been added to your repositories更新 Helm Chart 本地缓存
$ helm repo updateHang tight while we grab the latest from your chart repositories......Successfully got an update from the "gitea" chart repositoryUpdate Complete. ?Happy Helming!?Gitea Helm Chart 定制K3s 上安装 Gitea,是通过 Helm 实现的 。首先将 Gitea Helm chart 的 values.yaml 配置文件拉取到本地:
helm show values gitea/gitea > gitea.yaml由于 Gitea Helm Chart 包含多个组件,包括核心组件 Gitea、可选依赖组件(诸如 MySQL、MariaDB、PostgreSQL、Memcached 等)、可选功能集成(Ingress、Service、Metrics 等),整体的 values.yaml 文件比较复杂,详细内容可以查看 Gitea Helm Chart 。
然后,对 Gitea Helm Chart 进行一些参数修改:

推荐阅读