Administrator
Administrator
发布于 2026-10-12 / 5 阅读
0
0

K3s+kubernate面板部署

前提条件:
# 关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

# 关闭selinux

setenforce 0

sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# 关闭swap

swapoff -a

sed -i '/swap/s/^/#/' /etc/fstab
另外部署好docker环境

#加载sysctl优化

modprobe overlay

modprobe br_netfilter

cat > /etc/sysctl.d/k8s.conf <

net.bridge.bridge-nf-call-iptables = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.ipv4.ip_forward = 1

EOF

#生效

sysctl --system

安装基础依赖
yum install -y wget curl iptables ntp

timedatectl set-ntp true

一键安装 K3s(单节点主节点,适合十几微服务场景)
# 国内加速镜像安装,关闭traefik(可选,自己用ingress)、内置sqlite轻量化存储(此处为v2版本,不适配centos的v1,或升级centos的cggroup或改上v1)

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - \
--disable traefik \
--write-kubeconfig-mode 644

# 如果centos报v2的cggroup不适配,可卸载掉v2版本,执行其unistall.sh

sudo /usr/local/bin/k3s-uninstall.sh


验证k3s是否安装成功
# 查看集群状态

kubectl get nodes

# 查看系统pod

kubectl get pods -n kube-system

备注:kubeconfig 文件路径:
/etc/rancher/k3s/k3s.yaml

部署Dashboard

由于k3s内置containerd 作为容器运行时,就算本地导入镜像,kubelet 依然会联网校验镜像仓库;
所以决定使用docker的容器
加上 --docker 参数,让 K3s 直接对接宿主机 Docker:

镜像通过 docker load 导入,Docker 本地缓存镜像,不会发起外网仓库校验请求

  • pause、dashboard、metrics-scraper 全部本地存在,沙箱创建不再超时

  • #先停止k3s
    systemctl stop k3s

  • 把上传到root下的镜像文件导入到docker里

docker load -i /root/dashboard-v2.7.0.tar

docker load -i /root/metrics-scraper-v1.0.8.tar

docker load -i /root/pause-3.6.tar

  • 验证是否成功
    docker images | grep kubernetesui

  • docker images | grep pause


  • #写入覆盖k3s.service,让k3s用docker容器
    cat > /etc/systemd/system/k3s.service << 'EOF'

  • [Unit]

  • Description=Lightweight Kubernetes

  • Documentation=https://k3s.io

  • Wants=network-online.target

  • After=network-online.target

[Install]

WantedBy=multi-user.target

[Service]

Type=notify

EnvironmentFile=-/etc/default/%N

EnvironmentFile=-/etc/sysconfig/%N

EnvironmentFile=-/etc/systemd/system/k3s.service.env

KillMode=process

Delegate=yes

User=root

LimitNOFILE=1048576

LimitNPROC=infinity

LimitCORE=infinity

TasksMax=infinity

TimeoutStartSec=0

Restart=always

RestartSec=5s

ExecStartPre=-/sbin/modprobe br_netfilter

ExecStartPre=-/sbin/modprobe overlay

ExecStart=/usr/local/bin/k3s server --pause-image docker.io/rancher/mirrored-pause:3.6 --docker --disable traefik --write-kubeconfig-mode 644

EOF


评论