目录

k3s安装及常见问题解决

简介

关于 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 教程

我这里习惯了使用 docker,因此我是按照了 docker,但是如果你不安装 docker 也不影响后续的操作

二、前置配置

在部署之前需要先做一些前置配置

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

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

注意: 这些配置是必不可少的,如果忘了配置,会影响后续的部署

三、创建 k3s 配置(选)

如果你使用的是k3s 默认使用的容器是 containerd,那么此步骤可以跳过

如果你像我一样使用的 docker 作为 k3s 的底层容器,那么此步骤必须操作

# 创建 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

四、安装启动

下载安装脚本

# 安装 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

如果能够正常输出,则表示 k3s 已经安装成功

五、配置(推荐)

(一)配置开机自启动

sudo systemctl enable --now k3s

强烈推荐设置开机自启动,否则一旦机器重启,你就需要手动去开启 k3s,部署的 pod 才会重新启动

(二)生成 kubeconfig

k3s 和 k8s 不同,不会自动生成 kubeconfig,需要我们手动生成 kubeconfig,强烈建议首次安装部署成功同时生成 kubeconfig,这样子,其他用户也可以操作 k3s 的集群

# 生成 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

(三)安装 Helm(可选)

helm 可以理解为一个 k8s/k3s 的应用市场(类似 go install、mac brew、linux rpm),可以直接搜索安装应用,比如 mysql,redis等,按需安装

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

到这里就基本安装完成了,可以使用 kubectl 来查看 pod 状态

kubectl get pod -A

应该是可以看到一些基础的 pod 服务

可以开始部署我们的服务了…

版权声明

未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!

本文原文链接: https://fiveyoboy.com/articles/k8s-k3s-install/

备用原文链接: https://blog.fiveyoboy.com/articles/k8s-k3s-install/