运维监控HOT
Ubuntu 搭建 K3s 集群
2026-04-29·8 分钟阅读
记录一下 Ubuntu 上搭 K3s 集群的步骤。三台机器,一个 master 两个 node,带 NFS 存储。
系统初始化(所有节点都要做)
关闭防火墙
bash双击代码复制
systemctl stop firewalld
systemctl disable firewalld关闭 SELinux
bash双击代码复制
# 临时
setenforce 0
# 永久
sed -i 's/enforcing/disabled/' /etc/selinux/config关闭交换分区
bash双击代码复制
# 临时
swapoff -a
# 永久
sed -ri 's/.*swap.*/#&/' /etc/fstab安装 Docker(所有节点装同一版本)
bash双击代码复制
sudo apt update
sudo apt upgrade -y
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release添加 Docker 官方源:
bash双击代码复制
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update安装 Docker:
bash双击代码复制
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker version
docker compose version配置 Docker
编辑 /etc/docker/daemon.json:
json双击代码复制
{
"storage-driver": "overlay2",
"storage-opts": ["overlay2.override_kernel_check=true"],
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}重启 Docker:
bash双击代码复制
sudo systemctl restart docker配置 hosts(三台机器都要配)
bash双击代码复制
cat >> /etc/hosts <<EOF
192.168.0.146 k8s-master
192.168.0.172 k8s-node1
192.168.0.193 k8s-node2
EOFIP 换成你实际的。
安装 K3s Master
bash双击代码复制
hostnamectl set-hostname master--tls-san 填你的公网 IP 和内网 IP,不然证书会报错:
bash双击代码复制
curl -sfL https://get.k3s.io | sh -s - server --cluster-init --tls-san 8.219.59.132 --tls-san 172.21.128.220安装完后查看节点 token 和 kubeconfig:
bash双击代码复制
cat /var/lib/rancher/k3s/server/node-token
cat /etc/rancher/k3s/k3s.yaml配 kubeconfig:
bash双击代码复制
mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $(id -u):$(id -g) ~/.kube/config加入 Worker 节点
每个 node 上执行,替换 MASTER_IP 和 TOKEN:
bash双击代码复制
hostnamectl set-hostname node-1bash双击代码复制
curl -sfL https://get.k3s.io | K3S_URL=https://172.24.199.171:6443 K3S_TOKEN=K103014e2ca5d99f1aeea880fafacd2e099df65861cf949afe0569026974328cb63::server:290c5798ebabf10dd395b0ed4962fdcc sh -安装 Helm
bash双击代码复制
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash配置 NFS 存储
服务端(master 节点)
bash双击代码复制
apt install -y nfs-kernel-server
mkdir -p /opt/nfsstore/boex
chown nobody:nogroup /opt/nfsstore/boex编辑 /etc/exports:
code双击代码复制
/opt/nfsstore/boex 172.21.128.0/24(rw,sync,no_subtree_check,no_root_squash)启动服务:
bash双击代码复制
systemctl restart nfs-server
systemctl enable nfs-server
systemctl enable rpcbind
showmount -e客户端(node 节点)
bash双击代码复制
apt install -y nfs-commonkubectl 别名(可选)
bash双击代码复制
kq() {
kubectl -n boex-system "$@"
}加到 ~/.bashrc 里永久生效。