Sourcegraph 使读取、编写和修复代码变得容易——即使在庞大而复杂的代码库中。
- 代码搜索:搜索所有分支和所有代码主机的所有存储库。
- 代码智能:导航代码、查找引用、查看代码所有者、跟踪历史记录等。
- 修复和重构:一次对许多存储库进行大规模更改并跟踪大规模迁移。
1,Helm 安装
Helm 是 Kubernetes 的包管理工具,常被称为“Kubernetes 的 apt 或 yum”。它简化了应用在 Kubernetes 中的部署和管理,通过称为 Helm Charts 的模板化包提供一键式的应用安装、升级和版本管理。Helm 支持定义复杂的 Kubernetes 资源,帮助开发者和运维人员以可重复和可维护的方式管理集群中的应用程序,同时还提供了回滚功能,允许轻松恢复到之前的版本,非常适合 DevOps 和 CI/CD 流程。
- 官网:Releases · helm/helm · GitHub
- 下载所需版本:helm-v3.16.4-linux-amd64.tar.gz。
wget https://get.helm.sh/helm-v3.16.4-linux-amd64.tar.gz
- 解压缩
tar -zxvf helm-v3.16.4-linux-amd64.tar.gz
- helm在解压后的目录中找到二进制文件,然后将其移至所需的目标位置,这样任何目录都可以使用 helm。
mv linux-amd64/helm /usr/local/bin/helm
- 验证:
helm version
- 常用操作:
// 阿里镜像 helm repo add ali-incubator https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ helm repo add ali-stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts // Git Pages 镜像 helm repo add stable https://burdenbear.github.io/kube-charts-mirror/// 官方镜像 helm repo add stable https://charts.helm.sh/stable// 微软库 helm repo add stable http://mirror.azure.cn/kubernetes/charts/// google仓库 helm repo add stable https://kubernetes-charts-incubator.storage.googleapis.com/// 更新仓库 helm repo update// 查看库 helm repo list helm search repo stable// 删除库 helm repo remove aliyu
2,K3S 安装
K3s 是由 Rancher Labs 开发的轻量级 Kubernetes 发行版,专为边缘计算、物联网(IoT)设备以及资源受限的环境设计。它通过去除不必要的组件(如 Alpha 功能和部分云供应商插件),简化了安装和运行,同时将所有必要的服务打包成一个二进制文件,极大地减少了资源消耗。
- 从官网下载二进制文件 k3s & 镜像文件 k3s-airgap-image-*.tar:Releases · k3s-io/k3s · GitHub
wget https://github.com/k3s-io/k3s/releases/download/v1.31.4%2Bk3s1/k3s-airgap-images-amd64.tar wget https://github.com/k3s-io/k3s/releases/download/v1.31.4%2Bk3s1/k3s
- 将 tar 文件放在 images 目录下。
sudo mkdir -p /var/lib/rancher/k3s/agent/images/ sudo cp ./k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/
- 将 k3s 二进制文件放在 /usr/local/bin/k3s 路径下,并确保拥有可执行的权限。
sudo cp k3s /usr/local/bin/ sudo chmod +x /usr/local/bin/k3s
- 下载 k3s 安装脚本:https://get.k3s.io,将安装脚本放在每个离线节点的任意地方,并命名为 install.sh。
vim install.sh
当使用 INSTALL_K3S_SKIP_DOWNLOAD 环境变量运行 K3s 脚本时,K3s 将使用本地的脚本和二进制。
- 要在单个服务器上安装 K3s,只需在 server 节点上执行以下操作。
INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh[INFO] Skipping k3s download and verify [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] Creating /usr/local/bin/ctr symlink to k3s [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 unit Created symlink from /etc/systemd/system/multi-user.target.wants/k3s.service to /etc/systemd/system/k3s.service. [INFO] systemd: Starting k3s
- 设置KUBECONFIG环境变量。
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
- 查看K3S配置:
kubectl config view
- 清空所有pods:
kubectl delete pod <pod-name>
kubectl delete pod --all -n <namespace>
- 查看所有节点、服务、pods:
kubectl get nodes
kubectl get svc --all-namespaces
kubectl get pods --all-namespaces
- 重启K3S:
systemctl daemon-reload && systemctl restart k3s
3,SourceGraph 在线安装
- 配置 SourceGraph Chart
helm repo add sourcegraph https://helm.sourcegraph.com/releasehelm install --version 5.9.1590 sourcegraph sourcegraph/sourcegraph
- 查看 k3s pods 的运行状态
kubectl get pods --all-namespaces
// 查看 Pods 的详细信息 kubectl describe pod <pod-name> -n <namespace>kubectl describe pod sourcegraph-frontend-5f6769dc78-c46kw -n defaultEvents:会显示调度失败的原因。 Conditions:查看 Pod 的 Ready 状态。
- 查看报错原因: Warning Failed 4s kubelet Failed to pull image "index.docker.io/sourcegraph/precise-code-intel- worker:5.9.1590": failed to pull and unpack image "docker.io/sourcegraph/precise-code-intel-worker:5.9.1590": failed to resolve reference "docker.io/sourcegraph/precise-code-intel-worker:5.9.1590": failed to do request: Head "https://registry-1.docker.io/v2/sourcegraph/precise-code-intel-worker/manifests/5.9.1590": dial tcp 108.160.166.62:443: i/o timeout
- 修整 Docker 镜像:
kubectl edit pods precise-code-intel-worker-8546fcf697-f9r97// 替换 index.docker.io/sourcegraph/blobstore:5.9.1590@sha256:e0a170cbc4ecab83ed0471273c2632394a602dea1817e698affc72c14c7469ca ↓ hub.geekery.cn/sourcegraph/blobstore:5.9.1590
- 强制重启:删除 Pending 的 Pod,让 Kubernetes 重新调度。
kubectl delete pod <pod-name> -n <namespace>kubectl delete pod sourcegraph-frontend-5f6769dc78-c46kw -n default
4,SourceGraph 离线安装
- 安装 Docker,参考:Docker容器与虚拟机的区别、优势及实战-CSDN博客
- 下载部署文件:Releases · sourcegraph/deploy · GitHub ,得到 .zip 文件。
- 上传至 /非root用户/$HOME/deploy(如果目录不存在,则创建)。
- 上传 SourceGraph 安装脚本到同样目录。
- 上传 sourcegraph-charts.tgz 到 /