Helm 完全使用指南:从入门安装到高级命令
引言Helm 是 Kubernetes 的包管理器,它如同 Linux 系统中的 apt 或 yum,能够帮助开发者和运维人员轻松地查找、分享和使用为 Kubernetes 构建的软件。通过将一组相关的 Kubernetes 资源打包成一个称为 "Chart" 的单元,Helm 极大地简化了复杂应用的部署、升级和管理过程。 本指南将从 Helm 的安装开始,逐步深入到其核心概念和常用命令,为你提供一个全面而实用的 Helm 使用手册。 一、Helm 的安装在 Linux 系统上安装 Helm 非常直接。以下步骤以 Helm 3.8.0 为例: 1. 下载 Helm 二进制文件从 Helm 的官方发布页面或镜像站点下载适合你系统的二进制压缩包。 12# 从官方推荐的源下载wget https://get.helm.sh/helm-v3.8.0-linux-amd64.tar.gz 2. 解压文件将下载的压缩包解压。 1tar -zxvf helm-v3.8.0-linux-amd64.tar.gz 3. 移动到系统路径并授权将解压出的 helm 可执行文件移...
处理 Rancher 连接节点 "Cluster agent is not connected"
故障场景描述在 K3s 集群经历长时间运行(如 2 年以上)或底层容器运行时(Containerd)崩溃重启后,Rancher 界面显示集群状态为 Unavailable,错误提示通常为 "Cluster agent is not connected"。 故障诊断流程第一阶段:排查 K3s 节点健康度在手动处理 Rancher 连接前,必须确保 K3s 核心服务已恢复。 检查容器运行时状态: 12# 如果报错 connection refused,说明 containerd 没起crictl ps 检查孤儿挂载点(Device busy):Kubelet 频繁报错 device or resource busy 会导致 API Server 响应极慢,进而撑挂 Rancher 隧道。 12# 查找并懒卸载残留路径grep "kubelet/pods" /proc/mounts | awk '{print $2}' | xargs -I {} umount -l {...
解决镜像下载失败的几种方法
前言在学习、研究 Kubernetes 的过程中,经常遇到镜像拉取不了的网络问题,这并不是镜像本身的问题,而是国内的"国情"导致无法正常访问墙外资源。 这些镜像有的是 Kubernetes 团队自研的插件,也有一些是爱好者开发的第三方组件,正常来说,它们会存放于 gcr.io 或者 quay.io 中。 gcr.io 是谷歌的镜像仓库,在国内是禁止访问的 quay.io 是 Red Hat 的镜像仓库,可以访问,但速度较慢 那如何应对这种网络问题呢? 现成的镜像代理仓库k8s.gcr.io 源代理仓库这是 gcr.io/google-containers 的仓库,使用阿里云镜像: 123k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0# 换成registry.aliyuncs.com/google_containers/csi-node-driver-registrar:v2.3.0 也可以使用 lank8s.cn,它们的对应关系:k8s.gcr.io → lank8s.cn,gcr.io →...
分布式块存储 Longhorn
官方文档 记录下 Longhorn 的使用 - Rancher Lab 提供的开源分布式块存储方案 Longhorn 支持以下架构: AMD64 ARM64(实验性) Longhorn 需要 open-iscsi、curl、findmnt、grep、awk、blkid、lsblk 的依赖(是否需要单独安装可以使用这个脚本进行验证,CentOS 7 有可能需要单独安装下 jq 和 open-iscsi) 利用 Rancher 安装在 Rancher UI 上选择自己的集群,然后找到对应 App 安装即可,v2.6.3 测试没问题(尝试用 kubectl 安装的时候告诉我缺少 NODE_NAME ENV,但是 Rancher 就正常):https://longhorn.io/docs/1.2.3/deploy/install/install-with-rancher/ 查看对应几个 Node 是否正常创建 Longhorn默认数据路径: 1ls /var/lib/longhorn 界面 创建应用进行测试应用 yaml 创建 PVC 和 pod pvc.yaml123456...
K3s/containerd 的一些配置(加速器、私有仓库)
K3s 私有镜像仓库配置 Containerd 配置镜像仓库 参考 Kubernetes 在 Changelog 中宣布自 Kubernetes 1.20 之后将弃用 Docker 作为容器运行时之后,containerd 成为下一个容器运行时的热门选项。虽然 containerd 很早就已经是 Docker 的一部分,但是纯粹使用 containerd 还是给大家带来了诸多困扰,本文将介绍如何使用 containerd 配置镜像仓库和加速器。 本文将以 K3s 为例对 containerd 进行配置,如果您的环境未使用 K3s 而是使用的 Kubernetes,你也可以参考本文来配置 containerd 的镜像仓库,因为 containerd 的配置是通用的。 关于 K3s 和 containerdK3s 是一个轻量级 Kubernetes 发行版,二进制大小小于 100MB,所需内存不到 Kubernetes 的一半。K3s 为了降低资源消耗,将默认的 runtime 修改为 containerd,同时也内置了 Kubernetes CLI 工具 crictl 和 ct...
Ingress - K3s 之 Traefik 的使用
前言IngressService 可能会有很多,如果每个资源都绑定一个 node port 的话,主机则需要开放外围的端口进行服务调用,管理上会比较混乱。 比较优雅的方式是通过一个外部的负载均衡器,比如 Nginx,绑定固定的端口比如 80,然后根据域名/服务名向后面的 Service IP 转发,但是这里的问题在于:当有新服务加入的时候如何修改 Nginx 配置? 手动改或者 Rolling Update Nginx Pod 都是不现实的。 对于这个问题,Kubernetes 给出的七层解决方案是:Ingress TraefikTræfik 是一个为了让部署微服务更加便捷而诞生的现代 HTTP 反向代理、负载均衡工具。它支持多种后台(Docker、Swarm、Kubernetes、Marathon、Mesos、Consul、Etcd、Zookeeper、BoltDB、Rest API、file...)来自动化、动态的应用它的配置文件设置。 Traefik 是 K3s 里面的 Ingress Controller,支持负载均衡和反向代理,类似于 Nginx。 Traef...
K3s 卸载
卸载 K3sServer 节点执行1sh /usr/local/bin/k3s-uninstall.sh Agent 节点执行1sh /usr/local/bin/k3s-agent-uninstall.sh 清除配置1rm -rf $HOME/.kube 如果是外部数据库,卸载完需要记得清除 database 的数据 MySQL:清空 K3s 创建的 kine 表
K3s 高可用安装
安装版本:K3s (v1.21.7+k3s1) 参考站内 K3s 实践高可用架构图。 官方文档参考顺序(官方文档记录的顺序有点乱)1234560. 查看对应版本: https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/rancher-v2-6-3/1. 基础架构: https://rancher.com/docs/rancher/v2.6/en/installation/resources/k8s-tutorials/infrastructure-tutorials/infra-for-ha-with-external-db/2. 负载均衡: https://rancher.com/docs/rancher/v2.6/en/installation/resources/k8s-tutorials/infrastructure-tutorials/nginx/3. 部署 K3s: https://rancher.com/docs/rancher/v2.6/en/installation/r...
关于 K3s 的证书轮换策略
前言官方文档 K3s 启动时会自动生成 CA 证书,CA 证书的有效期为 10 年。其他证书有效期为 1 年,如果证书已经过期或剩余的时间不足 90 天,则在 K3s 重启时轮换证书。K3s 服务只是一个进程,K3s 服务重启不会影响正在运行的 Pod,也不会影响你的业务。 证书轮换方式(3 种任选其一)使用 crontab + shell 脚本 方式实现证书轮换编写脚本 upgradeCert.sh,并放在主节点服务器上。 查看主节点位置: 1kubectl get nodes -l 'node-role.kubernetes.io/control-plane'|awk '{if (NR>1){print $1}}' Server 节点脚本 1234567891011121314151617181920#!/bin/bash# 目标目录DIR="/var/lib/rancher/k3s/server/tls"now=$(date +%s)# 递归查找 .crt 文件for...
