拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

k3s学习

k3s学习

1.k3s一个master一个slave安装

机器规划(2 台虚拟机, CentOS‑9 )

主机名IP角色
k3s‑server192.168.118.100Server(控制平面,master)
k3s‑worker01192.168.122.101Agent(worker 工作节点)
  1. 关闭防火墙(测试环境;生产环境需要放行端口)
# Ubuntu ufw disable # CentOS/RHEL systemctl stop firewalld systemctl disable firewalld
  1. 关闭 swap!k8s 系产品必须关闭 swap
swapoff -a #临时关闭swap sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab #永久关闭
  1. 设置主机名(分别在对应机器设置)
# server节点执行 hostnamectl set-hostname k3s-server # worker节点执行 hostnamectl set-hostname k3s-worker01
  1. 时间同步,系统时间保持一致
timedatectl set-ntp true

K3s 默认自带 containerd 容器运行时,不用手动装 docker。

步骤 1:部署 K3s Server(控制节点,192.168.122.10 上执行)

官方一键安装脚本。

curl -sfL https://get.k3s.io | sh -

加速一键安装脚本(推荐)

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

执行完脚本之后:

  1. k3s 服务自动启动systemctl status k3s
  2. kubeconfig 配置文件自动生成:/etc/rancher/k3s/k3s.yaml
  3. 获取 node‑token!worker 加入集群需要这个 token,非常重要
cat /var/lib/rancher/k3s/server/node-token

复制输出的一长串 token 字符串,保存下来,后面 worker 要用。

✨ 在 server 节点,kubectl 已经直接可用!k3s 内置 kubectl 命令,不用单独装

# 验证节点,刚装完只有server一个节点 kubectl get nodes

此时状态应该 Ready。

补充说明:默认 k3s server 内置嵌入式 sqlite 数据库(单 master 场景);多 master 高可用才需要外置 etcd。我们本节课就单 master。


🚀 步骤 2:部署 K3s Agent(worker 工作节点,192.168.122.11 机器上执行)

worker 机器上执行安装脚本,需要传入两个环境变量

  • K3S_URL指定 server 节点地址https://192.168.118.100:6443
  • K3S_TOKEN就是刚才 server 拿到的 node‑token

官方脚本

# 替换下面IP和token为你自己环境的值 curl -sfL https://get.k3s.io | K3S_URL=https://192.168.118.100:6443 K3S_TOKEN="你的node-token字符串" sh -

加速脚本(推荐)

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.118.100:6443 K3S_TOKEN=K107c36d4ba7f53e3ddd030016525bb7ec5be55c5be981aae97c3806587724d6eb2::server:ca69e6133590fe25261005c225ad06c2 sh -

worker 节点安装完之后,服务名字是k3s‑agent

systemctl status k3s-agent

✅ 步骤 3:回到 server 节点验证整个集群

在 k3s‑server 执行

kubectl get nodes

预期输出会看到两台节点,STATUS 都是 Ready。

NAME STATUS ROLES AGE VERSION k3s-server Ready control-plane,master 15m v1.30.x+k3s1 k3s-worker01 Ready <none> 3m v1.30.x+k3s1

再看系统 pod 是否全部 running

kubectl get pods -n kube-system

kube‑system 里面跑 traefik (ingress)、local‑path‑provisioner (本地存储)、coredns 等 k3s 自带组件。全部 Running 代表集群安装成功!

加速地址(所有机器都要做)

sudo mkdir -p /etc/rancher/k3s sudo cat > /etc/rancher/k3s/registries.yaml << 'EOF' mirrors: docker.io: endpoint: - "https://docker.m.daocloud.io" - "https://dockerproxy.com" - "https://docker.nju.edu.cn" - "https://registry-1.docker.io" rancher: endpoint: - "https://docker.m.daocloud.io" EOF sudo systemctl restart k3s systemctl restart k3s-agent
sudo mkdir -p /etc/rancher/k3s sudo cat > /etc/rancher/k3s/registries.yaml << EOF mirrors: docker.io: endpoint: - "https://docker.mirrors.ustc.edu.cn" - "https://hub-mirror.c.163.com" - "https://mirror.baidubce.com" rancher: endpoint: - "https://docker.mirrors.ustc.edu.cn" EOF sudo systemctl restart k3s systemctl restart k3s-agent

HELM学习

👉Helm 就是 Kubernetes 的包管理器,类似 Ubuntu apt、Centos yum。

基础名词

  1. Helm Chart就是软件安装包;把一整套 k8s 资源 yaml 打包。 Chart 里面包含:一堆模板 yaml + values.yaml(配置参数文件)。 模板里面留占位符,安装的时候填入自定义参数渲染出最终 yaml。
  2. values.yaml自定义配置文件!不要直接改模板!修改 values 来覆盖参数。

安装 Chart 时,可以改副本数、镜像版本、存储类、资源限制,全部在 values 写。

  1. Release(发布实例)在集群里面每一次 helm 安装就生成一个 Release; 同一个 Chart 可以在集群装多份,每一份就是独立 Release,名字不一样。

💡注意:helm本地客户端工具;k3s 已经内置 helm,不需要额外安装 helm 二进制。

在 K3s 节点或管理机上安装Helm v3 CLI,推荐用官方脚本,简单可靠。

方法一:使用官方安装脚本(推荐)

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

安装完成后验证:

helm version

先用社区维护的国内镜像源

添加 itboon 镜像源(国内可用)

helm repo add bitnami https://helm-charts.itboon.top/bitnami --force-update helm repo update
返回列表