目录

k3s安装及常见问题解决

简介

什么是 K3s? K3s 是一个轻量级的 Kubernetes 发行版,它针对边缘计算、物联网等场景进行了高度优化,也就是简易版的 k8s,针对开发者本地最小化部署管理 Kubernetes 集群管理工具,专注于让 Kubernetes 易于学习和开发,非常适合服务器资源短缺的用户

官方文档:https://docs.rancher.cn/docs/k3s/_index

本文基于 linux Centos 7、Centos 8 、OpenCloud OS 8/9 进行实操,带你一步一步的安装部署使用 k3s ,并且解决常见安装过程的坑问题

一、安装 docker(选)

k3s 默认使用的容器是 containerd

如果你需要使用 docker 作为底层容器,则需要先安装部署 docker

docker 安装:Linux安装 docker 教程

二、前置配置

# 关闭防火墙
sudo systemctl disable --now firewalld

# 禁用 SELinux(需重启生效)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

三、创建 k3s 配置(选)

如果你不想要用 docker 作为底层容器,那么此步骤可不做

# 创建 K3s 配置文件目录
sudo mkdir -p /etc/rancher/k3s/

# 生成 K3s 配置文件(使用 Docker 作为运行时)
sudo tee /etc/rancher/k3s/config.yaml <<EOF
docker: true
write-kubeconfig-mode: 644
disable:
  - traefik
  - servicelb
node-name: k3s-node-$(hostname)
kubelet-arg:
  - "max-pods=100"      # 防止小内存节点 pod 超限
kube-controller-manager-arg:
  - "node-cidr-mask-size=24"  # 优化小集群网络
kube-proxy-arg:
  - "proxy-mode=iptables"     # 减少资源占用
EOF

如果你不想用 docker,将 docker: true 改为 docker: false,则可以使用默认的 containerd 容器

四、安装启动

# 安装 K3s(下载慢)
# curl -sfL https://get.k3s.io | INSTALL_K3S_SKIP_ENABLE=true sh - 

# 国内用户加速,使用下面的链接
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn  INSTALL_K3S_SKIP_ENABLE=true sh -
# 启动 K3s 服务
sudo systemctl daemon-reload
# 配置开机自启动
sudo systemctl enable --now k3s

等待一会

验证:

kubectl version --short 2

能够正常输出,则表示安装成功

五、配置(推荐)

(一)配置开机自启动

sudo systemctl enable --now k3s

(二)生成 kubeconfig

# 生成 kubeconfig 供普通用户使用
mkdir -p $HOME/.kube
sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
sed -i "s/127.0.0.1/$(hostname -I | awk '{print $1}')/" $HOME/.kube/config

这样子,其他用户也可以操作 k3s 的集群

(三)安装 Helm(可选)

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