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/