前提条件:
# 关闭防火墙
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 kubernetesuidocker 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