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


官方地址: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 字段

GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐