k3s 部署, 使用注意事项

全栈工程师开发手册 (作者:栾鹏)
架构系列文章


官方地址:https://rancher.com/docs/k3s/latest/en/

环境配置

官方给出的k3s配置要求如下:

  • 系统内核版本:Linux 3.10+ (CentOS 7, Debian 8/9, Ubuntu 14.04+)
  • K3S Server端最低内存要求:512 MB
  • K3S Agent端内存最低要求:75MB
  • 磁盘空间最低要求:200 MB
  • 支持的硬件架构:x86_64, ARMv7, ARM64

在这里插入图片描述

部署

浏览器打开网址

https://get.k3s.io

浏览器会自动跳转到(可能需要vpn才行)

https://raw.githubusercontent.com/rancher/k3s/master/install.sh

将install.sh另存到本地,在本地执行

sh install.sh

安装程序将kubeconfig文件写到/etc/rancher/k3s/k3s.yaml中
会自动下载安装k3s和额外的实用程序,如kubectl,crictl,ctr,k3s-killall.sh,和k3s-uninstall.sh。

在自动下载安装的过程中存在网络问题. 下载k3s的二进制可执行文件

下载k3s二进制可执行文件(地址可以根据sh install.sh的命令行打印显示获取)
https://github.com/rancher/k3s/releases/download/v0.10.2/k3s
之后上传此Binary到服务器端的 /usr/local/bin/k3s,并赋予可执行属性:

chmod +x /usr/local/bin/k3s

自动部署还会拉取k8s.gcr.io仓库下的镜像,由于网络问题在国内服务器上可能拉取不到,所以我们拉取国内镜像,然后改镜像名

docker pull registry.cn-beijing.aliyuncs.com/ilemonrain/pause-amd64:3.1
docker tag registry.cn-beijing.aliyuncs.com/ilemonrain/pause-amd64:3.1 k8s.gcr.io/pause:3.1

安装完成后,我们需要调整下K3S的服务配置文件,以将K3S的默认容器引擎从Containerd切换到Docker。这样才能在docker中控制你的镜像

修改K3S服务的配置文件:

vim /etc/systemd/system/multi-user.target.wants/k3s.service

文件内容如下:

[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
After=network-online.target

[Service]
Type=notify
EnvironmentFile=/etc/systemd/system/k3s.service.env
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/k3s server
KillMode=process
Delegate=yes
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Restart=always

[Install]
WantedBy=multi-user.targe

在这里我们需要修改ExecStart的值,将其修改为:

/usr/local/bin/k3s server --docker --no-deploy traefik

之后保存退出,执行命令重新加载新的服务配置文件:

systemctl daemon-reload

完成后重启K3S服务:

service k3s restart

稍等数十秒,之后通过命令确认K3S集群是否就绪:

sudo k3s kubectl get node

如果得到类似如下的结果:

NAME       STATUS   ROLES    AGE   VERSION
luanpeng   Ready    master   14h   v1.16.2-k3s.1

则说明K3S集群启动成功。

工作节点加入集群

要在工作程序节点上安装并将它们添加到集群中,我们应该将环境变量K3S_URL和K3S_TOKEN(或者K3S_CLUSTER_SECRET)一起传递。K3S_TOKEN在服务器的/var/lib/rancher/k3s/server/node-token

这是显示如何加入节点的示例:

curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -

注意:每台计算机必须具有唯一的主机名。如果您的计算机没有唯一的主

使用kubectl命令

之前在k8s中的kubectl命令,需要在前面添加sudo k3s,例如查询节点

sudo k3s kubectl get node

如果我们把/etc/rancher/k3s/k3s.yaml中的kubeconfig内容添加到~/.kube/config文件中,那我们就可以直接通过kubectl控制k3s集群了

web监控

可以绑定rancher参考:https://yq.aliyun.com/articles/704089
或者部署dashboard, 然后用火狐浏览器(谷歌浏览器可能不行)打开dashboard service地址.

https://10.43.24.135:8443

pvc的使用

创建pv和pvc必须要加上storageClassName 字段

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾讯AI架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值