k3s学习

1.k3s一个master一个slave安装

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

主机名 IP 角色
k3s‑server 192.168.118.100 Server(控制平面,master)
k3s‑worker01 192.168.122.101 Agent(worker 工作节点)
  1. 关闭防火墙(测试环境;生产环境需要放行端口)

    Ubuntu

    ufw disable

    CentOS/RHEL

    systemctl stop firewalld
    systemctl disable firewalld

  2. 关闭 swap!k8s 系产品必须关闭 swap

    swapoff -a
    #临时关闭swap

    sed -i '/ swap / s/^.*$/#\1/g' /etc/fstab
    #永久关闭

  3. 设置主机名(分别在对应机器设置)

    server节点执行

    hostnamectl set-hostname k3s-server

    worker节点执行

    hostnamectl set-hostname k3s-worker01

  4. 时间同步,系统时间保持一致

    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
相关推荐
Wx-bishekaifayuan1 小时前
Springcloud中学在线学习平台58883-计算机课程设计、毕业设计
java·vue.js·spring boot·学习·spring·spring cloud·课程设计
peter67682 小时前
css学习小结
前端·css·学习
励志不掉头发的内向程序员4 小时前
【从零写一个CAD 03】三个 double 值得单独一个类吗:把视图变换抽成 View
开发语言·c++·qt·学习·系统架构
m4Rk_10 小时前
【论文阅读】Agent 记忆机制(83):Inside Out——用可演化 PersonaTree 构建 Agent 的核心长期记忆
论文阅读·人工智能·学习·开源·github
鬓戈11 小时前
Rust 语言与 AI 应用生态调研及学习路径
人工智能·学习·rust
传奇开心果编程11 小时前
【SwiftUI娓娓道来】第3课:让界面活起来——交互与动画指南
学习·macos·ui·ios·swiftui·swift
xian_wwq11 小时前
【学习笔记】等保合规安全基线核查实战
笔记·学习
传奇开心果编程12 小时前
【Jetpack Compose进阶学与练】第14课:系列收尾复习总结;Compose项目常见坑点汇总;学习路线与后续学习方向
android·学习·ui·kotlin·android jetpack
yangmu320312 小时前
发动机是怎么把油变成动力的:四冲程内燃机原理拆解
学习